2015-08-14 4 views
0

Я пытаюсь определить консоль WHAT, в которой я запущен. (Исключительно сложно на основе исследований, которые я сделал до сих пор.) Последняя функция, которую я обнаружил, был бы полезен Double High, Double Wide для нескольких сценариев.Обнаружение удаленного терминала для кодов выхода терминала? (DECDHL в этом случае)

Установка - это машина Kubuntu 15.04 с собственным (нижним) и дистанционным доступом через Terminal.app на OS X 10.10.4.

Основано на 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 ... [email protected] bash --init-file osx_remote -i

ответ

0

Короткий ответ, «нет» - это не возможно, используя только управляющие последовательности.

  • Вы не можете определить, действительно ли терминал отображает символы двойного размера. Используя отчет о позиции курсора, вы можете указать (за исключением багги-реализаций), если терминал использовал две ячейки на экране для представления символа двойной ширины. xterm сделал это давно; другие терминалы делают это.
  • Двойные символы - это функция VT100, поэтому они также не указаны в ответе атрибутов устройства. Это будет ограниченным использованием, поскольку некоторые разработчики эмуляторов терминала просто вырезают/вставляют ответы, чтобы заставить их удовлетворять приложениям, которые проверяют конкретные функции.

Если вы работаете на местном уровне (а не через SSH), предположительно, можно написать программу, которая сделала дамп X Window и проанализированный что картины.

 Смежные вопросы

  • Нет связанных вопросов^_^