Jak zmienić klucze dconf bez GUI (dla skryptu poinstalacyjnego)?

31

Zainstalowałem narzędzia dconf. W tym przypadku manipuluję wyświetlaniem nazwy w panelu na wskaźniku sesji.

Mogę to zmienić w GUI edytora dconf bez problemu, przechodzę do sesji aplikacji / wskaźnika i odznaczam show-real-name-on-panel.

Jednak próbowałem również przełączać to za pomocą dconf w wierszu poleceń:

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

Po ponownym uruchomieniu panel pozostaje niezmieniony, a klucz w edytorze dconf również pozostaje niezmieniony.

Ponadto próba aktualizacji bazy danych dconf za pośrednictwem terminala powoduje błąd:

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

Z mojego doświadczenia wynika, że wydaje się jakby dconf i dconf-redaktor nie mają związku, więc po prostu zastanawiam się, co robię źle.

Jeśli uda mi się to rozgryźć, chcę po prostu umieścić polecenie w skrypcie bash, aby uruchomić następnym razem, gdy będę musiał przeprowadzić czystą instalację w celu aktualizacji *. Robię wiele poprawek w ciągu 6 miesięcy i odtąd chcę zautomatyzować jak najwięcej.

  • Nie na temat: mechanizm aktualizacji dystrybucji nigdy nie działał bez problemów; Próbowałem też od 11.04 do 11.10.
Inkayacu
źródło

Odpowiedzi:

35

Możesz użyć tego gsettingsnarzędzia.

gsettings set com.canonical.indicator.session show-real-name-on-panel false
Anonimowy
źródło
Dziękuję, że zadziałało! Czy to działa gdziekolwiek, co zrobiłby dconf? Czy zostanie wycofany na korzyść dconf, czy będzie nadal używany w dającej się przewidzieć przyszłości?
Inkayacu,
Tak, ustawień gset można używać wszędzie tam, gdzie zrobiłby to dconf.
Anonimowy
1
Nie, to nie będzie przestarzałe. dconf zastąpił gconf, który będzie przestarzały. gconf można zmienić za pomocą gconf-editorlub gconftool-2. dconf można zmienić za pomocą dconf-editorlub gsettings.
Anonimowy
gconf zapisuje swoje pliki w katalogu domowym w katalogu .gconf /.
Anonimowy
12

Następujące działało dla mnie na Ubuntu 14.04:

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

Wartość zmieniła się i pozostała zmieniona po ponownym uruchomieniu. Miałem inny problem, że okna nie zostały zapisane, ale to zupełnie inna sprawa.

AlikElzin-kilaka
źródło
6

dconf dump+ loadmasowy eksport i przywracanie

  1. Zrzuć wszystkie ustawienia do pliku:

    dconf dump / >~/.config/dconf/user.conf
    
  2. Otwórz ten plik w edytorze tekstu i wybierz ustawienia, które Cię interesują:

    editor ~/.config/dconf/user.conf
    

    Jeśli używasz Vima, będziesz chciał wyróżnić tę składnię .

  3. Jeśli nie znasz nazwy ustawienia, ale wiesz, jak to zmienić w interfejsie GUI unity-control-center, uruchom:

    dconf watch /
    

    a następnie zmodyfikuj je. Dokładne ustawienie pojawi się na terminalu.

  4. Aby przywrócić te ustawienia, uruchom:

    dconf load / <~/.config/dconf/user.conf
    
  5. Git śledź plik konfiguracyjny, aby go nigdy nie utracić. https://github.com/andsens/homeshickhomesick to moja obecna ulubiona metoda.

Testowane na Ubuntu 15.10. Wskazówka dostosowana z: http://catern.com/2014/12/21/plain-text-configuration-gnome.html

Ciro Santilli
źródło
1

Wydaje się (przynajmniej w 15.10), że są pewne rzeczy (szczególnie compiz), które przechowują konfigurację tylko w dconfwarstwie i nie można jej ustawić gsettings. Możliwe, że wpłynie to na inne ścieżki konfiguracji, ale prawdopodobnie mało prawdopodobne - ponieważ compiz jest na niższej warstwie niż jedność, nie dziwię się, że zachowuje się inaczej.

Na przykład to zadziała:

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

podczas gdy to nie będzie:

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

Teraz gdybym tylko mógł wymyślić, jak przeładować compiz bez awarii wszystkiego ...

pospi
źródło