Bagaimana cara saya membersihkan basis data dconf saya?

40

Dconf masih sangat muda, namun basis data saya sudah berantakan dengan banyak kunci "tanpa skema". Apakah ada cara untuk melakukan pembersihan, atau apakah saya harus mulai dari awal (dengan menghapus ~ / .config / dconf / pengguna saya kira)?

htorque
sumber
setiap kesempatan Anda dapat menambahkan tangkapan layar dari apa yang Anda lihat? Saya tidak melihat masalah yang sama.
fossfreedom
1
Gunakan perangkat lunak apa pun yang menggunakan GSettings / dconf, ubah salah satu nilai default (mis. Gnome-nettool, jalankan whois), hapus aplikasi. Anda sekarang memiliki sisa-sisa di basis data Anda (mis. Di apps.gnome-nettool). Bagus jika Anda menginstal ulang perangkat lunak itu di lain waktu, namun saya ingin menghapus kunci-kunci itu.
htorque
Pencarian daring yang cepat, biarkan saya menemukan proyek Google Code yang sepertinya melakukan hal serupa untuk gconf ... mungkinkah ini dimodifikasi agar berfungsi dengan dconf?
Christopher Kyle Horton
Sudahkah Anda mencoba melihat file teks dan mencoba menemukan operasi pengganti untuk menghapus semua item yang tidak diinginkan dari dconf Anda?
Severo Raz

Jawaban:

34

Ini dimungkinkan menggunakan dconf resetperintah, meskipun tidak jelas apakah itu merupakan efek samping dari bug.

  • Untuk satu kunci:

    dconf reset "/path/to/the/key"
    

    Tidak boleh diakhiri dengan a /.

  • Untuk seluruh jalur:

    dconf reset -f "/path/to/the/path/"
    

    Harus diakhiri dengan a /.

Jika Anda melakukan ini saat telah dconf-editordibuka, kemungkinan akan macet.

htorque
sumber
Ini berfungsi dengan baik. Untuk pemula, hilangkan tanda kutip saat Anda menunjukkan jalur. +1 ke @htorque. Tx.
Cbhihe
Demi kelengkapan, saya menambahkan komentar saya kemarin bahwa saya berhasil menggunakan solusi itu pada Trusty 14.04.2.
Cbhihe
3

Jika Anda ingin membersihkan basis data dconf, Anda harus terlebih dahulu membuang seluruh konfigurasi dconf melalui:

morfik:~$ cd ~/.config/dconf/
morfik:~/.config/dconf$ dconf dump / > user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 30.0K 2015-02-07 08:18:04 ./user-backup
morfik:~/.config/dconf$ rm user

Setelah langkah-langkah itu Anda harus membuka kembali sesi grafis Anda (logout / in). Ini akan membuat ~/.config/dconf/userfile baru dengan hampir 0 konten - pengaturan default.

Adapun user-backupfile yang Anda buat sebelumnya, itu hanya file teks biasa:

...
[apps/light-locker]
late-locking=false
lock-after-screensaver=uint32 1
lock-on-suspend=true
...

Jadi Anda dapat mengeditnya dan menghapus entri / blok yang diinginkan dari file itu. Dengan kata lain - bersihkan.

Setelah selesai, muat:

morfik:~/.config/dconf$ dconf load / < ./user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 14.0K 2015-02-07 08:26:23 ./user-backup
morfik:~/.config/dconf$ dconf update /

Saya pikir Anda harus memulai kembali sesi grafis Anda setelah itu lagi.

Dan itu saja, tetapi Anda harus ingat bahwa semua entri yang memiliki nilai default tidak akan disimpan - mereka akan dibuat lagi ketika beberapa aplikasi akan memintanya, yang merupakan hal yang baik karena Anda ingin mencadangkan hanya nilai yang telah Anda ubah .

Mikhail Morfikov
sumber
Ini sebenarnya tampaknya tidak memiliki efek apa pun pada subpath dconf yang dibuang dimodifikasi dan dimuat ulang. (Saya bekerja dengan Ubuntu 14.04.2 yang sepenuhnya diperbarui dan mencoba untuk menghapus semua kunci yang ada hubungannya dengan indikator paket-netspeed-unity dari ppa: fixnix / netspeed.) Kelihatannya seperti cara yang bersih untuk melakukannya tetapi hanya melakukan TIDAK mempengaruhi perubahan apa pun.
Cbhihe
Saya redid ini untuk memastikan, tetapi saya mengkonfirmasi ini tidak mempengaruhi perubahan apa pun. Saya kira saya memilih jawaban itu sedikit terlalu cepat. Tidak dapat membatalkannya sekarang.
Cbhihe
Saya memperbarui jawabannya, periksa - itu berfungsi untuk saya.
Mikhail Morfikov
Ya, sekarang berfungsi dengan baik. Menghapus ~ / .config / dconf / user sebelum mengakhiri sesi persatuan Anda dan memulai yang baru adalah langkah-langkah yang hilang. Suara-up berdiri. Terima kasih.
Cbhihe
Ini menyelamatkan saya ketika saya mendapat layar hitam setelah masuk ke gnome. Setelah membuka tty dengan Alt+Ctrl+F3, saya bisa melakukan langkah-langkah ini. Perintah tambahan yang bermanfaat adalah sudo pkill -u <username>memulai kembali sesi desktop gnome yang aktif.
Zoltán
1

Instal gconf-cleanerdari pusat perangkat lunak.
sudo apt-get install gconf-cleaner

Dengan kata-kata mereka sendiri "Pembersih GConf adalah alat untuk membersihkan basis data Gconf Anda yang mungkin berantakan dengan kunci yang tidak perlu atau tidak valid."

Parto
sumber
Tidak ada lagi di pusat perangkat lunak pada Ubuntu 18.04 (dan mungkin sebelumnya)
vanadium