Пользовательский значок для расширения оболочки Gnome в верхней панели не отображается - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь использовать пользовательский 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)

1 Ответ

0 голосов
/ 20 апреля 2020

О нет! Это один из этих «сражений в течение одних недель, наконец спросите толпу, внезапно узнайте решение самостоятельно», случаи ...

Значок был на самом деле видим, но так как я использую темная тема и сама иконка тоже темная ее не было "видно". Я перевернул цвета этой иконки, и теперь я вижу значок рядом с моим текстом на верхней панели.

Теперь мне нужно выяснить, какой значок использовать в зависимости от темы пользователя, но исходная проблема решена.

Возможно, этот ответ поможет другому разработчику совершить ту же глупую ошибку.

...