Skonfiguruj rozszerzenia powłoki gnome z wiersza poleceń

9

Lubię uruchamiać kilka skryptów, aby automatycznie instalować pakiety i przeprowadzać konfiguracje w nowych instalacjach systemu operacyjnego. Używam powłoki gnome z kilkoma rozszerzeniami i zastanawiałem się nad ulepszeniem skryptów, aby je skonfigurować.

Zwykle konfiguruję rozszerzenia za pomocą gnome-shell-extension-prefs lub edytora dconf i wiem, jak edytować inne schematy z wiersza poleceń. Przykład:

gsettings set org.gnome.desktop.background picture-options stretched

Ale chociaż mogę znaleźć i edytować zainstalowane rozszerzenia w org.gnome.shell.extensions przy użyciu edytora dconf, nie mogę uzyskać do nich dostępu za pomocą gsettings, ponieważ wydaje się, że nie mają przypisanego schematu:

No such schema 'org.gnome.shell.extensions.extname'

Wydaje się, że jedynymi rozszerzeniami dostępnymi w ustawieniach są te, które zostały wstępnie zainstalowane.

Pytanie brzmi: jak mogę skonfigurować zainstalowane rozszerzenia z wiersza poleceń? Czy jest jakiś sposób przypisania zestawom skompilowanych schematów ~/.local/share/gnome-shell/extensions/? Może patrzę w złym kierunku.

Środowisko: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Z góry dziękuję.

albhilazo
źródło

Odpowiedzi:

11

Ostatecznie znalazłem odpowiedź.

sudo cp ~/.local/share/gnome-shell/extensions/extname/schemas/org.gnome.shell.extensions.extname.gschema.xml \
    /usr/share/glib-2.0/schemas/ &&
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

Skopiuj i skompiluj schematy, ~/.local/share/gnome-shell/extensionsa zestawy ustawień będą mogły z nimi pracować.

albhilazo
źródło
niezły kopanie!
Pancho
Właśnie natrafiłem na ten sam błąd. Musi istnieć lepsze rozwiązanie niż kopiowanie schematów rozszerzeń instalowanych lokalnie do katalogu globalnego. Wszelkie aktualizacje tego problemu?
inżynier
4

W CentOS 7 - i myślałbym również w Ubuntu - zidentyfikowałem, jak sądzę, niewielką poprawę przyjętej odpowiedzi, wprowadzając przełącznik --schemadir w następujący sposób:

# gsettings --schemadir ${schemaDir} set ${schema} ${key} "${value}"

W powyższym poleceniu gsettings ustawia bezpośrednio ${key}w ${value}miejscu, ${schema}gdzie ${schema}nie znajduje się w domyślnym /usr/share/glib-2.0/schemaskatalogu. (i nie ma wymogu przeniesienia schematu do katalogu domyślnego)

Kilka przykładów:

gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/  list-recursively org.gnome.shell.extensions.app-keys
gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/  list-recursively org.gnome.shell.extensions.emoji-selector
Pancho
źródło
1
onfirmed działa na Ubuntu 18.04, GS 3.28. Jako przykład:gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek,
1

Napisałem ten skrypt: skrypt Bash, aby włączyć / wyłączyć rozszerzenia powłoki gnome i więcej .

Po prostu cp w /usr/binlub /usr/local/bini wykonaj go:

sudo chmod +x /usr/bin/gnome-shell-extension-cl

Sprawdź pomoc.

Włącz rozszerzenie:

gnome-shell-extension-cl -e extension-name

Wyłącz rozszerzenie:

gnome-shell-extension-cl -d extension-name
cyberalex4life
źródło
Byłoby dobrze, gdyby skrypt miał opcję przełączania. Oznacza to, że włączanie jest wyłączone i wyłączane, jeśli jest włączone.
Do zrobienia