2009-06-10 21 views
18

Vorrei creare una configurazione sul mio computer locale (Ubuntu GNOME) per cui la finestra del terminale ha un colore di sfondo diverso a seconda che io sia connesso al mio computer locale o ssh'd in una macchina remota.Modifica del tema del terminale Gnome in modo programmatico

C'è un modo per farlo?

+0

Vorrei anche dare qualche suggerimento su come organizzare meglio il mio ingombro di finestre e schede terminali dal terminale Gnome. Bella domanda – Andrioid

+0

Utilizzare un gestore di finestre migliore. Forse un piastrellista. –

risposta

8

Questo non fa quello che hai chiesto, ma probabilmente fa quello che vuoi.

È possibile modificare il file .bashrc (o file di shell equivalente) per impostare il prompt in base al fatto che si stia utilizzando ssh o meno.

vale a dire mettere qualcosa come:

if [ -n $SSH_TTY ]; then 
    export PS1=`echo -en '\033[42m\w\$ '`; 
fi; 

alla fine del tuo .bashrc file sulla macchina remota. lo \033[42m è un ANSI Escape Code che cambia il colore dello sfondo in verde.

In questo modo, il colore di sfondo del terminale sarà verde (o magenta, ciano o altro) solo quando si è connessi a un computer remoto.

+0

Apparentemente una buona idea ma non funziona in tutti i casi, lo sfondo è di nuovo nero in Vim, su ls -l output. –

3

Si potrebbe desiderare di checkout le opzioni per gnome-terminal:

gnome-terminal --help 

--window-with-profile=PROFILENAME 

Wrap questo in uno script di shell:

#!/bin/bash 
gnome-terminal --window-with-profile=PROFILENAME 

poi fare

ssh-term 

Se si desidera modificare di più, esaminare aterm e altri termini. Guarda anche a Devilspie che può fare più cambiamenti dinamici in base a cose come il titolo della finestra (rimozione delle decorazioni delle finestre e così via).

http://burtonini.com/blog/computers/devilspie

+0

Ciò richiede di aprire una nuova finestra con l'intento specifico di usarla su SSH e di chiuderla immediatamente dopo la chiusura della connessione SSH, altrimenti è fuorviante e peggio di niente. Non è esattamente una soluzione elegante. – Thriveth

3

Si potrebbe voler dare un'occhiata a GConf. Fondamentalmente è per Gnome ciò che il registro è per Windows. La maggior parte delle app Gnome la usano per memorizzare le loro impostazioni. È possibile navigare utilizzando strumenti come GConf-Editor, o dalla riga di comando utilizzando gconftool-2:

$ gconftool-2 --all-entries /apps/gnome-terminal/profiles/Default 
background_color = #000000000000 
palette = #2E2E34343636:#CCCC00000000 [ snipped ] 
... many more lines 

troverete tutte le impostazioni qui che sono accessibili tramite la finestra delle preferenze, oltre a un po 'di più. Le chiavi possono anche essere modificate utilizzando --set, vedere "man gconftool-2" per i dettagli.

Esistono anche binding di librerie GConf per molti linguaggi di programmazione.

+0

Quasi ciò di cui ho bisogno, ma cambia il registro "globale" .... non solo la scheda corrente. Potrei impostare temi per macchine diverse, ma ho bisogno di un modo per passare questo tramite un comando – pufferfish

0
export PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}: ${PWD}\007"' 
1

devo alcuni script che realizzano questo scopo per gnome-terminal. Puoi trovarli a https://github.com/xyrix/gnome-terminal-profile-switcher

Lo script funziona creando un profilo temporaneo per tutti i terminali e quindi modificando i valori impostati nel profilo temporaneo da copiare dai profili normali.

Ciò consente di modificare il profilo dell'attuale gnome-terminal da uno script.

Incluso nel repository è un esempio di script "safe_ssh" per dimostrare l'utilizzo.

Problemi correlati