いくつかのスクリプトを実行してパッケージを自動的にインストールし、OSの新規インストール時にいくつかの構成を行うのが好きです。私はいくつかの拡張機能を備えたgnome Shellを使用しており、スクリプトを改善してそれらを構成することを考えていました。
私は通常、gnome-Shell-extension-prefsまたはdconf-editorを使用して拡張機能を設定し、コマンドラインから他のスキーマを編集する方法を知っています。例:
gsettings set org.gnome.desktop.background picture-options stretched
しかし、インストールされた拡張機能をdconf-editorを使用してorg.gnome.Shell.extensionsの下で検索および編集できますが、スキーマが割り当てられていないように見えるため、gsettingsを使用してそれらにアクセスできません。
No such schema 'org.gnome.Shell.extensions.extname'
Gsettingsでアクセスできる唯一の拡張機能は、プリインストールされた拡張機能のようです。
だから、質問は、コマンドラインからインストールされた拡張機能をどのように設定できますか? ~/.local/share/gnome-Shell/extensions/
のコンパイル済みスキーマをgsettingsに割り当てる方法はありますか?たぶん、私は間違った方向を見ています。
環境:Ubuntu Gnome 14.04(Gnome Shell 3.10.4)
前もって感謝します。
最後に自分で答えを見つけました。
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/
~/.local/share/gnome-Shell/extensions
のスキーマをコピーしてコンパイルすると、gsettingsでそれらを使用できます。
CentOS 7では-そしてUbuntuでもそう思います-私は次のように--schemadirスイッチを導入することで、受け入れられた答えをわずかに改善すると思うことを特定しました:
# gsettings --schemadir ${schemaDir} set ${schema} ${key} "${value}"
上記のコマンドでは、gsettingsは${key}
を${value}
の${schema}
に直接設定します。ここで、${schema}
はデフォルトの/usr/share/glib-2.0/schemas
ディレクトリにありません。 (そしてスキーマをデフォルトのディレクトリに移動する必要はありません)
いくつかの例:
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
私はこのスクリプトを書きました: gnome-Shell-extensionsなどを有効/無効にするためのBashスクリプト 。
/usr/bin
または/usr/local/bin
でcpして、実行可能にします。
Sudo chmod +x /usr/bin/gnome-Shell-extension-cl
ヘルプを確認してください。
拡張機能を有効にする:
gnome-Shell-extension-cl -e extension-name
拡張機能を無効にします。
gnome-Shell-extension-cl -d extension-name