Je souhaite configurer l'arrière-plan de mon terminal gnome (#002b36
) et la couleur de premier plan dans ubuntu 13, en utilisant le script bash.
J'ai essayé gconftool
mais je n'ai pas réussi.
GCONFTOOL-2(1) User Commands GCONFTOOL-2(1)
NAME
gconftool-2 - GNOME configuration tool
Ma gnome terminal
la version est
$ gnome-terminal --version
GNOME Terminal 3.6.1
Vous pouvez utiliser l'outil dconf
pour y parvenir, mais il s'agit d'un processus en plusieurs étapes.
DESCRIPTION
The dconf program can perform various operations on a dconf database,
such as reading or writing individual values or entire directories.
This tool operates directly on the dconf database and does not read
gsettings schema information.Therefore, it cannot perform type and
consistency checks on values. The gsettings(1) utility is an
alternative if such checks are needed.
$ dconf
error: no command specified
Usage:
dconf COMMAND [ARGS...]
Commands:
help Show this information
read Read the value of a key
list List the contents of a dir
write Change the value of a key
reset Reset the value of a key or dir
update Update the system databases
watch Watch a path for changes
dump Dump an entire subpath to stdout
load Populate a subpath from stdin
Use 'dconf help COMMAND' to get detailed help.
Vous devez d'abord obtenir une liste de vos profils gnome-terminal
.
$ dconf list /org/gnome/terminal/legacy/profiles:/
<profile id>
En utilisant ce <profile id>
, Vous pouvez alors obtenir une liste de paramètres configurables
$ dconf list /org/gnome/terminal/legacy/profiles:/<profile id>
background-color
default-size-columns
use-theme-colors
use-custom-default-size
foreground-color
use-system-font
font
Vous pouvez ensuite lire les couleurs actuelles du premier plan ou de l'arrière-plan
premier plan
$ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color
'rgb(255,255,255)'
arrière-plan
$ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
'rgb(0,0,0)'
Vous pouvez également changer les couleurs
premier plan
$ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color "'rgb(255,255,255)'"
arrière-plan
$ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/background-color "'rgb(0,0,0)'"
Obtenir mon identifiant de profil
$ dconf list /org/gnome/terminal/legacy/profiles:/
:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
Utilisez l'ID de profil pour obtenir une liste des paramètres
$ dconf list /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
background-color
default-size-columns
use-theme-colors
use-custom-default-size
foreground-color
use-system-font
font
Changez votre fond bleu
$ dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'rgb(0,0,255)'"
Vous pouvez utiliser la notation rgb(R,G,B)
lors de la spécification de vos couleurs ou la notation de hachage #RRGGBB
. Dans les deux notations, les arguments sont rouge, vert et bleu. Les valeurs de la première notation sont des entiers allant de 0 à 255 pour R, G ou B. Dans la deuxième notation, les valeurs sont en hexidécimal allant de 00 à FF pour RR, GG ou BB.
Lorsque vous fournissez l'un de ces éléments à dconf
, vous devez l'encapsuler correctement entre guillemets doubles avec guillemets simples imbriqués à l'intérieur. Sinon, dconf
se plaindra.
"'rgb(0,0,0)'"
"'#FFFFFF'"
Sur mon système Ubuntu 12.04, j'ai pu changer les couleurs via la ligne de commande comme suit.
REMARQUE: Les options sont finalement stockées dans ce fichier, $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
.
Vous devez d'abord obtenir l'arborescence du profil de gnome-terminal
.
$ gconftool-2 --get /apps/gnome-terminal/global/profile_list
[Default]
En utilisant l'arborescence résultante, nous pouvons découvrir quels attributs sont configurables.
$ gconftool-2 -a "/apps/gnome-terminal/profiles/Default" | grep color
bold_color_same_as_fg = true
bold_color = #000000000000
background_color = #FFFFFFFFFFFF
foreground_color = #000000000000
use_theme_colors = false
Obtenez/définissez les attributs background_color
& foreground_color
$ gconftool-2 --get "/apps/gnome-terminal/profiles/Default/foreground_color"
#000000000000
$ gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "#000000FFFFFF"
Confirmer
$ gconftool-2 -R /apps/gnome-terminal/profiles/Default | grep color
bold_color_same_as_fg = true
bold_color = #000000000000
background_color = #000000FFFFFF
foreground_color = #000000000000
use_theme_colors = true
J'ai créé quelques fonctions, basées sur le code Github d'autres threads. Vous pouvez mettre ces fonctions dans votre ~/.bashrc
fichier. Comme vous pouvez le voir, si vous appelez create_random_profile
:
setcolord
.Cela devrait être utile pour avoir de nombreux terminaux de couleurs différentes. De plus, avec des fonctions prédéfinies, vous pouvez modifier ces couleurs à la volée.
function create_random_profile() {
#delete previous profiles in case there were something
#delete_one_random_profile
prof="`mktemp -u HACK_PROFILE_XXXXXXXXXX`"
gconftool-2 --set "/apps/gnome-terminal/profiles/$prof/use_theme_colors" --type bool false
gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/]/,$prof]/"`"
file="`mktemp`"
gconftool-2 --dump "/apps/gnome-terminal/profiles/Default" | sed "s,profiles/$2,profiles/$prof,g" > "$file"
gconftool-2 --load "$file"
gconftool-2 --type string --set "/apps/gnome-terminal/profiles/$prof/visible_name" "$prof"
rm -f -- "$file"
export __TERM_PROF=$prof
}
function delete_one_random_profile() {
regular="HACK_PROFILE_"
prof=$(gconftool-2 --get /apps/gnome-terminal/global/profile_list | sed -n "s/.*\(HACK_PROFILE_..........\).*/\1/p")
if [ ! -z "$prof"]; then
echo "size ${#prof}"
echo "size of regular ${#regular}"
echo "DO DELETE of $prof"
#if not empty
gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/$prof//;s/\[,/[/;s/,,/,/;s/,]/]/"`"
gconftool-2 --unset "/apps/gnome-terminal/profiles/$prof"
else
echo "NOTHING TO DELETE"
fi
}
function setcolord() {
echo "Dont forget to change to Profile0 in the menu of your terminal->Change Profile->Profile_0"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string white
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}
function setcolor_cyan() {
echo "Dont forget to change to $__TERM_PROF in the menu of your terminal->Change Profile->Profile_0"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string "#8DCBCC"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}