web-dev-qa-db-fra.com

Modifier manuellement les couleurs du terminal xfce4

Je souhaite lier un raccourci pour modifier mes schémas de couleurs solarisés (sombre et clair). Pour ce faire, je dois connaître une commande pour que le terminal modifie son jeu de couleurs, mais je n’ai pas trouvé ce type de commande et je dois me déplacer de temps en temps dans le menu Préférences et permuter les arrangements prédéfinis. Existe-t-il un moyen de créer un tel commutateur pour les palettes de couleurs du terminal?

6
mitrx

Le terminal XFCE4 stocke les préférences utilisateur dans $XDG_CONFIG_HOME/xfce4/terminal/terminalrc (en général, ~/.config/xfce4/terminal/terminalrc - peut ne pas exister si vous n’avez modifié aucune préférence). J'ai constaté que XFCE4 Terminal surveille ce fichier et recharge les paramètres lorsqu'il change. Vous pouvez donc écrire dans ce fichier pour modifier les paramètres.

Cependant, vous ne pouvez modifier aucune entrée pour modifier les couleurs. Les différentes palettes sont en réalité un ensemble de paramètres. Par exemple:

$ cat /usr/share/xfce4/terminal/colorschemes/solarized-dark.theme 
[Scheme]
Name=Solarized (dark)
Name[bg]=Златисто (тъмно)
Name[fr]=Solarisé (foncé)
Name[nl]=Overbelicht (donker)
Name[th]=ในแสงแดด (มืด)
Name[uk]=Золотистий (темний)
ColorForeground=#839496
ColorBackground=#002b36
ColorCursor=#93a1a1
TabActivityColor=#dc322f
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE

Et terminalrc ressemblera à ceci:

$ cat .config/xfce4/terminal/terminalrc                           
[Configuration]
ColorForeground=#839496
FontName=Ubuntu Mono 12
ColorBackground=#002b36
ColorCursor=#93a1a1
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
TabActivityColor=#dc322f
TabActivityColor=#dc322f

Comme on peut le constater, il n’est pas possible d’identifier facilement la palette de couleurs.

L'écriture de script ne semble pas sans danger, mais voici une tentative inefficace:

#! /bin/bash
if ! [[ -f /usr/share/xfce4/terminal/colorschemes/$1.theme ]]
then
    echo "No such colorscheme: $1"
    exit 1
fi
cd ~/.config/xfce4/terminal
# strip settings from any themes
grep -Fxvf <(cat /usr/share/xfce4/terminal/colorschemes/*.theme) terminalrc > .terminalrc.tmp
grep -v -e Name -e Scheme "/usr/share/xfce4/terminal/colorschemes/$1.theme" >> .terminalrc.tmp
cp terminalrc terminalrc.bak
mv .terminalrc.tmp terminalrc

Copiez-le quelque part dans votre PATH (par exemple, ~/bin/xfce-color-switch). Ensuite:

$ xfce4-color-switch dark-pastels

enter image description here

$ xfce4-color-switch solarized   
No such colorscheme: solarized
$ xfce4-color-switch solarized-dark

enter image description here

Vous devrez vous souvenir des noms de couleurs pour cela, mais je vais ajouter des instructions sur la manière d’ajouter des complétions par des tabulations une fois que je les ai déterminées.

7
muru

Une meilleure approche serait: créez votre propre jeu de couleurs et permettez-vous d'en choisir un parmi plusieurs.

Pour ce faire, créez le répertoire:

mkdir -p ~/.local/share/xfce4/terminal/colorschemes

Et placez des fichiers comme ça à l'intérieur:

[Scheme]
Name=my good profile
ColorForeground=#4ccd4ccd4ccd
ColorBackground=#f851f465ebe7
TabActivityColor=#d8d8a9a97f7f
ColorCursor=#f0f0b6b66666
ColorSelection=#16163b3b5959
ColorPalette=rgb(0,0,0);rgb(170,0,0);rgb(0,170,0);rgb(170,85,0);rgb(0,0,170);rgb(170,0,170);rgb(0,138,138);rgb(170,170,170);rgb(85,85,85);rgb(255,85,85);rgb(85,255,85);rgb(196,160,0);rgb(85,85,255);rgb(255,85,255);rgb(68,204,204);rgb(255,255,255)

Si vous avez un fichier terminalrc déjà configuré dans votre répertoire ~/.config/xfce4/terminal, vous pouvez simplement copier les lignes appropriées.

Après cela, votre nouveau jeu de couleurs apparaît dans la liste principale. Ainsi, vous pouvez, par exemple, avoir à la fois un thème de couleur blanche personnalisé et un noir personnalisé.

5
VasyaNovikov