atur gnome latar belakang terminal / warna teks dari bash script

22

Saya ingin mengatur latar belakang terminal gnome saya ( #002b36) dan warna foreground di ubuntu 13, menggunakan skrip bash.

Saya mencoba gconftooltetapi tidak berhasil.

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

NAME
       gconftool-2 - GNOME configuration tool

gnome terminalVersi saya adalah

$ gnome-terminal --version
GNOME Terminal 3.6.1

masukkan deskripsi gambar di sini

Saat ini saya menggunakan UI preferensi terminal ubuntu untuk mencapai ini.

masukkan deskripsi gambar di sini

prayagupd
sumber

Jawaban:

20

Metode # 1 - Menggunakan dconf

Latar Belakang

Anda dapat menggunakan dconfalat ini untuk mencapai hal ini, namun ini merupakan proses multi-langkah.

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.

Pemakaian

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

Pendekatan umum

  1. Pertama, Anda harus mendapatkan daftar gnome-terminalprofil Anda .

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    <profile id>
  2. Dengan ini, <profile id>Anda kemudian bisa mendapatkan daftar pengaturan yang dapat dikonfigurasi

    $ 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. Anda kemudian dapat membaca warna saat ini baik latar depan atau latar belakang

    latar depan

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

    Latar Belakang

    $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
    'rgb(0,0,0)'
  4. Anda dapat mengubah warna juga

    latar depan

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

    Latar Belakang

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

Contoh

  1. Dapatkan ID profil saya

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
  2. Gunakan ID profil untuk mendapatkan daftar pengaturan

    $ 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. Ubah latar belakang biru Anda

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

              ss # 1

Catatan tentang warna

Anda dapat menggunakan notasi rgb(R,G,B)saat menentukan warna Anda atau notasi hash #RRGGBB. Dalam kedua notasi argumennya merah, hijau, dan biru. Nilai-nilai dalam notasi pertama adalah bilangan bulat mulai dari 0-255 untuk R, G, atau B. Dalam notasi kedua nilai-nilai berada dalam hexidecimal mulai dari 00 hingga FF untuk RR, GG, atau BB.

Ketika memberikan salah satu dari ini untuk dconfAnda harus membungkusnya dengan benar dalam tanda kutip ganda dengan tanda kutip tunggal bersarang di dalamnya. Kalau tidak, dconfakan mengeluh.

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

Metode # 2 - Menggunakan gconftool-2

Pada sistem Ubuntu 12.04 saya, saya dapat mengubah warna melalui baris perintah sebagai berikut.

CATATAN: Opsi pada akhirnya disimpan dalam file ini $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml,.

Pendekatan umum

  1. Pertama, Anda harus mendapatkan gnome-terminalprofil pohon untuk .

    $ gconftool-2 --get /apps/gnome-terminal/global/profile_list
    [Default]
  2. Dengan menggunakan pohon yang dihasilkan kita dapat mengetahui atribut apa yang dapat dikonfigurasi.

    $ 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. Dapatkan / Setel background_color& foreground_coloratribut

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

    $ 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

Referensi

slm
sumber
3
Terima kasih banyak atas jawaban yang luar biasa ini. Tetapi terminal saya tidak memberikan profil padadconf list /org/gnome/terminal/legacy/profiles:/
prayagupd
@PrayagUpd - Saya sedang mencari instal Ubuntu 12.04 dan sepertinya gnome-terminal bukan default. Emulator terminal Debian X adalah def. Anda dapat memeriksa dengan perintah ini di bawah tab Utilities exo-preferred-applications,. Detail ada di sini: askubuntu.com/questions/356842/… . Bisakah Anda mengkonfirmasi ini? Hal di atas dilakukan pada instalasi Fedora 19 GNOME 3.10.
slm
Ya, Debian X terminal emulatoradalah default di 13.04, mengubahnya menjadi gnome terminaltidak berfungsi juga.
prayagupd
@PrayagUpd - apakah metode # 2 berfungsi untuk Anda?
slm
1
pada Ubuntu 18.04 Anda sekarang harus menggunakan sudo dconf whateverketika mengeluarkan perintah
Scott Stensland
0

Saya telah membuat beberapa fungsi, berdasarkan kode Github dari utas lainnya. Anda dapat menempatkan fungsi-fungsi ini di ~/.bashrcfile Anda . Seperti yang Anda lihat, jika Anda menelepon create_random_profile:

  1. Ini akan memeriksa dan menghapus profil acak sebelumnya yang telah Anda buat.
  2. Ini akan membuat profil nama acak di terminal gnome.
  3. Ini akan menetapkan nama itu dalam variabel lingkungan yang dapat Anda gunakan untuk mengubah warna Anda dalam fungsi yang telah ditentukan. Lihat fungsi terakhir setcolord,.

Ini harus bermanfaat, untuk memiliki banyak terminal dengan warna berbeda. Selain itu, dengan fungsi yang telah ditentukan sebelumnya, Anda dapat mengubah warna ini dengan cepat.

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