Существует ли команда, которая может использоваться для изменения цветовой схемы Терминала Mac OS X? Мне нравится идея способности изменить цвета в зависимости от скриптов, которые я запускаю. До сих пор я просто изменяю цвет своей подсказки удара с PS1, который является хорошо, но не столь примечателен, как я хотел бы.
В зависимости от того, что точно Вы хотите выполнить, вот несколько идей в AppleScript с помощью Терминальных стилей. Они более устойчивы, чем tput
, потому что это сбрасывается цветными подсказками. и т.д. (по крайней мере, для меня).
Это устанавливает все вкладки под управлением Python (никакой сервер SSH, доступный для тестирования прямо сейчас) к Домашнему пиву, другим к Океану:
tell application "Terminal"
repeat with w from 1 to count windows
repeat with t from 1 to count tabs of window w
if processes of tab t of window w contains "Python" then
set current settings of tab t of window w to (first settings set whose name is "Homebrew")
else
set current settings of tab t of window w to (first settings set whose name is "Ocean")
end if
end repeat
end repeat
end tell
сохраните как сценарий и работайте как osascript Name.scpt
каждый раз, когда Вы хотите повторно окрасить свои оболочки (конечно, можно перенести это как сценарий оболочки или что-то).
Если Вы хотите отобразить все продолжительные процессы по-другому, используйте следующее условие:
if busy of tab t of window w is true then
Или, можно установить стиль единственной вкладки, вручную выбранной:
on run argv
tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run
Выполните его как это:
osascript StyleTerm.scpt 3 Homebrew
-> Вкладка Third frontmost Окна терминала получает Доморощенный стиль!
Если Вы хотите изменить фоновые окна, замените "переднее окно" заключенным в скобки выражением как сразу после "вкладки". Если Вы всегда хотите изменить выбранную "текущую вкладку", использование selected tab
вместо tab (item 1 of argv as number)
.
Добавьте следующее к Вашему .bash_profile
если первым решением является слишком физический труд для Вас:
PROMPT_COMMAND='osascript "/path/to/Name.scpt"'
Теперь это выполняется перед каждой подсказкой (только проблема: не после запуска чего-то, т.е. ssh
. Но эта тема не о необычных приемах удара так или иначе. Это - просто указатель.)
Ваши сценарии могут использовать tput
управляйте для установки, раскрашивает портативный способ. Попробуйте следующий сценарий, и Вы будете видеть терминал, ясный сине-зеленому фону с некоторым ярким голубым текстом.
#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World
Вы видите больше информации об этом в man 5 terminfo
в разделе, названном "Обработка Цвета".
Можно сделать то же самое путем повторения escape-последовательностей, которые терминал распознает непосредственно. Это будет быстрее, но это не может работать с помощью другой терминальной программы. Многие из них распознают последовательности xterm, и вот то, что сценарий выше был бы похож на использование их.
#!/bin/bash
printf "\033[48;5;6m" # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World
Существует больше информации о xterm управляющих последовательностях здесь.