Définir le fond du terminal gnome / la couleur du text du script bash

Je voudrais 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 gconftool pas réussi.

 GCONFTOOL-2(1) User Commands GCONFTOOL-2(1) NAME gconftool-2 - GNOME configuration tool 

Ma version de gnome terminal est

 $ gnome-terminal --version GNOME Terminal 3.6.1 

entrer la description de l'image ici

Actuellement, j'utilise l'interface user des preferences du terminal ubuntu pour y parvenir.

entrer la description de l'image ici

Méthode # 1 – Utiliser dconf

Context

Vous pouvez utiliser l'outil dconf pour accomplir cela, mais c'est un process 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. 

Usage

 $ 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. 

Approche générale

  1. Vous devez d'abord get une list de vos profils gnome-terminal .

     $ dconf list /org/gnome/terminal/legacy/profiles:/ <profile id> 
  2. L'utilisation de ce <profile id> vous permet d'get une list des parameters 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 
  3. Vous pouvez ensuite lire les colors 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)' 

    Context

     $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color 'rgb(0,0,0)' 
  4. Vous pouvez changer les colors aussi

    premier plan

     $ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color "'rgb(255,255,255)'" 

    Context

     $ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/background-color "'rgb(0,0,0)'" 

Exemple

  1. Obtenir mon ID de profil

     $ dconf list /org/gnome/terminal/legacy/profiles:/ :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ 
  2. Utilisez l'ID de profil pour get une list de parameters

     $ 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 
  3. Changez votre arrière-plan bleu

     $ dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'rgb(0,0,255)'" 

ss # 1

Une note sur les colors

Vous pouvez utiliser la notation rgb(R,G,B) lors de la spécification de vos colors ou la notation de hachage #RRGGBB . Dans les deux notations, les arguments sont le rouge, le vert et le bleu. Les valeurs de la première notation sont des entiers compris entre 0 et 255 pour R, G ou B. Dans la seconde notation, les valeurs sont en hexadécimal allant de 00 à FF pour RR, GG ou BB.

Lorsque vous fournissez l'un de ces deux documents à dconf vous devez l'envelopper correctement entre guillemets doubles avec des guillemets simples nesteds à l'intérieur. Sinon, dconf se plaindra.

  • "'rgb(0,0,0)'"
  • "'#FFFFFF'"
  • etc.

Méthode # 2 – Utilisation de gconftool-2

Sur mon système Ubuntu 12.04 j'ai pu changer les colors via la command line comme suit.

REMARQUE: Les options sont finalement stockées dans ce file, $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml .

Approche générale

  1. Vous devez d'abord get l'arborescence pour le profil de gnome-terminal .

     $ gconftool-2 --get /apps/gnome-terminal/global/profile_list [Default] 
  2. En utilisant l'tree résultant, nous pouvons découvrir quels attributes 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 
  3. Obtenir / Définir les attributes 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 ssortingng "#000000FFFFFF" 
  4. 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 

Les references

  • MODIFICATION DES PRÉFÉRENCES TERMINALES DANS GNOME 3
  • base16-gnome-terminal / base16-tomorrow.light.sh
  • Y a-t-il un moyen de changer temporairement la couleur du terminal?

J'ai créé quelques fonctions, basées sur le code Github d'autres threads. Vous pouvez mettre ces fonctions dans votre file ~/.bashrc . Comme vous pouvez le voir, si vous appelez create_random_profile :

  1. Il vérifie et supprime tout profil random précédent que vous avez créé.
  2. Il créera un profil de nom random dans les terminaux gnome.
  3. Il définira ce nom dans une variable d'environnement que vous pouvez utiliser pour modifier votre couleur dans des fonctions prédéfinies. Voir la dernière fonction, setcolord .

Cela devrait être utile, pour avoir de nombreux terminaux avec des colors différentes. En outre, avec des fonctions prédéfinies, vous pouvez changer ces colors à 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 ssortingng --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 ssortingng --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 ssortingng --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 ssortingng white gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type ssortingng 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 ssortingng "#8DCBCC" gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type ssortingng black }