¿Cómo limpio mi base de datos dconf?

40

Dconf es bastante joven, pero mi base de datos ya es un desastre con muchas claves "sin esquema". ¿Hay alguna manera de hacer un poco de limpieza, o tendría que comenzar desde cero (eliminando ~ / .config / dconf / user, supongo)?

htorque
fuente
¿Hay alguna posibilidad de que pueda agregar una captura de pantalla de lo que está viendo? No veo el mismo problema.
fossfreedom
1
Utilice cualquier software que utilice GSettings / dconf, cambie uno de los valores predeterminados (por ejemplo, gnome-nettool, ejecute un whois), elimine la aplicación. Ahora tiene los restos en su base de datos (por ejemplo, en apps.gnome-nettool). Bien si reinstalas ese software en un momento posterior, pero quiero eliminar esas claves.
htorque
Una búsqueda rápida en línea me permitió encontrar un proyecto de Google Code que parece hacer algo similar para gconf ... ¿podría modificarse para que funcione con dconf?
Christopher Kyle Horton
¿Has intentado mirar el archivo de texto e intentar encontrar una operación de reemplazo para eliminar todos los elementos no deseados de tu dconf?
Severo Raz

Respuestas:

34

Esto es posible usando el dconf resetcomando, aunque no está claro si eso es un efecto secundario de un error.

  • Para una sola clave:

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

    No debe terminar con a /.

  • Para todo un camino:

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

    Debe terminar con a /.

Si hace esto mientras se dconf-editorabre, es probable que se bloquee.

htorque
fuente
Esto funciona bien. Para los novatos, omita los signos de comillas cuando indique rutas. +1 a @htorque. Tx.
Cbhihe
En aras de la exhaustividad, agrego a mi comentario de ayer que utilicé con éxito esa solución en Trusty 14.04.2.
Cbhihe
3

Si desea limpiar la base de datos dconf, primero debe volcar toda la configuración de dconf a través de:

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

Después de esos pasos, debe volver a abrir su sesión gráfica (cerrar sesión / iniciar sesión). Esto creará el ~/.config/dconf/userarchivo nuevamente con casi 0 contenido - configuración predeterminada.

En cuanto al user-backuparchivo que había creado anteriormente, es solo un archivo de texto sin formato:

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

Para que pueda editarlo y eliminar las entradas / bloques deseados de ese archivo. En otras palabras, límpielo.

Cuando termines, cárgalo:

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 /

Creo que deberías reiniciar tu sesión gráfica después de eso nuevamente.

Y eso es todo, pero debe recordar que no se guardarán todas las entradas que tengan valores predeterminados: se crearán nuevamente cuando alguna aplicación lo solicite, lo cual es bueno porque desea hacer una copia de seguridad solo de los valores que ha cambiado .

Mikhail Morfikov
fuente
En realidad, esto no parece tener ningún efecto en el subconjunto dconf que se está volcando, modificado y recargado. (Trabajo con un Ubuntu 14.04.2 completamente actualizado e intento eliminar todas las claves que tienen que ver con el paquete indicador-netspeed-unity de ppa: fixnix / netspeed). Parece una forma limpia de hacerlo, pero simplemente lo hace NO efectúa ningún cambio.
Cbhihe
Rehice esto para estar seguro, pero confirmo que esto no afecta ningún cambio en absoluto. Supongo que voté esa respuesta demasiado rápido. No puedo deshacer eso ahora.
Cbhihe
Actualicé la respuesta, compruébalo, funciona para mí.
Mikhail Morfikov
Sí, ahora funciona bien. Los pasos que faltan son eliminar ~ / .config / dconf / user antes de finalizar su sesión de unidad y comenzar de nuevo. El voto positivo se mantiene. Gracias.
Cbhihe
Esto me salvó cuando obtuve una pantalla en negro después de iniciar sesión en gnome. Después de abrir un tty con Alt+Ctrl+F3, pude realizar estos pasos. Un comando útil adicional fue sudo pkill -u <username>reiniciar la sesión activa de escritorio de gnome.
Zoltán
1

Instalar gconf-cleanerdesde el centro de software.
sudo apt-get install gconf-cleaner

En sus propias palabras, "GConf Cleaner es una herramienta para limpiar la base de datos de Gconf que posiblemente esté abarrotada de claves innecesarias o inválidas".

Parto
fuente
Ya no existe en el centro de software a partir de Ubuntu 18.04 (y posiblemente antes)
vanadium