Как я могу изменить цвета Терминала GNOME каждый раз, когда он запускается?

Я слышал о сценарии, который изменит цвета Терминала GNOME каждый раз, когда он запускается. Я не могу помнить, где я видел это...

4
задан 17.08.2011, 17:50

1 ответ

Я не видел сценарий, который Вы упоминаете. Но я думаю, что возможно создать такой сценарий.

Терминал Gnome поднимает цвет фона с используемого профиля, таким образом, любое изменение повлияет на цвет фона всех терминалов с помощью того же профиля.

Тем не менее ключ конфигурации хранится в/apps/gnome-terminal/profiles/Default/background_color, где Значение по умолчанию является в настоящее время используемым профилем.

Это может быть установлено таким образом:

gconftool-2 - набор "/apps/gnome-terminal/profiles/Default/background_color" - тип представляет "#E376DDDDFFFF" в виде строки

Так, я предполагаю, что можно записать сценарий для клонирования профиля По умолчанию на лету, изменение, это - background_color, вызывают терминал гнома с этим профилем и удаляют профиль перед выходом. Вам также будет нужна база данных хороших комбинаций переднего плана/цвета фона для этого сценария для использования.


Обновление: Вот сценарий, чтобы сделать то, что обсуждено выше. Это не генерирует случайный цвет фона, что необходимо будет генерировать использование некоторого списка.

#!/bin/bash 

PROFILE_NAME=${RANDOM}_p_${RANDOM}
TMP_DIR=/tmp
DEFAULT_PROFILE=Default
PROFILE_EXPORT_FILE=${TMP_DIR}/${PROFILE_NAME}.xml

#replace with program to generate a random background color
BACKGROUND_COLOR="#0000AA000"

# dump the "Default" profile, replace with new random profile name
gconftool-2 --dump /apps/gnome-terminal/profiles/${DEFAULT_PROFILE} > ${PROFILE_EXPORT_FILE}
sed -i "s/${DEFAULT_PROFILE}/${PROFILE_NAME}/g" ${PROFILE_EXPORT_FILE}

# load the new random profile, change the background color
gconftool-2 --load ${PROFILE_EXPORT_FILE}
gconftool-2 --set "/apps/gnome-terminal/profiles/${PROFILE_NAME}/background_color" --type string "${BACKGROUND_COLOR}"

# add the new random profile to list of profiles
PROFILE_LIST=`gconftool-2 --get /apps/gnome-terminal/global/profile_list`
NEW_PROFILE_LIST=`echo $PROFILE_LIST | sed "s/]/,${PROFILE_NAME}]/g"`
gconftool-2 --set  /apps/gnome-terminal/global/profile_list --type list --list-type string "$NEW_PROFILE_LIST"
# start gnome-terminal with new random profile, such that the script blocks till terminal is closed.
gnome-terminal --window-with-profile=${PROFILE_NAME} --disable-factory

# cleanup: remove the new random profile, and remove it from list of profiles
gconftool-2 --recursive-unset /apps/gnome-terminal/profiles/${PROFILE_NAME}
PROFILE_LIST=`gconftool-2 --all-dirs /apps/gnome-terminal/profiles | sed "s/ \/apps\/gnome-terminal\/profiles\///" | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'`
gconftool-2 --set  /apps/gnome-terminal/global/profile_list --type list --list-type string '['"${PROFILE_LIST}"']'
2
ответ дан 07.12.2019, 21:31

Теги

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