首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击面板扩展图标时调用gdbus

单击面板扩展图标时调用gdbus
EN

Stack Overflow用户
提问于 2018-02-22 16:59:58
回答 1查看 360关注 0票数 0

是否可以在单击面板扩展图标时触发gdbus call

在我的具体示例中,我想调用以下命令来更改单击扩展图标时的显示亮度。

代码语言:javascript
复制
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-23 21:50:08

你可以有几个选择。您可以使用GLib.spawn_command_line_async()生成该命令

代码语言:javascript
复制
const Lang = imports.lang;
const PanelMenu = imports.ui.panelMenu;
const St = imports.gi.St;

const ExamplePanel = new Lang.Class({
    Name: "ExamplePanelButton",
    Extends: PanelMenu.Button,

    _init: function () {
        this.parent(null, "ExamplePanelButton");

        // Icon
        this.icon = new St.Icon({
            icon_name: "view-refresh-symbolic",
            style_class: "system-status-icon"
        });

        this.icon.connect("clicked", () => GLib.spawn_command_line_async(
                "gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp"
        ));

        this.actor.add_actor(this.icon);
    }
});

但是也有相当广泛的DBus API可用,就像以前的创建代理包装器示例一样。或者您可以进行原始的DBus调用:

代码语言:javascript
复制
const Gio = imports.gi.Gio;

//
let proxy = new Gio.DBusProxy({
    g_connection: Gio.DBus.session,
    g_name: "org.gnome.SettingsDaemon.Power",
    g_object_path: "/org/gnome/SettingsDaemon/Power",
    g_interface_name: "org.gnome.SettingsDaemon.Power.Screen"
});
proxy.init(null);

let returnValue = proxy.call_sync(
    "org.gnome.SettingsDaemon.Power.Screen.StepUp",
    null, // method args
    0,    // call flags
    -1,   // timeout
    null  // cancellable
);

log(returnValue.deep_unpack());
  • 免责声明:我很确定这是正确的,我通常使用代理包装。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48933174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档