发现终端转义码的远程终端? (在这种情况下为DECDHL)

时间:2015-08-14 21:57:48

标签: bash terminal ansi-escape konsole terminal.app

我正在尝试确定我正在运行的控制台。(根据我迄今为止所做的研究,特别难。)我发现的最新功能是双高,双宽用于几个场景。

该设置是一台Kubuntu 15.04计算机,通过OS X 10.10.4上的Terminal.app进行本机(较低)和远程访问。

基于vt100.net Apple正在做正确的事。

enter image description here

#!/bin/bash

# Cool effect with OS X Terminal.app
# Not as much on others (Like Konsole)
function embiggen()
{
    # Yellow (Darker) foreground
    #                 |       Black backround
    #                 |             |
    printf "\x1b[38;5;226m\x1b[48;5;0m"

    #  Double high 'top anchor'
    #            |       line down
    #            |       |     Start of line
    #            |       |     |
    printf "\x1b#3$1\x1b[B\x1b[G"

    # Yellow (Bright) foreground
    #                 |         Red background
    #                 |    (Bright) |
    printf "\x1b[38;5;229m\x1b[48;5;196m"

    #  Double high 'bottom anchor'
    #            |       line down
    #            |       |     Start of line
    #            |       |     |
    printf "\x1b#4$1\x1b[B\x1b[G\n\n"
}

clear
embiggen "Hello, World"

使用Konsole

enter image description here

使用Konsole,渲染似乎可以从下到上进行控制。即每条线从下到上绘制基本上最顶线赢。然而,重绘不太可预测。

当终端不支持扩展格式化时,是否可以以合理优雅的方式使用某些扩展功能?

我想到的最好'解决方案'是使用自定义入口点 ssh -i ... usr@svr.dom bash --init-file osx_remote -i

1 个答案:

答案 0 :(得分:0)

简短的回答是" no" - 仅使用转义序列是不可能的。

  • 您无法判断终端是否实际显示双倍大小的字符。使用光标位置报告,可以告诉(除了错误的实现)终端是否在屏幕上使用了两个单元来表示双宽字符。 xterm很久以前就这么做了;其他终端那样做。
  • 双倍大小的字符是VT100功能,因此它们也未列在设备属性响应中。这将是有限的用途,因为一些终端模拟器开发人员只需剪切/粘贴响应,使其满足检查特定功能的应用程序。

如果你是在本地运行(而不是通过ssh),可以想象你可以编写一个执行X Window转储并分析那个图片的程序。