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 ...


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}"']'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.