如何解决如何使用 DBus 打开扩展首选项?
$ gnome-shell --version
GNOME Shell 40.2
我正在尝试在 gjs-console 中打开扩展首选项。
我找到了一种使用 dbus-send 打开首选项的方法
dbus-send --session --print-reply --reply-timeout=2000 --type=method_call --dest=org.gnome.Shell.Extensions /org/gnome/Shell/Extensions org.gnome.Shell.Extensions.LaunchExtensionPrefs string:'text-translator'
但我坚持使用 gjs
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
dbus = Gio.DBusProxy.new_for_bus_sync(Gio.BusType.SESSION,Gio.DBusProxyFlags.NONE,null,"org.gnome.Shell","/org/gnome/Shell/Extensions","org.gnome.Shell.Extensions",null);
dbus.call_sync("LaunchExtensionPrefs",new GLib.Variant("(s)",[ "text-translator" ]),-1,null);
但是得到这个错误:
typein:4:6 uncaught exception: Object
@typein:4:6
@<stdin>:1:42
我不知道如何调试。
我的问题是从我的扩展程序内部打开我的扩展程序首选项。如果有任何其他方法可以做到这一点,我愿意接受任何帮助。
解决方法
好吧,现在我看到错误出现在 object_path
的 new_for_bus_sync
参数中。我使用了 /org/gnome/Shell/Extensions
而预期为 /org/gnome/Shell
这个脚本工作正常
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
dbus = Gio.DBusProxy.new_for_bus_sync(Gio.BusType.SESSION,Gio.DBusProxyFlags.NONE,null,"org.gnome.Shell","/org/gnome/Shell","org.gnome.Shell.Extensions",null);
dbus.call_sync("LaunchExtensionPrefs",new GLib.Variant("(s)",[ "text-translator" ]),-1,null);
,
我的问题是从我的扩展程序内部打开我的扩展程序首选项。
可以直接打开:
Main.extensionManager.openExtensionPrefs('your-extension-uuid','',{});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。