Bagaimana saya bisa melihat konten cadangan dari file database dconf?


20

Saya telah mengambil cadangan file tempat dconfdatabase saya disimpan ( ~/.config/dconf/useryang merupakan file biner), dan sekarang saya perlu memindahkan beberapa kunci dari cadangan ke yang dconfdigunakan.

Bagaimana saya bisa melihat konten yang dicadangkan dconftanpa meletakkannya "di tempat" dan melihatnya dengan misalnya dconf-editor?

Jawaban:


25

Untuk melihat konten file itu, Anda dapat mengganti namanya - mis. test- letakkan di bawah ~/.config/dconf/dan kemudian dconfbaca / buang pengaturan dari file itu.
Secara default , dconfmembaca user-db yang ditemukan di $XDG_CONFIG_HOME/dconf/:

Sebuah "user-db"baris menentukan basis data pengguna.
Basis data ini ditemukan di $XDG_CONFIG_HOME/dconf/. Nama file yang dibuka di direktori itu persis seperti yang tertulis di profil. File ini diharapkan dalam format database dconf biner. Catatan yang XDG_CONFIG_HOMEtidak dapat diatur / dimodifikasi per terminal atau sesi, karena dengan begitu penulis dan pembaca akan mengerjakan DB yang berbeda (penulis dimulai oleh DBus dan tidak dapat melihat variabel itu).

Akibatnya, Anda memerlukan profil khusus yang mengarah ke file db tertentu - mis. user-db:testDan kemudian menginstruksikan dconfuntuk membuang data (menggunakan profil khusus) melalui DCONF_PROFILEvariabel lingkungan:

cd
cp /path_to_backup_dconf/user ~/.config/dconf/test
printf %s\\n "user-db:test" > db_profile
DCONF_PROFILE=~/db_profile dconf dump / > old_settings

Hasilnya adalah file ( old_settings) yang berisi pengaturan dari dconffile cadangan Anda , misalnya:

[org/gnome/desktop/interface]
font-name='DejaVu Sans Oblique 10'
document-font-name='DejaVu Sans Oblique 10'
gtk-im-module='gtk-im-context-simple'
clock-show-seconds=true
icon-theme='HighContrast'
monospace-font-name='DejaVu Sans Mono Oblique 10'

[org/gnome/desktop/input-sources]
sources=@a(ss) []
xkb-options=@as []

[org/gnome/desktop/wm/preferences]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

.......

Anda kemudian dapat menghapus file-file itu:

rm -f ~/db_profile ~/.config/dconf/test

dan memuat pengaturan lama ke dalam database saat ini:

dconf load / < old_settings

Jika Anda ingin membuang hanya pengaturan tertentu cukup sediakan path:

DCONF_PROFILE=~/db_profile dconf dump /org/gnome/desktop/wm/preferences/
[/]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

tetapi perhatikan bahwa untuk setiap jalur Anda harus memiliki file yang berbeda dan ketika Anda memuatnya Anda harus menentukan jalur yang sesuai:

dconf load /org/gnome/desktop/wm/preferences/ < old_wm_settings

Juga perhatikan bahwa, karena perubahan hulu, dconfdatabase yang lebih lama mungkin berisi jalur, kunci dan nilai yang tidak valid di versi yang lebih baru sehingga kompatibilitas penuh antara file db yang dibuat oleh versi berbeda dconftidak selalu dijamin. Dalam hal ini, Anda harus memeriksa old_settingsfile yang dihasilkan dan menghapus secara manual atau mengedit entri yang tidak valid sebelum memuatnya ke database Anda saat ini.


17
WTF? Siapa yang bertanggung jawab atas kekacauan ini dan siapa yang harus dipukuli karena ini? (Tetapi: Terima kasih banyak atas informasi ini, itu juga membantu saya.)
Tino

1
@Tino gnome devs saya percaya :) Tapi harus ada beberapa alat front-end
Anwar


Saya pikir membaca bukan masalah. Setel XDG_CONFIG_HOMEke direktori lain. Tidak diperlukan sihir profil. Tetapi menulis ke file dconf yang arbitrer itu sulit dan mungkin membuat trik profil Anda perlu.
Torsten Bronger

-1

Saya pikir jawaban pertama terlalu rumit masalah ini, jadi mari kita coba lagi, gunakan /org/cinnamon/sebagai contoh namespace untuk membuat cadangan dan memulihkan:

Untuk mencadangkan / org / kayu manis /:

Dari terminal, jalankan:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

simpan backup_of_my_cinnamon_settingsfile di suatu tempat untuk nanti

Untuk mengatur ulang / org / kayu manis / ke default:

dconf reset -f /org/cinnamon/

Catatan, kayu manis dapat membeku atau macet saat melakukan ini

Untuk mengembalikan semua pengaturan Anda untuk / org / kayu manis:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Prosesnya akan sama untuk /org/gnome/terminal/, dll.

Untuk hasil terbaik, perbarui referensi aplikasi saat tidak berjalan.

Terima kasih kepada Cinnamon docs untuk tipsnya.


3
Saya pikir Anda harus mencoba lagi: pertanyaannya di sini bukanlah bagaimana membuat cadangan dan mengembalikan beberapa pengaturan tetapi bagaimana melihat (dan mungkin memuat ) pengaturan dari file biner yang disimpan .
don_crissti
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.