Konfigurasikan ekstensi gnome-shell dari baris perintah

9

Saya suka menjalankan beberapa skrip untuk menginstal paket secara otomatis dan melakukan beberapa konfigurasi pada instalasi OS baru. Saya menggunakan gnome shell dengan beberapa ekstensi dan berpikir untuk meningkatkan skrip saya untuk mengkonfigurasinya.

Saya biasanya mengkonfigurasi ekstensi menggunakan gnome-shell-extension-prefs atau dconf-editor dan saya tahu cara mengedit skema lain dari baris perintah. Contoh:

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

Tetapi, meskipun saya dapat menemukan dan mengedit ekstensi yang diinstal di bawah org.gnome.shell.extensions menggunakan dconf-editor, saya tidak dapat mengaksesnya menggunakan gsettings karena mereka tampaknya tidak memiliki skema yang ditugaskan:

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

Satu-satunya ekstensi yang dapat diakses dengan gsettings tampaknya adalah ekstensi yang sudah diinstal sebelumnya.

Jadi, pertanyaannya adalah, bagaimana saya bisa mengkonfigurasi ekstensi yang diinstal dari baris perintah? Apakah ada cara untuk menetapkan pengaturan skema yang disusun ~/.local/share/gnome-shell/extensions/? Mungkin saya melihat ke arah yang salah.

Lingkungan: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Terima kasih sebelumnya.

albhilazo
sumber

Jawaban:

11

Ditemukan jawabannya sendiri pada akhirnya.

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/

Salin dan kompilasi skema di ~/.local/share/gnome-shell/extensionsdan gsettings akan dapat bekerja dengannya.

albhilazo
sumber
sedikit penggalian yang bagus!
Pancho
Baru saja bertemu bug yang sama. Harus ada solusi yang lebih baik daripada menyalin skema ekstensi yang dipasang secara lokal ke direktori global. Adakah pembaruan untuk masalah ini?
insinyur
4

Di CentOS 7 - dan saya akan berpikir di Ubuntu juga - saya telah mengidentifikasi apa yang saya pikir sedikit perbaikan pada jawaban yang diterima dengan memperkenalkan saklar --schemadir sebagai berikut:

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

Dalam gsettings perintah di atas langsung menetapkan ${key}untuk ${value}di ${schema}mana ${schema}tidak berada di default /usr/share/glib-2.0/schemasdirektori. (dan tidak ada persyaratan untuk memindahkan skema ke direktori default)

Beberapa contoh:

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
sumber
1
onfirmed bekerja di Ubuntu 18.04, GS 3.28. Sebagai contoh:gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek