gio - 顶部面板中 Gnome Shell 扩展的自定义图标不可见

标签 gio gnome-shell-extensions gjs

我尝试为我的 GNOME shell 扩展使用自定义 SVG 作为顶部面板中的状态图标。但自定义图标永远不会显示,只显示小部件的标签文本。我发现日志输出没有错误。

当我尝试设置像“system-search-symbolic”这样的内置图标时,它会起作用,会显示该图标。

这是我的代码片段(SVG 位于我的扩展的“icons”目录中:/home/myusername/.local/share/gnome-shell/extensions/my-widget@my-widgets/icons/timeclock-16x16.svg):

// ...

let widgetBoxLayout = new St.BoxLayout();

let iconPath = `${Me.path}/icons/timeclock-16x16.svg`;
// just for debug if path is correct
log(`${Me.metadata.name}: Icon path=${iconPath}`);
let gicon = Gio.icon_new_for_string(`${iconPath}`);
let icon = new St.Icon({ gicon: gicon, style_class: 'system-status-icon', icon_size: 16 });

// this works for build-in icon:
//let icon = new St.Icon({ icon_name: 'system-search-symbolic', style_class: 'system-status-icon'});

widgetBoxLayout.add(icon);
widgetBoxLayout.add(this.widgetText);

//...

也许是图标路径中有“@”字符的问题? 但为什么没有记录错误?

使用状态面板自定义图标的正确代码是什么?

(我有 GNOME Shell 3.30.2)

最佳答案

哦不!这就是这样一个“孤身奋战数周,终于问众人,自己突然知道解决办法”的案例……

图标实际上可见,但由于我使用深色主题并且图标本身也是深色,因此它不“可见”。我反转了该图标的颜色,现在我可以在顶部面板中的文本旁边看到该图标。

现在我必须根据用户的主题找出要使用哪个图标,但原来的问题已经解决了。

也许这个答案可以帮助其他开发人员犯同样的愚蠢错误。

关于gio - 顶部面板中 Gnome Shell 扩展的自定义图标不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61243243/

相关文章:

linux - chrome-gnome-shell 导致崩溃?

javascript - 为什么有时重写类函数不起作用?

gnome-shell-extensions - GJS:global.window_manager.get_workspaces()未定义

c++ - 如何将 gtk::label 与目录中文件的创建或抑制同步?

检查D-Bus对象是否存在

javascript - GNOME 中鼠标进入屏幕特定像素范围时的激活方法

linux - 使用 Gjs imports 语句导入什么?

python - 如何更改 GTK 容器小部件的大小?

python - 如何在 GTK(python 3、Gio)应用程序中监听 DBus 信号?

segmentation-fault - 为什么我的 Gdk/cairo 类会导致段错误?