在Gnome Shell中设置通知图标> = 3.16(自定义扩展)

时间:2015-10-03 14:42:38

标签: javascript gnome gnome-shell gjs

我已经分叉了一个Gnome Shell扩展,因为我想修改它以符合我的个人喜好。我想在每次事件发生时发送通知。使用Main.notify(summary, text)发送通知本身非常简单。但是,我只是无法找到如何设置自定义图标。 [编辑:以下是错误的。我查了坏代码] 根据gnome-shell的github repo,我可以通过一个可选参数定义一个图标:Main.notify(summary, text, params),其中params将在MessageTray.js l.367: < /秒>

params = Params.parse(params, { gicon: null,
                                secondaryGIcon: null,
                                bannerMarkup: false,
                                clear: false,
                                soundName: null,
                                soundFile: null });

if (params.gicon || params.clear)
    this.gicon = params.gicon;

所以我尝试使用以下命令:

Main.notify(summary, text, {gicon: myicon});

但完全忽略{gicon: myicon}部分并使用默认图标: - /。 我是Javascript和GNOME编程的新手,所以请不要讨厌我: - )

一般是推荐使用Main.notify(),还是已弃用?

干杯,Maphardam

1 个答案:

答案 0 :(得分:2)

我认为Main.notify()通常是推荐的,因为它在某些&#34;官方&#34; 扩展程序中使用。

但是,Main.notify()只需要两个参数(msg, details),因此您无法使用此功能设置自定义图标。 但是,您可以复制Main.notify()的来源并根据自己的需要进行调整。在以下函数中,通知的source设置为具有自定义图标的新创建的源。

function notify(msg, details, icon) {
    let source = new MessageTray.Source("MyApp Information", icon);
    Main.messageTray.add(source);
    let notification = new MessageTray.Notification(source, msg, details);
    notification.setTransient(true);
    source.notify(notification);
}

例如,您可以使用notify("MyApp", "Test", 'folder-symbolic');调用它。