@@ 47,6 47,14 @@ class ProxyIcon : Object {
void set_icon() {
var name = item.icon_name;
if (name != null && name != "") {
+ /* Some apps wrongly set a filename for name, relying on this
+ * undefined behavior. Since StatusIcon.set_from_file gives no
+ * feedback, this check and race is about the best we can do. */
+ if (name.contains("/") && FileUtils.test(name, FileTest.EXISTS)) {
+ icon.set_from_file(name);
+ return;
+ }
+
var theme = Gtk.IconTheme.get_for_screen(icon.screen);
var path = item.icon_theme_path;
if (path != null) {