Pertanyaan Bagaimana cara membaca nilai kunci default dengan dconf atau gsettings?


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 mencadangkannya dan memulihkannya. Saya berencana untuk mengulangi meskipun semua kunci, seperti skrip di atas, melihat kunci apa yang telah diubah dari nilai defaultnya, dan membuat catatan ini, yang dapat dipulihkan nanti.

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

gsettings get-default | list-defaults akan bagus =)

(Geesh, itu jauh lebih mudah di masa lalu dimana kau menyimpan ~ / .somethingrc dalam subversi ... = \


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

#!/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 mengerjakan scrip cadangan dari sini.


11
2017-10-05 19:24


asal




Jawaban:


Sepertinya tidak ada cara yang bagus 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

9
2017-10-05 20:23





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

Backup

Anda dapat membuat cadangan pengaturan Anda

gsettings list-recursively > backup

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

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 mengeksekusi gsettings set <input line from backup> untuk mengembalikan pengaturan Anda.


1
2017-10-18 14:17