Мини-Проект: Измените цвет терминала на основе времени суток

Добрый вечер,

Я довольно плохо знаком с Unix поэтому, возможно, этот мини-проект слишком амбициозен. Надеясь кто-то мог указать в в правильном направлении.

При работе в кабине и я не вижу, насколько легкий это снаружи. В целом я использую желтый терминал, утром (солнечный) и черное/зеленое прошлое 3:00 (ночь).

Что я хотел бы сделать (частично только для осуществления моего удара). Должен записать сценарий, который в 3:00 изменит цвет всех моих терминалов. Если это будет работать, возможно, то я заставлю их изменяться каждый час или что-то как этот. Это было бы безопасно? Действительно ли это возможно?

Вот некоторые мои спецификации: Солярис 10 Gnome оболочки Bash

Я смотрю на это прямо сейчас: тема терминала Gnome Изменения программно

7
задан Community 23 May 2017 в 10:32
поделиться

3 ответа

Если бы я делал это, я бы начал с Prompt_command . Bash запустит этот скрипт непосредственно перед отображением подсказки.

У вас есть пара вариантов. У вас может быть сам скрипт в Appment_command:

PROMPT_COMMAND='if [ is_morning ]; then echo "MORNING_COLORS'; else echo "EVENING_COLORS"; fi

или вы могли бы иметь Prompt_command запустить внешнюю команду (которая также может быть сценарием Bash, или вы могли бы использовать другой язык, если вы хотите) сделать всю работу там:

PROMPT_COMMAND=/path/to/setcolor_timeofday

Единственная дыра, которую я вижу в этом, так это то, что если у вас есть программа, работающая, когда время меняется (например, с использованием хвоста , чтобы посмотреть файл), фон не изменится, пока вы не вернетесь к подсказка Bash.

4
ответ дан 7 December 2019 в 10:01
поделиться

Изменение оболочки переднего плана и цветов фона через PS1 в Bash будет самым простым, как указано другими здесь. Подход Сэмюэля Клачачко с Approw_Command, вероятно, самый универсальный. Однако это имеет недостатки. Bash может использовать только «тусклые» цвета фона, а цвета на переднем плане / фона могут быть переопределены любым приложением. Изменение темы терминала GNOME программно, особенно в реальном времени, будет гораздо сложнее, но произведет много красивых результатов.

2
ответ дан 7 December 2019 в 10:01
поделиться

Используйте cron, это Unix-планировщик заданий. И установите его на выполнение команды, которая изменяет .bashrc, как в вопросе, который вы связывали. Проблема в том, что он будет работать только для новых терминалов, если у вас есть несколько открытых, он их не изменит.

0
ответ дан 7 December 2019 в 10:01
поделиться
Другие вопросы по тегам:

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