Como posso alterar as cores do Terminal do GNOME toda vez que ele inicia?

3

Eu ouvi falar de um script que mudará as cores do Terminal do GNOME toda vez que ele for iniciado. Não me lembro onde vi isso ...

    
por Kredns 15.09.2009 / 22:24

1 resposta

2

Eu não vi o roteiro que você mencionou. Mas acho que é possível criar um script assim.

O Terminal do Gnome retoma o cor de fundo do perfil em uso , portanto, qualquer alteração afetará a cor de fundo de todos os terminais usando o mesmo perfil.

Dito isso, a chave de configuração é armazenada em / apps / gnome-terminal / profiles / Default / background_color , onde Padrão é o perfil usado atualmente.

Pode ser definido assim:

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "#E376DDDDFFFF"

Então, eu estou supondo que alguém pode escrever um script para clonar o perfil Padrão na hora, mudar background_color , invocar gnome -terminal com este perfil e exclua o perfil antes de sair. Você também precisará de um banco de dados de boas combinações de cores de primeiro plano / segundo plano para esse script usar.

Atualização: Aqui está um script para fazer o que é discutido acima. Não gera uma cor de fundo aleatória, que você terá que gerar usando alguma lista.

#!/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}"']'
    
por 16.09.2009 / 17:28