Як прочитати значення ключа за замовчуванням за допомогою dconf або gsettings?


13

Я хотів би знати значення за замовчуванням ключа dconf / gsettings.

Моє запитання - це наступне запитання нижче: Де я можу отримати список SCHEMA / PATH / KEY для використання з gsettings?

Що я намагаюся зробити, тому створити сценарій, який читає всі мої особисті переваги, щоб я міг створити їх резервну копію та відновити. Я планую повторити, хоча всі клавіші, як і сценарій вище, бачать, які клавіші були змінені зі значень за замовчуванням, і занотую їх, які можна буде відновити пізніше.

Я бачу, що редактор dconf відображає значення за замовчуванням клавіш, але я дуже хотів би це сценарій. Крім того, я не бачу, як розбір схем /usr/share/glib-2.0/schemas/ може бути автоматизований. Може хтось може допомогти?

gsettings get-default | list-defaults було б добре =)

(Гееш, в старі часи було набагато простіше, коли ти щойно тримав ~ / .somethingrc у підриві ... = \


На підставі наведеної нижче відповіді я оновив сценарій для друку схеми, ключа, типу даних ключа, значення за замовчуванням та фактичне значення:

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

Це вирішення в основному охоплює те, що мені потрібно. Я продовжуватиму працювати над резервним сценарієм звідси.


Якщо хтось також потрапив сюди, шукаючи, як скинути ключ до його значення за замовчуванням, тоді gsettings reset KEYце шлях.
Андреас Сторвік Страуман

Відповіді:


11

Здається, не є приємним способом отримати значення за замовчуванням безпосередньо, але оскільки клієнт перевіряє XDG_CONFIG_HOME в оточенні, пристойним рішенням для отримання значень із нового конфігурації може бути:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

Якщо ви зацікавлені створити резервну копію та відновити налаштування (у цьому випадку слід змінити назву свого питання).

Резервне копіювання

Ви можете створити резервну копію своїх налаштувань за допомогою

gsettings list-recursively > backup

Це записує всі ключі резервного копіювання файлів у вас Home-Folder.

Відновлювати

Наскільки я знаю, немає жодного прямого варіанту імпорту файлу назад у dconf. Можливо, ви можете написати процедуру, яка читає файл резервного копіювання рядка за рядком та виконує gsettings set <input line from backup>для відновлення налаштувань.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.