Я пытаюсь использовать пользовательский SVG для моего расширения оболочки GNOME в качестве значка состояния на верхней панели. Но пользовательский значок никогда не отображается, только текст метки виджета. И я не вижу ошибок в выводе журнала.
Когда я пытаюсь установить встроенный значок, такой как " system-search-symboli c", он работает, этот значок отображается.
Это мой фрагмент кода (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)