![有没有办法找出 Gnome 3 底部栏上图标的名称?](https://linux22.com/image/1077858/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E6%89%BE%E5%87%BA%20Gnome%203%20%E5%BA%95%E9%83%A8%E6%A0%8F%E4%B8%8A%E5%9B%BE%E6%A0%87%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F%20%20.png)
有没有办法找出 Gnome 3 底部栏上图标的名称?
例如,Audacious 的图标名称是audacious
,Dropbox 的图标名称是dropbox
... 我需要它们的名称,以便将它们写在 Gnome 3 的 Status Icon Fixer 扩展上。
我努力了:
StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['LibreOffice 3.5 快速启动器'] = 'LibreOffice 3.5 快速启动器';
但它没有起作用。
我需要 Google Chrome 背景托盘图标和 LibreOffice 3.5 Quickstarter 的名称。
谢谢你!
答案1
从系统监视器中获取了 LibreOffice 3.5 Quickstarter 的名称,Google 的 Chrome 是 google-chrome。
添加:
StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['soffice'] = 'soffice';
StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['google-chrome'] = 'google-chrome';
到:
.../gnome-shell/extensions/[email protected]/extension.js
仍然没有找到从图标中获取名称的方法。
答案2
这完全取自https://github.com/brianhsu/EvilStatusIconForever
因此,功劳归于brianhsu。
这可能会破坏您的 GNOME,请小心并先备份!!!!您需要 root 权限才能执行此操作。编辑 /usr/share/gnome-shell/js/ui/statusIconDispatcher.js
移至第 48 行,您应该看到一个名为 _onTrayIconAdded 的函数,其内容如下所示:
_onTrayIconAdded: function(o, icon) { let wmClass = (icon.wm_class || 'unknown').toLowerCase(); let role = STANDARD_TRAY_ICON_IMPLEMENTATIONS[wmClass]; if (role) this.emit('status-icon-added', icon, role); else this.emit('message-icon-added', icon); },
在 let role = ... 行后面添加 global.log("wmClass[] = " + wmClass);,现在该函数应如下所示:
_onTrayIconAdded: function(o, icon) { let wmClass = (icon.wm_class || 'unknown').toLowerCase(); let role = STANDARD_TRAY_ICON_IMPLEMENTATIONS[wmClass]; global.log("wmClass[] = " + wmClass); if (role) this.emit('status-icon-added', icon, role); else this.emit('message-icon-added', icon); },
按 Alt + F2 和 r 并按回车键重新启动 GNOME 3。
按 Alt + F2 和 lg 并按回车键启动 GNOME 控制台。
切换到“错误”选项卡,现在您应该看到如下消息:
wmClass[] = 洋泾浜语
... 这是状态图标修复器中使用的图标名称。