Jak odczytać domyślną wartość klucza za pomocą dconf lub gsettings?


13

Chciałbym poznać domyślną wartość klucza dconf / gsettings.

Moje pytanie jest kontynuacją poniższego pytania: Gdzie mogę uzyskać listę SCHEMA / ŚCIEŻKA / KLUCZ do użycia z ustawieniami?

Co próbuję zrobić, więc stwórz skrypt, który odczyta wszystkie moje osobiste preferencje, aby móc je wykonać kopię zapasową i przywrócić. Planuję iterować wszystkie klucze, takie jak powyższy skrypt, zobaczyć, które klucze zostały zmienione z ich wartości domyślnej, i zanotować te, które można później przywrócić.

Widzę, że edytor dconf wyświetla domyślną wartość klawiszy, ale bardzo chciałbym to zrobić. Nie rozumiem też, w jaki sposób parsowanie schematów /usr/share/glib-2.0/schemas/ można zautomatyzować. Może ktoś może pomóc?

gsettings get-default | list-defaults byłoby miło =)

(Geesh, było znacznie łatwiej w dawnych czasach, kiedy trzymałeś ~ / .somethingrc w subversion ... = \


W oparciu o odpowiedź podaną poniżej zaktualizowałem skrypt, aby wydrukować schemat, klucz, typ danych klucza, wartość domyślną i wartość rzeczywistą:

#!/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

To obejście obejmuje w zasadzie to, czego potrzebuję. Będę kontynuować pracę nad kopią skryptu z tego miejsca.


Jeśli ktoś jeszcze tu przyszedł i szuka sposobu zresetowania klucza do wartości domyślnej, to gsettings reset KEYjest droga.
Andreas Storvik Strauman

Odpowiedzi:


11

Wydaje się, że nie jest dobrym sposobem na uzyskanie wartości domyślnych bezpośrednio, ale ponieważ klient sprawdza XDG_CONFIG_HOME w środowisku, przyzwoite obejście w celu uzyskania wartości ze świeżej konfiguracji może być:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

Jeśli chcesz wykonać kopię zapasową i przywrócić ustawienia (w takim przypadku powinieneś zmienić tytuł pytania).

Utworzyć kopię zapasową

Możesz wykonać kopię zapasową ustawień za pomocą

gsettings list-recursively > backup

Spowoduje to zapisanie wszystkich kluczy do kopii zapasowej pliku w folderze domowym.

Przywracać

O ile wiem, nie ma żadnej bezpośredniej opcji importowania pliku z powrotem do dconf. Być może mógłbyś napisać procedurę, która odczytuje plik kopii zapasowej wiersz po wierszu i wykonuje, gsettings set <input line from backup>aby przywrócić ustawienia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.