Jak mogę zmienić kolory GNOME Terminal przy każdym uruchomieniu?

3

Słyszałem o skrypcie, który zmienia kolory GNOME Terminal przy każdym uruchomieniu. Nie pamiętam, gdzie to widziałem ...

Kredns
źródło
Chcesz za każdym razem różnych, losowych kolorów?
innaM
Cóż, nie losowo. To było bardziej predefiniowane.
Kredns

Odpowiedzi:

2

Nie widziałem skryptu, o którym wspomniałeś. Ale myślę, że możliwe jest stworzenie takiego skryptu.

Terminal Gnome podnosi kolor tła z używanego profilu , więc każda zmiana będzie miała wpływ na kolor tła wszystkich terminali korzystających z tego samego profilu.

Mimo to klucz konfiguracji jest przechowywany w / apps / gnome-terminal / profiles / Default / background_color , gdzie Domyślna jest aktualnie używanym profilem.

Można ustawić w ten sposób:

gconftool-2 - zestaw "/ apps / gnome-terminal / profiles / Default / background_color" - ciąg znaków "# E376DDDDFFFF"

Zgaduję, że można napisać skrypt do sklonowania Domyślna profil w locie, zmień to kolor tła , przywołaj gnome-terminal z tym profilem i usuń profil przed wyjściem. Do użycia tego skryptu potrzebna będzie również baza danych dobrych kombinacji kolorów pierwszego planu / tła.


Aktualizacja: Oto skrypt do zrobienia tego, co zostało omówione powyżej. Nie generuje losowego koloru tła, który musisz wygenerować za pomocą listy.

#!/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}"']'
nagul
źródło