¿Cómo puedo escribir la configuración realizada por gnome-tweak-tool?

14

Me gusta poder configurar cosas desde la línea de comandos, de modo que cuando reinstale el sistema operativo pueda ejecutar un script y recuperar mi configuración preferida.

Desde que "actualicé" a Ubuntu 17.10, descubrí que tenía que usar gnome-tweak-tool para obtener algunas configuraciones de la forma en que las quiero.

Una vez que encuentro una configuración en la GUI de gnome-tweak-tool, ¿cómo puedo averiguar su traducción programable?

Por ejemplo, las siguientes líneas de configuración coinciden con las entradas relevantes en la captura de pantalla de la herramienta gnome-tweak-tool a continuación ...

gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"

captura de pantalla de gnome-tweak-tool ... pero ¿cómo podría alguien adivinar eso? ¿Y cómo podría, por ejemplo, averiguar dónde obtener la configuración correspondiente para insinuar y suavizar?

st01
fuente
1
TBH Siempre he recurrido a aprovechar el espacio de teclas, por ejemplo gsettings list-recursively | grep -e alias -e hint, me encantaría saber si hay una mejor manera
Steeldriver
Además de navegar por el código fuente o dconf-editor (o gsettings directamente, como @steeldriver), nadie puede hacer mucho.
muru

Respuestas:

22

Averigüe fácilmente lo que se está configurando

En lugar de buscar en todo un directorio de opciones:

  1. Abrir una ventana de terminal
  2. Ejecute el comando:

    dconf watch /
  3. Realice sus cambios y vea lo que muestra la terminal:

    ingrese la descripción de la imagen aquí

    ... y ahí estás.

Dconf y gsettings

En el ejemplo, ve la salida de dconf. Gsettings es el cliente principal de dconf. Muchas veces, puede usar un dconfcomando o un gsettingscomando. En este caso, ya sea:

dconf write /org/gnome/desktop/background/show-desktop-icons false

o:

gsettings set org.gnome.desktop.background show-desktop-icons false

Sin embargo, si la clave gsettings existe, esta última se considera una mejor práctica para proteger la integridad de su dconfbase de datos.

Ver también aquí y aquí .

Jacob Vlijm
fuente
Esto es genial, gracias. Pequeñas preguntas: (1) ¿cómo sé "si existe la clave gsettings"? (2) ¿Cuál es el punto de dos interfaces de línea de comandos que son para todos los propósitos idénticos al usuario? (3) ¿cuál es la diferencia entre el primero y el tercero de su "aquí"? A mí me parecen la misma página.
st01
@ st01 Para (1) simplemente puede ejecutar el comando gsettings, ver si hace el trabajo, o verificar en el editor dconf (no está instalado de manera predeterminada, pero es una gran herramienta) si la clave gsettings (también) existe. (2) gsettings es la interfaz cli para editar la base de datos dconf. Gsettings también verifica la integridad de la base de datos y, por lo tanto, es preferible editar directamente la base de datos dconf. Dado que gsettings es de mayor nivel, es más lento. (3) Ah, eso es una tontería :), tienes razón. Se editará
Jacob Vlijm el
@JacobVlijm muchas gracias! ¡¡Me salvaste la vida!!
Marslo
8

Para la mayoría de las configuraciones puede usar este enfoque:

  • Exporte la lista de gsettingsa un archivo temporal:

    gsettings list-recursively > /tmp/gsettings.before
  • Realice sus cambios por gnome-tweak-tool(o unity-control-center);

  • Exporte la lista de gsettingsa otro archivo temporal:

    gsettings list-recursively > /tmp/gsettings.after
  • Compare los dos archivos ( .before y .after ) y obtenga las diferencias:

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

    O compare y obtenga solo los nuevos valores ( fuente ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'

    O compare y obtenga solo los valores nuevos, pero reemplace el comienzo de las líneas con gsettings setpara preparar una lista de comandos, que se pueden almacenar directamente en su archivo de script ( fuente ):

    diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'

Puede ejecutar todos estos comandos desde una línea (o puede crear un script para automatizar el proceso):

gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

La próxima demostración se crea en Ubuntu 16.04. Creo que el enfoque funcionará también dentro de 17.10:

ingrese la descripción de la imagen aquí


Actualización: acabo de encontrar una manera fácil dentro de Ubuntu 17.10:

ingrese la descripción de la imagen aquí

pa4080
fuente
1
Muy útil, gracias, no sabía que podría volcar todas las configuraciones como esta.
st01
1
Esto es excelente, muchas gracias! Ahora puedo restaurar mi configuración anterior cuando me meto en gsettings.
Nicholas Stommel