Обнаруживаете удаленный терминал для кодов спасения терминала? (DECDHL в этом случае)
Я пытаюсь определить, ЧТО консоль, на которой я работаю. (Исключительно сложно, основываясь на исследованиях, которые я провел до сих пор.) Последняя функция, которую я обнаружил, которая была бы полезна, это Double High, Double Wide для пары сценариев.
Установка представляет собой компьютер Kubuntu 15.04 с собственным (нижним) и удаленным доступом через Terminal.app в OS X 10.10.4.
На основании 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
1 ответ
Краткий ответ - "нет" - это невозможно, используя только escape-последовательности.
- Вы не можете сказать, действительно ли терминал отображает символы двойного размера. Используя отчет о положении курсора, вы можете сказать (за исключением ошибочных реализаций), использовал ли терминал две ячейки на экране для представления символа двойной ширины. xterm сделал это давно; другие терминалы делают это.
- Символы двойного размера - это функция VT100, поэтому они также не перечислены в ответе атрибутов устройства. Это будет иметь ограниченное применение, поскольку некоторые разработчики эмуляторов терминала просто обрезают / вставляют ответы, чтобы они удовлетворяли приложениям, которые проверяют определенные функции.
Если вы работали локально (а не через ssh), возможно, вы могли бы написать программу, которая делала дамп X Window и анализировала эту картинку.