1

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

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

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

在此处输入图像描述

#!/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

在此处输入图像描述

使用 Konsole,渲染似乎是从下到上控制的。即每条线都是从下到上绘制的,基本上最上面的线获胜。然而,重绘是不可预测的。

当终端不支持扩展格式时,是否可以以相当优雅的降级方式远程使用某些扩展功能?

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

4

1 回答 1

0

简短的回答是“不”——仅使用转义序列是不可能的。

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

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

于 2015-08-29T11:02:34.863 回答