Bagaimana cara membaca nilai kunci default dengan dconf atau gsettings?

13

Saya ingin tahu nilai default dari kunci dconf / gsettings.

Pertanyaan saya adalah tindak lanjut dari pertanyaan di bawah ini: Di mana saya bisa mendapatkan daftar SCHEMA / PATH / KEY untuk digunakan dengan gsettings?

Apa yang saya coba lakukan, jadi buat skrip yang membaca semua preferensi pribadi saya sehingga saya dapat membuat cadangan dan memulihkannya. Saya berencana untuk mengulangi meskipun semua kunci, seperti skrip di atas, melihat kunci apa yang telah diubah dari nilai standarnya, dan membuat catatan tentang ini, yang dapat dipulihkan nanti.

Saya melihat bahwa dconf-editor menampilkan nilai default kunci, tetapi saya ingin sekali menulis ini. Juga, saya tidak melihat bagaimana penguraian skema /usr/share/glib-2.0/schemas/ dapat diotomatisasi. Mungkin seseorang bisa membantu?

gsettings get-default | list-defaults akan lebih baik =)

(Geesh, itu jauh lebih mudah di masa lalu di mana Anda hanya menyimpan ~ / .somethingrc Anda dalam subversi ... = \


Berdasarkan jawaban yang diberikan di bawah ini, saya telah memperbarui skrip untuk mencetak skema, kunci, tipe data kunci, nilai default , dan nilai aktual:

#!/bin/bash

for schema in $(gsettings list-schemas | sort); do
    for key in $(gsettings list-keys $schema | sort); do
        type="$(gsettings range $schema $key | tr "\n" " ")"
        default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")"
        value="$(gsettings get $schema $key | tr "\n" " ")"
        echo "$schema :: $key :: $type :: $default :: $value"
    done
done

Solusi ini pada dasarnya mencakup apa yang saya butuhkan. Saya akan terus bekerja pada skrip cadangan dari sini.

Zta
sumber
Jika ada orang lain juga datang ke sini mencari cara mereset kunci ke nilai defaultnya, maka gsettings reset KEYitulah caranya.
Andreas Storvik Strauman

Jawaban:

11

Tampaknya tidak ada cara yang baik untuk mendapatkan nilai default secara langsung, tetapi karena klien memeriksa XDG_CONFIG_HOME di lingkungan, solusi yang layak untuk mendapatkan nilai dari konfigurasi baru mungkin:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
Jason Conti
sumber
1

Jika Anda tertarik untuk mencadangkan dan mengembalikan pengaturan Anda (dalam hal ini Anda harus mengubah judul pertanyaan Anda).

Cadangkan

Anda dapat mencadangkan pengaturan dengan

gsettings list-recursively > backup

Ini menulis semua kunci cadangan file di Home-Folder Anda.

Mengembalikan

Sejauh yang saya tahu tidak ada opsi langsung untuk mengimpor file kembali ke dconf. Mungkin Anda bisa menulis rutin yang membaca file cadangan baris demi baris dan menjalankan gsettings set <input line from backup>untuk mengembalikan pengaturan Anda.

Demel
sumber