Je veux lier un raccourci pour changer mes schémas de couleurs solarisées (foncées et claires). Pour cela, j'ai besoin de connaître une commande pour que le terminal change son schéma de couleurs, mais je n'en ai pas trouvé et je dois aller sans cesse dans le menu des préférences et changer les schémas prédéfinis. Est-ce qu'il y a un moyen de faire ce genre de commutateur pour les schémas de couleurs du terminal ?
Réponses
Trop de publicités?Le terminal XFCE4 enregistre les préférences de l'utilisateur dans $XDG_CONFIG_HOME/xfce4/terminal/terminalrc
(typiquement, ~/.config/xfce4/terminal/terminalrc
- peut ne pas exister si vous n'avez pas modifié vos préférences). J'ai découvert que le terminal XFCE4 surveille ce fichier et recharge les paramètres lorsqu'ils changent, de sorte que vous pouvez écrire dans ce fichier pour modifier les paramètres.
Cependant, il n'y a pas d'entrée unique que vous pouvez modifier pour changer les couleurs. Les différentes palettes sont en fait 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
se présentera comme suit :
$ 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 voir, il n'y a aucun moyen d'identifier facilement la palette d'où proviennent les couleurs.
La création d'un script ne semble pas sûre, 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 ceci quelque part dans votre PATH
(par exemple, ~/bin/xfce-color-switch
). Dans ce cas :
$ xfce4-color-switch dark-pastels
$ xfce4-color-switch solarized
No such colorscheme: solarized
$ xfce4-color-switch solarized-dark
Vous devrez vous souvenir des noms des jeux de couleurs pour cela, mais j'ajouterai des instructions sur la façon d'ajouter la complétion par tabulation dès que je les aurai trouvées.
Une meilleure approche consisterait à créer votre propre palette de couleurs et à vous permettre d'en choisir une parmi d'autres.
Pour ce faire, créez le répertoire :
mkdir -p ~/.local/share/xfce4/terminal/colorschemes
Et placez les fichiers de ce type à 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 fichier ~/.config/xfce4/terminal
vous pouvez simplement copier les lignes appropriées.
Votre nouveau schéma de couleurs apparaît alors dans la liste principale. Vous pouvez donc, par exemple, avoir un thème de couleur blanc personnalisé et un thème de couleur noir personnalisé.