Что простой способ состоит в том, чтобы иметь использование терминала другой цвет на основе ssh имени хоста?

Используя шпаклевку в окнах, можно сохранить сессии, которые соединяются с определенным хостом и используют определенный цвет текста... это было супер полезно для меня, так как я работаю с набором удаленных хостов, и я задаюсь вопросом, существует ли (должно быть), способ стать Терминальным (в Snow Leopard) для эмуляции этого поведения.

Я задаюсь вопросом, как я был бы 1. Сохраните соединение (например, username@hostname.com) и имейте то соединение, всегда открываются определенным цветом текста (например, # 00ff00) 2. Идеально, имейте любое окно терминала, обнаруживают то, что размещает его, был в, и измените его цвет соответственно. Таким образом, если я был в своей регулярной Терминальной среде и выпустил успешное ssh username@hostname.com, это автоматически изменило бы цвет текста того окна терминала (или вкладка) к # 00ff00

Сообщите мне, Спасибо!

6
задан Neil Sarkar 15 December 2009 в 06:58
поделиться

2 ответа

В терминале вы можете определять профили с различным цветом фона окна, прозрачностью и т. Д. Также в профилях вы можете указать команду запуска. Вы можете настроить другой профиль для каждого используемого хоста с помощью команды запуска «ssh me @ thathost », но это будет работать только для новых окон. Профили легко доступны через Shell -> Новое окно.

4
ответ дан 8 December 2019 в 17:22
поделиться

Хорошо, если вы настаиваете на вызове ssh из командной строки, вот что должно помочь: напишите сценарий оболочки и сохраните его где-нибудь как colorssh.sh . Когда он запускается, он смотрит на свои аргументы для соответствующего хоста и соответствующим образом устанавливает цвета активного окна терминала. Затем он вызывает настоящий ssh, передавая эти аргументы. Когда ssh возвращает выполнение сценарию, он устанавливает нормальные цвета.

Поскольку вы, вероятно, захотите продолжать вводить ssh вместо colorssh.sh , вы можете установить псевдоним в вашем .profile .

Что касается самого скрипта? Вот код:

#!/bin/bash

function setTerminalColors {
    osascript \
        -e "tell application \"Terminal\"" \
        -e "tell selected tab of front window" \
        -e "set normal text color to $1" \
        -e "set background color to $2" \
        -e "end tell" \
        -e "end tell"
}

for ARG in $*
do
    case "$ARG" in
        host.example.com)
        username@host.example.com)
            setTerminalColors "{0,65535,65535}" "{65535,0,0}"
            ;;
        username@otherhost.example.com)
            setTerminalColors "{65535,65535,0}" "{0,65535,0}"
            ;;
    esac
done

ssh $*

# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}" 

Вам нужно будет отредактировать сценарий, чтобы добавить новые комбинации хоста / цвета.

Обратите внимание, что цвета должны быть указаны как триплет целых чисел RGB в диапазоне 0-65535. Я знаю, странно, правда?

Технически, часть AppleScript изменяет устаревшие свойства. Вы должны изменить цвета окна через его свойство "settings set", но я подозреваю, что это изменит все окна, использующие этот набор настроек, а не только текущее.

Кроме того, этот сценарий предполагает, что черный на белом - ваш «нормальная» настройка. Если это не так, вы можете изменить сценарий, чтобы сохранить текущие значения перед запуском, или использовать цвета из набора настроек по умолчанию.

10
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: