встановити фон / текст тексту гнома з баш скрипту


22

Я хотів би встановити #002b36колір фону ( ) та переднього плану мого терміналу gnome в ubuntu 13, використовуючи скрипт bash.

Я намагався, gconftoolале не міг досягти успіху.

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

NAME
       gconftool-2 - GNOME configuration tool

Моя gnome terminalверсія така

$ gnome-terminal --version
GNOME Terminal 3.6.1

введіть тут опис зображення

В даний час я використовую інтерфейс налаштувань терміналу ubuntu, щоб досягти цього.

введіть тут опис зображення

Відповіді:


20

Спосіб №1 - Використання dconf

Фон

Ви можете скористатися dconfінструментом для цього, проте це багатоетапний процес.

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.

Загальний підхід

  1. Спочатку вам потрібно буде отримати список своїх gnome-terminalпрофілів.

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    <profile id>
  2. Використовуючи це, <profile id>ви можете отримати список настроюваних налаштувань

    $ 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. Потім можна прочитати поточні кольори або переднього плану, або фону

    передній план

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

    фон

    $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
    'rgb(0,0,0)'
  4. Ви також можете змінити кольори

    передній план

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

    фон

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

Приклад

  1. Отримати мій ідентифікатор профілю

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
  2. Використовуйте ідентифікатор профілю, щоб отримати список налаштувань

    $ 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. Змініть фон синім

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

              ss №1

Примітка про кольори

Ви можете використовувати або позначення, rgb(R,G,B)вказуючи свої кольори, або позначення хеша #RRGGBB. В обох позначеннях аргументи - червоний, зелений та синій. Значення в першій нотації є цілими числами, що знаходяться в межах від 0-255 для R, G або B. У другому позначенні значення знаходяться в шістнадцятковому значенні, починаючи від 00 до FF для RR, GG або BB.

При наданні будь-якого з них dconfвам потрібно правильно зафіксувати їх у подвійних лапках з одинарними цитатами, що вкладаються всередину. Інакше dconfпоскаржиться.

  • "'rgb(0,0,0)'"
  • "'#FFFFFF'"
  • тощо.

Спосіб №2 - Використання gconftool-2

У моїй системі Ubuntu 12.04 я зміг змінити кольори за допомогою командного рядка наступним чином.

Примітка: Параметри, в кінцевому рахунку зберігається в цьому файлі $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml.

Загальний підхід

  1. Спочатку вам потрібно буде отримати дерево для gnome-terminalпрофілю профілю.

    $ gconftool-2 --get /apps/gnome-terminal/global/profile_list
    [Default]
  2. Використовуючи отримане дерево, ми можемо з’ясувати, які атрибути можна налаштувати.

    $ 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. Отримати / встановити 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"    
  4. Підтвердіть

    $ 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

Список літератури


3
Безліч подяк за цю чудову відповідь. Але мій термінал не мав профілівdconf list /org/gnome/terminal/legacy/profiles:/
prayagupd

@PrayagUpd - я дивлюся на встановлення Ubuntu 12.04, і здається, що gnome-термінал не є типовим. Емулятор терміналу Debian X - це def. Ви можете перевірити ж / цю команду на вкладці Програми exo-preferred-applications. Подробиці тут: askubuntu.com/questions/356842 / ... . Ви можете це підтвердити? Сказане було зроблено при встановленні Fedora 19 GNOME 3.10.
slm

Так, Debian X terminal emulatorза замовчуванням було встановлено 13.04, що його зміна gnome terminalне працює.
prayagupd

@PrayagUpd - чи працює метод №2 для вас?
slm

1
станом на Ubuntu 18.04, тепер ви повинні використовуватись sudo dconf whateverпри видачі команд
Scott Stensland

0

Я створив деякі функції на основі коду Github з інших потоків. Ви можете помістити ці функції у свій ~/.bashrcфайл. Як бачите, якщо ви телефонуєте create_random_profile:

  1. Він перевірить і видалить будь-який попередній створений вами випадковий профіль.
  2. Це створить довільний профіль імені в терміналах gnome.
  3. Він встановить це ім'я в змінній середовища, яку ви можете використовувати для зміни свого кольору в попередньо визначених функціях. Див останньої функції setcolord.

Це повинно бути корисно, щоб було багато терміналів з різними кольорами. Крім того, за допомогою попередньо визначених функцій ви можете змінювати ці кольори на льоту.

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
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.