Как изменить ключи dconf без графического интерфейса пользователя (для сценария после установки)?


31

Я установил dconf-tools. В этом случае я манипулирую отображением имени на панели индикатора сеанса.

Я могу изменить это в графическом интерфейсе dconf-editor без проблем, захожу в приложение / индикатор-сессию и убираю галочку «Показать реальное имя на панели».

Тем не менее, я также попытался переключить его, просто используя dconf в командной строке:

dconf write /com/canonical/indicator/session/show-real-name-on-panel false

После перезагрузки панель не изменяется, и ключ в dconf-editor также не изменяется.

Более того, попытка обновить базу данных dconf через терминал приводит к ошибке:

$ dconf update
fatal: Error opening directory '/etc/dconf/db': No such file or directory

По моему опыту кажется, что dconf и dconf-editor не связаны между собой, поэтому мне просто интересно, что я делаю неправильно.

Если я могу понять это, я хочу просто поместить команду в скрипт bash для запуска в следующий раз, когда мне нужно будет выполнить чистую установку для обновления *. Я делаю много твиков за 6 месяцев и с этого момента просто хочу максимально автоматизировать.

  • Немного не по теме: механизм обновления дистрибутива никогда не работал без помех для меня; Я пробовал это делать с 11.04 по 11.10.

Ответы:


35

Вы можете использовать gsettingsинструмент.

gsettings set com.canonical.indicator.session show-real-name-on-panel false

Спасибо, что сработало! Это работает где-нибудь, что dconf будет? Будет ли он устаревшим в пользу dconf или будет использоваться в обозримом будущем?
Inkayacu

Да, gsettings можно использовать везде, где будет dconf.
Аноним

1
Нет, это не будет устаревшим. dconf заменил gconf, который устарел. gconf можно изменить с помощью gconf-editorили gconftool-2. dconf можно изменить с помощью dconf-editorили gsettings.
Аноним

gconf сохраняет свои файлы в вашем домашнем каталоге в каталоге .gconf /.
Аноним

12

На Ubuntu 14.04 у меня работает следующее:

dconf write /org/gnome/gnome-session/auto-save-session true

Значение действительно изменилось и осталось измененным после перезагрузки. У меня была другая проблема, что окна не были сохранены, но это совсем другая проблема.


6

dconf dump+ loadмассовый экспорт и восстановление

  1. Сбросить все настройки в файл:

    dconf dump / >~/.config/dconf/user.conf
    
  2. Откройте этот файл в текстовом редакторе и выберите нужные параметры:

    editor ~/.config/dconf/user.conf
    

    Если вы используете Vim, вам понадобится эта подсветка синтаксиса .

  3. Если вы не знаете название параметра, но знаете, как изменить его с помощью графического интерфейса unity-control-center, выполните:

    dconf watch /
    

    а затем измените их. Точная настройка появится на терминале.

  4. Когда вы хотите восстановить эти настройки, запустите:

    dconf load / <~/.config/dconf/user.conf
    
  5. Git отслеживать файл конфигурации, чтобы никогда не потерять его. https://github.com/andsens/homeshickhomesick - мой любимый метод.

Проверено на Ubuntu 15.10. Подсказка адаптирована с: http://catern.com/2014/12/21/plain-text-configuration-gnome.html


1

Кажется (по крайней мере, в 15.10), что есть некоторые вещи (особенно compiz), которые хранят только конфигурацию на dconfуровне и не могут быть установлены через gsettings. Возможно, это влияет на другие пути конфигурации, но, вероятно, маловероятно - поскольку compiz находится на более низком уровне, чем единица, я не удивлен, что он ведет себя по-другому.

Например, это будет работать:

dconf write /org/compiz/profiles/unity/plugins/core/outputs "['3200x1800+288+2160', '3840x2160+0+0']"

пока этого не будет

gsettings set org.compiz.profiles.unity.plugins.core outputs "['3200x1800+288+2160', '3840x2160+0+0']"
# No such schema 'org.compiz.profiles.unity.plugins.core'

Теперь, если бы я только мог понять, как перезагрузить Compiz без сбоев всего ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.