
Помимо evilvte, есть ли какой-либо эмулятор терминала на Linux, который (без сбоев) позволяет мне для каждого хоста указывать курсор, передний планифоновый цвета такжезначок (то есть значок, отображаемый, когда запущенное приложение свернуто)?
Я подключаюсь по SSH к довольно большому количеству разных хостов, и чтобы мне было проще отслеживать, на каком хосте я вошел, у каждого хоста есть уникальная цветовая схема (то есть уникальная комбинация фона, переднего плана и цвета курсора), которую я использую для его терминальных окон. Чтобы было проще инстинктивно правильно перемещаться между этими терминальными сеансами, я также полагаюсь на настройку эмулятора терминала, так что значок, используемый для него, когда он свёрнут (или при нажатии ALT-TAB на моём рабочем столе XFCE), отражает используемую им цветовую схему.
(У меня есть программа на Perl, которая генерирует графику терминала с цветами фона, переднего плана и курсора, соответствующими цветовой схеме, которую я использую для хоста, поэтому я могу легко создать подходящий значок для каждого хоста, с которым мне предстоит работать)
Проблема этого подхода не в том, что он не работает (он действительно работает просто великолепно!), а в том, что трудно выбрать достаточно хороший эмулятор терминала, который поддерживаетвсеиз следующих:
- Настраиваемая графика иконок для каждого сеанса (в том смысле, что я могу указать любое изображение на диске).
- Настраиваемый фон, передний план для каждого сеансаицвет курсора.
- Желательно также настраивать цвета ANSI для каждого сеанса (включая «яркие» цвета с 8 по 15), просто потому, что если цвет фона красный, я хочу настроить красный ANSI и ярко-красный так, чтобы они немного отличались от цвета фона. (Да, у меня есть скрипт, который автоматизирует и эту настройку)
Сейчас я полагаюсь на evilvte, потому что это единственное терминальное программное обеспечение, которое позволяет мне настраивать как значок, так и все цвета (курсор, передний план, фон, жирный, тусклый и все цвета ANSI). Проблема с evilvte в том, что мне приходится компилировать один отдельный двоичный файл за сеанс (частично автоматизированный и работающий, но, честно говоря, довольно уродливый подход). Кроме того, evilvte не поддерживает уменьшение ширины или высоты окна терминала (то есть уменьшение количества столбцов или строк), несмотря на то, что позволяет увеличивать ширину/высоту. Другая потенциальная проблема с evilvte заключается в том, что я сделал довольно уродливый хак, чтобы настроить все цвета ANSI для него, что может сработать или не сработать в будущих версиях evilvte.
Я пробовал gnome-terminal, но изначально в нем не было возможности настраивать цвет курсора, а когда-то он включал поддержкучтобыло решено убрать возможность настройки значка для каждого сеанса.
Буду признателен за любую ссылку на терминал, который предоставляет все необходимые мне функции, но без головной боли, которую я получаю при использовании evilvte.
Редактировать: Мэтт Дженкинс дал хороший и хорошо написанный ответ, в котором он предложил мне использовать xterm и дал несколько хороших советов по его использованию. К сожалению, у xterm есть некоторые ограничения, которые делают его неподходящим для моих нужд (xterm поддерживает только монохромные черно-белые пиктограммы иконок и имеет жестко закодированные, скомпилированные в цветах ANSI). Поэтому я не принял его ответ (нажав на галочку), но все равно «поднял» его на один пункт.
решение1
Похоже, «konsole» — ваш друг.
После тщательного изучения нескольких терминальных программ я обнаружил:
konsole
поддерживает настройку пользовательских цветовых схем:
konsole
поддерживает пользовательские значки:
konsole
поддерживает несколько профилей — нет необходимости в скриптах. Просто создайте новый профиль для каждого сервера. Вы даже можете включить команду ssh в профиль для автоматического входа на сервер.
О, и konsole
он также имеет вкладки, так что вы можете уменьшить беспорядок и сгруппировать серверы вместе в меньшем количестве окон. (Возможно, все ваши веб-серверы в одном окне, все ваши файловые серверы в другом и т. д.).
Для установки значка в оконном менеджере (это отдельный значок для значка «профиля») необходимо указать флаг --icon в команде konsole:
$ konsole --icon /usr/share/icons/oxygen/16x16/apps/java.png
Который дает:
Сочетание этого --profile
должно дать желаемый результат.
Обратите внимание, что этот значок оконного менеджера не меняется при переключении вкладок, поэтому его можно использовать в качестве значка для обозначения групп вкладок, например, всех ваших веб-серверов, или вообще не использовать вкладки и просто использовать по одному окну на сервер.
решение2
Большинство терминального программного обеспечения Linux предоставляют вам флаги командной строки для настройки поведения — даже самые простые xterm
.
Давайте рассмотрим некоторые из ваших требований:
- Настраиваемая графика иконок для каждого сеанса (в том смысле, что я могу указать любое изображение на диске).
Они не имеют ничего общего с программой терминала. Это значки "ярлыков", которые запускают программу терминала (я думаю, это то, что вам нужно). Вам следует взглянуть на.рабочий столформат файла.
- Настраиваемые для каждого сеанса цвет фона, переднего плана и курсора.
Вам следует изучить, какие флаги командной строки есть у вашей любимой терминальной программы. Например, у xterm есть -fg
и -bg
:
$ xterm -fg gold -bg darkblue
- Желательно также настраивать цвета ANSI для каждого сеанса (включая «яркие» цвета с 8 по 15), просто потому, что если цвет фона красный, я хочу настроить красный ANSI и ярко-красный так, чтобы они немного отличались от цвета фона. (Да, у меня есть скрипт, который автоматизирует и эту настройку)
Цвета ANSI являются предопределенными стандартами. Их не следует менять. Большинство терминальных программ позволяют вам указать передний план и фон «по умолчанию» из большой палитры цветов, которая не ограничивается обычными 16 цветами ANSI. Для полного списка этих цветов взгляните на файл rgb.txt. Он находится где-то в вашем дистрибутиве Linux и содержит «стандартные» цвета X11. В Ubuntu он находится в /usr/share/X11/rgb.txt.
В качестве дополнительной идентификации большинство терминальных программ позволят вам задать заголовок окна. Например, с помощью старого доброго xterm вы можете использовать:
$ xterm -bg darkblue -fg gold -title "My terminal"
И даже добавить команду для выполнения:
$ xterm -bg darkblue -fg gold -title "Web Server" -e "ssh [email protected]"
В итоге у вас получится что-то вроде этого:
Поместите эту команду в целевой файл «Web Server.desktop» вместе с указателем на значок веб-сервера, и все готово!
Редактировать:
Я только что прочитал отрывок о том, как вы хотите использовать значки.
Установка значка в строке заголовка представляет собой установку ресурса X "iconPixmap". Это можно сделать с помощью флага, -xrm
указывающего на файл "XBM":
$ xterm -xrm '*iconPixmap: /path/to/icon.xbm'