2009-06-10 10 views
18

Chciałbym utworzyć instalację na moim lokalnym komputerze (Ubuntu GNOME), dzięki czemu okno terminalu ma inny kolor tła w zależności od tego, czy jestem zalogowany na mojej lokalnej maszynie, czy też zdalna maszyna.Zmień motyw terminala Gnome programowo

Czy istnieje sposób, aby to zrobić?

+0

Chciałbym również powitać wszelkie sugestie, w jaki sposób lepiej zorganizować mój bałagan terminali i kart z terminalu Gnome. Fajne pytanie. – Andrioid

+0

Użyj lepszego menedżera okien. Może kafelki. –

Odpowiedz

8

To nie robi tego, o co prosiłeś, ale prawdopodobnie robi to, co chcesz.

Możesz zmodyfikować swój .bashrc (lub równoważny plik init powłoki), aby ustawić swój monit na podstawie tego, czy używasz ssh, czy nie.

tj umieścić coś takiego:

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

na końcu pliku .bashrc na zdalnej maszynie. \033[42m to ANSI Escape Code, który zmienia kolor tła na zielony.

W ten sposób kolor tła terminala będzie zielony (lub magenta, lub cyjan, lub cokolwiek innego) tylko po zalogowaniu na zdalnym komputerze.

+0

Na pozór dobry pomysł, ale nie działa we wszystkich przypadkach, tło znowu jest czarne w Vimie, na wyjściu ls -l. –

3

Możesz chcieć sprowadzić opcje gnome-terminal:

gnome-terminal --help 

daje

--window-with-profile=PROFILENAME 

Wrap to w skrypcie powłoki:

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

następnie zrobić

ssh-term 

Jeśli chcesz zmienić więcej, zajrzyj do aterm i innych warunków. Zajrzyj także do Devilspie, które może wykonywać bardziej dynamiczne zmiany w oparciu o takie rzeczy jak tytuł okna (usuwanie dekoracji okien itp.).

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

+0

To wymaga, aby otworzyć nowe okno z konkretnym zamiarem użycia go do SSH i zamknąć je natychmiast po zamknięciu połączenia SSH - w przeciwnym razie jest ono mylące i gorsze niż nic. Niezupełnie eleganckie rozwiązanie. – Thriveth

3

Czasami warto spojrzeć na GConf. W zasadzie dla Gnome jest to, co Rejestr jest dla Windows. Większość aplikacji Gnome używa go do przechowywania swoich ustawień. Można przeglądać go za pomocą narzędzi takich jak GConf-Editor lub z wiersza komend przy użyciu gconftool-2:

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

Znajdziesz tu wszystkie ustawienia, które są dostępne za pośrednictwem okna dialogowego Preferencje, plus trochę więcej. Klawisze można również zmienić za pomocą --set, patrz "man gconftool-2", aby uzyskać szczegółowe informacje.

Istnieją również powiązania biblioteki GConf dla wielu języków programowania.

+0

Prawie to, czego potrzebuję, ale zmienia "globalny" rejestr .... nie tylko bieżącą kartę. Mogłabym ustawić motywy dla różnych maszyn, ale potrzebuję sposobu na przełączenie tego poprzez komendę: – pufferfish

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

Mam kilka skryptów, które osiągają ten cel dla gnome-terminal. Można je znaleźć pod adresem: https://github.com/xyrix/gnome-terminal-profile-switcher

Skrypt działa, tworząc tymczasowy profil dla wszystkich terminali, a następnie zmieniając wartości ustawione w profilu tymczasowym, który ma zostać skopiowany z normalnych profili.

Umożliwia to zmianę profilu bieżącego terminalu gnome ze skryptu.

Zawarte w repozytorium jest przykładowy skrypt "safe_ssh" demonstrujący użycie.

Powiązane problemy