Bagaimana cara mengubah preferensi profil terminal gnome menggunakan dconf atau gsettings?


16

Setelah memutakhirkan formulir Ubuntu 14.10 menjadi 15.10, tampaknya mengubah gnome-terminalpreferensi menggunakan gconftool-2tidak lagi didukung. Saya kira masalah ini terkait dengan migrasi Gconf ke GSettings .

Sekarang, saya ingin mengubah beberapa skrip lama saya (karena mereka rusak di Ubuntu 15.10) untuk bekerja dengan dconf/ gesettingsbukan gconftool-2.

Sebagai contoh, pada Ubuntu 14.10 ( gnome-terminalversi 3.6.2) saya dapat mengatur jumlah kolom dalam Defaultprofil menggunakan:

$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/default_size_columns \
            --type=int 140
$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/use_custom_default_size \
            --type=bool true

Sekarang, di Ubuntu 15.10, ketikkan:

$ dconf list /org/gnome/terminal/legacy/

memberi

profiles:/
schema-version

sedangkan

$ gsettings list-relocatable-schemas | grep Terminal

memberi

org.gnome.Terminal.SettingsList
org.gnome.Terminal.Legacy.Profile
org.gnome.Terminal.Legacy.Keybindings

Output di atas membingungkan saya:

Masih di Ubuntu 15.10 (menggunakan gnome-terminalversi 3.16.2), jika saya menjalankan:

$ gsettings list-keys org.gnome.Terminal.Legacy.Profile:/ | grep default

Saya mendapat:

default-size-rows
default-show-menubar
default-size-columns

jadi ada default-size-columnskunci yang bisa (?) sesuai dengan default_size_columnskunci di Ubuntu 14.10, tetapi tidak ada use-custom-default-sizekunci yang sesuai dengan use_custom_default_sizekunci di Ubuntu 14.10. Ini juga membingungkan saya.

Juga, jika saya mencoba menjalankan:

$ gsettings set org.gnome.Terminal.Legacy.Profile:/ default-size-columns 150

dan membuka baru gnome-terminalpengaturan dari default-size-columnstampaknya tidak berpengaruh karena terminal masih terbuka dengan 80 kolom ..


Harap tingkatkan ke 15.10 terlebih dahulu, karena 14.10 dan 15.04 sudah mencapai akhir masa pakainya.
Byte Commander

@ByteCommander Saya telah memutakhirkan ke 15.10 sekarang, dan pertanyaannya tetap sama dengan 15.10 untuk 15.04. Saya juga menemukan solusi, yang ingin saya posting. Bagaimana pertanyaan ini bisa dibuka kembali, jadi saya bisa memposting solusinya?
Håkon Hægland

Jawaban:


19

Sintaks yang digunakan dengan gsettingsperintah dijelaskan dalam Pertanyaan Umum Terminal GNOME .

Pertama, Anda perlu mengetahui pengidentifikasi profil yang ingin Anda ubah. Misalnya, pengidentifikasi gnome-terminalprofil default dapat diperoleh dari skema org.gnome.Terminal.ProfilesList.

Kemudian ubah kunci jalur /org/gnome/terminal/legacy/profiles:/:UUID/skema yang diinginkan org.gnome.Terminal.Legacy.Profile:untuk profil ini.

Perhatikan titik dua di jalur di atas. Ini tidak akan berfungsi jika dihilangkan.

Berikut ini adalah skrip yang menggunakan di atas untuk menetapkan default-size-columnsprofil default:

profile=$(gsettings get org.gnome.Terminal.ProfilesList default)
profile=${profile:1:-1} # remove leading and trailing single quotes
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" default-size-columns 150

1
Keren bahwa Anda menemukan solusinya sendiri. Jangan lupa untuk menerima jawaban Anda sendiri.
Byte Commander

1
Sebenarnya, Anda dapat menentukan jumlah profil alih-alih ID-nya, sehingga perintahnya adalah:gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:0/ default-size-columns 150
Anatoli

1
Atau bahkan lebih pendek:gsettings set org.gnome.Terminal.Legacy.Profile:/:0/ default-size-columns 150
Anatoli

Jawaban Anda menyelamatkan hari saya! Bagaimana Anda mengetahui sintaks "org.gnome.Terminal.Legacy.Profile: / org / gnome / terminal / legacy / profiles: /: ... /"? Apakah Anda menemukannya di dokumentasi? Yang membuat saya buntu adalah saya tidak menyadari "Profil" harus diikuti oleh "/ org / gnome / ...".
yaobin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.