Bagaimana saya bisa skrip pengaturan yang dibuat oleh gnome-tweak-tool?

14

Saya ingin dapat mengkonfigurasi hal-hal dari baris perintah, sehingga ketika saya menginstal ulang OS saya hanya dapat menjalankan skrip dan mendapatkan kembali konfigurasi pilihan saya.

Sejak "meningkatkan" ke Ubuntu 17.10, saya menemukan saya harus menggunakan gnome-tweak-tool untuk mendapatkan beberapa pengaturan seperti yang saya inginkan.

Setelah saya menemukan pengaturan di GUI gnome-tweak-tool, bagaimana saya bisa mengetahui terjemahan skripnya?

Misalnya baris gsettings berikut cocok dengan entri yang relevan di screenshot layar gnome-tweak-alat di bawah ini ...

gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"

tangkapan layar dari gnome-tweak-tool ... tapi bagaimana orang bisa menebaknya? Dan bagaimana saya, misalnya, mencari tahu di mana mendapatkan pengaturan yang sesuai untuk isyarat dan antialiasing?

st01
sumber
1
TBH Saya selalu menggunakan grepping keyspace misalnya gsettings list-recursively | grep -e alias -e hint- ingin tahu jika ada cara yang lebih baik
steeldriver
Selain menjelajahi kode sumber atau dconf-editor (atau gsettings secara langsung, seperti @steeldriver), tidak banyak yang bisa dilakukan oleh siapa pun.
muru

Jawaban:

22

Mudah mencari tahu apa yang sedang diatur

Alih-alih mencari melalui seluruh direktori opsi:

  1. Buka jendela terminal
  2. Jalankan perintah:

    dconf watch /
  3. Buat perubahan Anda dan lihat apa yang ditunjukkan terminal:

    masukkan deskripsi gambar di sini

    ... dan kamu disana.

Dconf & gsettings

Dalam contoh, Anda melihat output dari dconf. Gsettings adalah clendend untuk dconf. Sering kali, Anda dapat menggunakan dconfperintah atau gsettingsperintah. Dalam hal ini:

dconf write /org/gnome/desktop/background/show-desktop-icons false

atau:

gsettings set org.gnome.desktop.background show-desktop-icons false

Namun jika kunci pengaturan ada, yang terakhir dianggap sebagai praktik yang lebih baik, untuk melindungi integritas dconfbasis data Anda .

Lihat juga di sini dan di sini .

Yakub Vlijm
sumber
Ini brilian, terima kasih. Pertanyaan kecil: (1) bagaimana saya tahu "jika kunci pengaturan ada"? (2) Apa gunanya dua antarmuka baris perintah yang untuk semua maksud dan tujuan identik dengan pengguna? (3) apa perbedaan antara yang pertama dan yang ketiga dari "di sini" Anda? Mereka terlihat seperti halaman yang sama dengan saya.
st01
@ st01 Untuk (1) Anda bisa menjalankan perintah gsettings, melihat apakah itu berfungsi, atau memeriksa di dconf editor (tidak diinstal secara default, tetapi alat yang hebat) jika kunci gsettings (juga) ada. (2) gsettings adalah cli frontend untuk mengedit database dconf. Gsettings juga memeriksa integritas basis data, dan oleh karena itu lebih disukai untuk langsung mengedit basis data dconf. Karena gsettings adalah level yang lebih tinggi, itu lebih lambat. (3), Ah, itu konyol :), Anda benar. Akan mengedit
Jacob Vlijm
@JacobVlijm terima kasih banyak! Kau telah menyelamatkan hidupku!!
Marslo
8

Untuk sebagian besar pengaturan, Anda dapat menggunakan pendekatan ini :

  • Ekspor daftar gsettingsmenjadi file sementara:

    gsettings list-recursively > /tmp/gsettings.before
  • Buat perubahan Anda dengan gnome-tweak-tool(atau unity-control-center);

  • Ekspor daftar gsettingske file sementara lain:

    gsettings list-recursively > /tmp/gsettings.after
  • Bandingkan dua file ( .before dan .after ) dan dapatkan perbedaannya:

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

    Atau bandingkan dan dapatkan hanya nilai-nilai baru ( sumber ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'

    Atau bandingkan dan dapatkan hanya nilai-nilai baru, tetapi ganti awal baris dengan gsettings setuntuk menyiapkan daftar perintah, yang dingin akan disimpan langsung dalam file skrip Anda ( sumber ):

    diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'

Anda dapat menjalankan semua perintah ini dari satu baris (atau Anda dapat membuat skrip untuk mengotomatiskan proses):

gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

Demo berikutnya dibuat dalam Ubuntu 16.04. Saya pikir pendekatannya akan berhasil juga dalam 17.10:

masukkan deskripsi gambar di sini


Pembaruan: Saya baru saja menemukan cara mudah di dalam Ubuntu 17.10:

masukkan deskripsi gambar di sini

pa4080
sumber
1
Sangat berguna, terima kasih, saya tidak tahu Anda bisa membuang semua pengaturan seperti ini.
st01
1
Ini luar biasa, terima kasih banyak! Sekarang saya bisa mengembalikan konfigurasi lama saya ketika saya main-main di gsettings.
Nicholas Stommel