Команда OS X Terminal для изменения цветных тем

Существует ли команда, которая может использоваться для изменения цветовой схемы Терминала Mac OS X? Мне нравится идея способности изменить цвета в зависимости от скриптов, которые я запускаю. До сих пор я просто изменяю цвет своей подсказки удара с PS1, который является хорошо, но не столь примечателен, как я хотел бы.

17
задан 12.09.2010, 04:10

2 ответа

В зависимости от того, что точно Вы хотите выполнить, вот несколько идей в 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. Но эта тема не о необычных приемах удара так или иначе. Это - просто указатель.)

18
ответ дан 07.12.2019, 10:39

Ваши сценарии могут использовать 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 управляющих последовательностях здесь.

6
ответ дан 07.12.2019, 10:39

Теги

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