在 Gnome 中设置通知图标 Shell >= 3.16(自定义扩展)
Set Notification Icon in Gnome Shell >= 3.16 (Custom Extension)
我 fork 了一个 Gnome Shell 扩展,因为我想修改它以适应我的个人喜好。我想在每次事件发生时发送通知。使用 Main.notify(summary, text)
发送通知本身相当容易。但是,我就是找不到如何设置自定义图标。 [编辑:以下是错误的。我查找了错误的代码]根据 gnome-github 的 repo-shell 我可以通过可选参数定义一个图标: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
我认为 Main.notify()
通常被推荐,因为它被用在一些 "official" 扩展中。
但是,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');
来调用它。
我 fork 了一个 Gnome Shell 扩展,因为我想修改它以适应我的个人喜好。我想在每次事件发生时发送通知。使用 Main.notify(summary, text)
发送通知本身相当容易。但是,我就是找不到如何设置自定义图标。 [编辑:以下是错误的。我查找了错误的代码]根据 gnome-github 的 repo-shell 我可以通过可选参数定义一个图标: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
我认为 Main.notify()
通常被推荐,因为它被用在一些 "official" 扩展中。
但是,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');
来调用它。