だから私は拡張機能を書いていますが、それにはいくつかの設定があります。設定は、convenient.js を使用して GSettings に保存します (こちらで説明)。関連するコードは次のようになります。
const SETTINGS_APP_SORT_MODE = 'sort-mode';
this._settings = Convenience.getSettings("org.gnome.shell.extensions.workspace-alt-tab"); //get schema
this._settings.set_string(SETTINGS_APP_SORT_MODE,modeCapture); //set value
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE); //get value
これまでのところうまく機能しており、コマンドも使用できます
gsettings モニター org.gnome.shell.extensions.workspace-alt-tab ソートモード
本当に必要な値を設定していることを確認するため。
しかし、ここで問題が発生します。これらの設定に加えられた変更をキャプチャして、コードに反映しようとするときです。他の拡張機能で見たものから、次のようになるはずだと思います。
_init: function(params) {
this._settingsChanged=
this._settings.connect('changed',
Lang.bind(this,this._settingsChanged)); //get notified on every schema change
this._sortModeChangedId =
this._settings.connect('changed::' + SETTINGS_APP_SORT_MODE,
Lang.bind(this,this._sortModeChanged)); //get notified for sort-mode changes
this._sortModeChanged(); //force initialization
},
_settingsChanged: function() {
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE);
log("[_settingsChanged] new sortMode: "+this._sortMode);
},
_sortModeChanged: function() {
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE);
log("[_sortModeChanged] new sortMode: "+this._sortMode);
}
しかし、問題は、init から呼び出されたログ行しか表示されないことです。
Gjs-Message: JS LOG: [_sortModeChanged] new sortMode: most-recently-used
また、この種のものをデバッグする方法についてはまったくわかりません(LookingGlassでも...)。誰かが私のばかげた間違いを指摘したり、この種のものをデバッグする方法についていくつかの指針を与えたりすることができれば、それは大歓迎です!