gnome-shell 3.34 缺少 ExtensionUtils.extension 属性



我为gnome3.30-3.32编写了一个GNOME shell扩展

const ExtensionUtils = imports.misc.extensionUtils;
...
ExtensionSystem.disableExtension(ExtensionUtils.extensions['extension-uuid'].uuid);

更新到 3.34 版本,ExtensionUtils不提供'extension'属性,我不知道找到有关它的文档。

如何解决此问题?

您正在寻找的代码,即加载扩展的映射,也是ExtensionSystem模块的一部分,而ExtensionUtils模块主要是扩展作者(如 GSettings 和 Gettext 助手(的实用程序。

您正在寻找的函数是 3.34+ 中类ExtensionManager的一部分。您可以从Main导入中获取ExtensionManager实例

// >= 3.34
const Main = imports.ui.main;
const ExtensionManager = Main.extensionManager;
ExtensionManager.disableExtension(uuid);
// <= 3.32
const ExtensionSystem = imports.misc.extensionSystem;
ExtensionSystem.disableExtension(uuid);

// Handling both versions
const Config = imports.misc.config;
if (Config.PACKAGE_VERSION.split('.')[1] >= 34) {
let manager = imports.ui.main.extensionManager;
manager.disableExtension(uuid);
} else {
let extSystem = imports.misc.extensionSystem;
extSystem.disableExtension(uuid);
}

来源:

  • https://gitlab.gnome.org/GNOME/gnome-shell/blob/master/js/misc/extensionUtils.js
  • https://gitlab.gnome.org/GNOME/gnome-shell/blob/master/js/ui/extensionSystem.js

您可以使用 GitLab 页面左侧的分支选择器来选择版本,或者使用右侧的历史记录按钮查看对给定文件的更改列表。

相关内容

  • 没有找到相关文章

最新更新