我已经分叉了一个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});
但完全忽略
我是Javascript和GNOME编程的新手,所以请不要讨厌我: - ){gicon: myicon}
部分并使用默认图标: - /。
一般是推荐使用Main.notify()
,还是已弃用?
干杯,Maphardam
答案 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');
调用它。