Mám barevné schéma, které se mi líbí, když jsem v terminálu, ale ssh do stroje, na kterém pracuji, z více zdrojů (místně, PuTTY, můj netbook atd.) a chci zachovat stejné barevné schéma v celém . Je to možné?
Zvláště to chci v PuTTY; je obtížné změnit barvy PuTTY.
Přijatá odpověď:
Barvy v terminálech se určují ve dvou krocích:
- program spuštěný v terminálu říká terminálu, aby použil určité číslo barvy;
- Terminál převede každé číslo barvy na hodnotu barvy.
Xterm má escape sekvenci pro změnu hodnoty barvy spojené s číslem barvy. Nepamatuji si, zda PuTTY podporuje tuto sekvenci; Vím, že Mintty ano.
set_color_value () {
printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Tato nastavení nepřežijí reset terminálu. Tento problém můžete překonat přidáním sekvence změn konfigurace kurzoru k resetovacímu řetězci vašeho terminálu.
- V systému založeném na terminfo pomocí ncurses uložte nastavení terminfo svého terminálu do souboru s
infocmp >>~/etc/terminfo.txt
. Upravte popis a změňters1
(základní reset) sekvence, nap. nahraditrs1=Ec
odrs1=EcE]4;4;#6495edE\
. U některých programů a nastavení může být nutné změnitrs2
(úplný reset) také. Poté zkompilujte popis terminfo pomocític ~/etc/terminfo.txt
(to se zapisuje do adresáře$TERMINFO
, nebo~/.terminfo
pokud není nastaveno). - V systému založeném na termcapu stáhněte nastavení termcap z databáze termcap (obvykle
/etc/termcap
). Změňteis
(základní reset) ars
(úplný reset) sekvence pro připojení vašich nastavení, např.:is=EcEcE]4;4;#6495edE\:
. NastavteTERMCAP
proměnná prostředí na upravenou hodnotu (začínající a končící:
).
Nyní můžete něco takového vložit do svého ~/.profile
:
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi
Dobré podrobné vysvětlení syntaxe /etc/network/interfaces?
Opakovat příkaz Unix každých X sekund navždy?