it-swarm.com.de

Stellen Sie den Hintergrund / die Textfarbe des Gnome-Terminals im Bash-Skript ein

Ich möchte den Hintergrund meines Gnome-Terminals einrichten (#002b36) und Vordergrundfarbe in Ubuntu 13 mit Bash-Skript.

Ich habe gconftool ausprobiert, konnte aber keinen Erfolg haben.

GCONFTOOL-2(1)                  User Commands                                                    GCONFTOOL-2(1)

NAME
       gconftool-2 - GNOME configuration tool

Mein gnome terminal Version ist

$ gnome-terminal --version
GNOME Terminal 3.6.1

enter image description here

Derzeit verwende ich die Benutzeroberfläche für Ubuntu-Terminaleinstellungen, um dies zu erreichen.

enter image description here

22
prayagupd

Methode 1 - Verwenden von dconf

Hintergrund

Sie können das Tool dconf verwenden, um dies zu erreichen. Dies ist jedoch ein mehrstufiger Prozess.

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.

Verwendungszweck

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

Allgemeiner Ansatz

  1. Zuerst müssen Sie eine Liste Ihrer gnome-terminal Profile erhalten.

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    <profile id>
    
  2. Mit diesem <profile id> Können Sie dann eine Liste der konfigurierbaren Einstellungen erhalten

    $ 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. Sie können dann die aktuellen Farben des Vordergrunds oder des Hintergrunds lesen

    Vordergrund

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

    Hintergrund

    $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
    'rgb(0,0,0)'
    
  4. Sie können auch die Farben ändern

    Vordergrund

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

    Hintergrund

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

Beispiel

  1. Holen Sie sich meine Profil-ID

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
    
  2. Verwenden Sie die Profil-ID, um eine Liste der Einstellungen abzurufen

    $ 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. Ändern Sie Ihren Hintergrund blau

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

ss #1

Ein Hinweis zu Farben

Sie können entweder die Notation rgb(R,G,B) verwenden, wenn Sie Ihre Farben angeben, oder die Hash-Notation #RRGGBB. In beiden Notationen sind die Argumente rot, grün und blau. Die Werte in der ersten Notation sind ganze Zahlen im Bereich von 0 bis 255 für R, G oder B. In der zweiten Notation sind die Werte hexadezimal im Bereich von 00 bis FF für RR, GG oder BB.

Wenn Sie dconf eines dieser Elemente bereitstellen, müssen Sie es ordnungsgemäß in doppelte Anführungszeichen mit darin verschachtelten einfachen Anführungszeichen einschließen. Andernfalls wird sich dconf beschweren.

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

Methode 2 - Verwenden von gconftool-2

Auf meinem Ubuntu 12.04-System konnte ich die Farben über die Befehlszeile wie folgt ändern.

HINWEIS: Die Optionen werden letztendlich in dieser Datei $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml Gespeichert.

Allgemeiner Ansatz

  1. Zuerst müssen Sie den Baum für das Profil von gnome-terminal Abrufen.

    $ gconftool-2 --get /apps/gnome-terminal/global/profile_list
    [Default]
    
  2. Anhand des resultierenden Baums können wir herausfinden, welche Attribute konfigurierbar sind.

    $ 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. Holen Sie sich die Attribute background_color Und 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"    
    
  4. Bestätigen

    $ 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
    

Verweise

20
slm

Ich habe einige Funktionen basierend auf Github-Code aus anderen Threads erstellt. Sie können diese Funktionen in Ihr ~/.bashrc Datei. Wie Sie sehen können, wenn Sie create_random_profile:

  1. Alle zuvor erstellten zufälligen Profile werden überprüft und gelöscht.
  2. Es wird ein zufälliges Namensprofil in Gnome-Terminals erstellt.
  3. Dieser Name wird in einer Umgebungsvariablen festgelegt, mit der Sie Ihre Farbe in vordefinierten Funktionen ändern können. Siehe die letzte Funktion setcolord.

Dies sollte nützlich sein, um viele Terminals mit unterschiedlichen Farben zu haben. Außerdem können Sie mit vordefinierten Funktionen diese Farben im laufenden Betrieb ändern.

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
}
0
joniale