JakeStanger / ironbar

Customisable Wayland gtk bar written in Rust.
https://crates.io/crates/ironbar
MIT License
608 stars 52 forks source link

Tray icons only show text #358

Closed chmanie closed 11 months ago

chmanie commented 12 months ago

Describe the bug With a minimal config, I'm not getting any icons for the tray. This works in waybar.

To Reproduce Steps to reproduce the behavior: Open ironbar with the minimal config down below (probably not easily reproducible?) Please let me know what I can do to provide any more info about this.

I can provide the log though:

Log ``` 2023-11-13T23:48:13.942934Z INFO ironbar: 92: Ironbar version 0.13.0 2023-11-13T23:48:13.942954Z INFO ironbar: 93: Starting application (ironbar:361259): Gtk-WARNING **: 00:48:13.964: Theme parsing error: gtk.css:6691:68: Invalid name of pseudo-class 2023-11-13T23:48:13.985151Z INFO ironbar::ipc::server: 43: Starting IPC on /run/user/1000/ironbar-ipc.sock 2023-11-13T23:48:13.985243Z INFO ironbar: 231: Creating bar on 'eDP-1' 2023-11-13T23:48:13.985694Z INFO ironbar::bar: 33: Creating bar bar-9 2023-11-13T23:48:13.987418Z INFO system_tray::notifier_watcher: 34: Starting notifier watcher 2023-11-13T23:48:13.988694Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 61: StatusNotifierHost registered: 'org.freedesktop.StatusNotifierHost-361259-ironbar-11' 2023-11-13T23:48:13.989725Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 86: StatusNotifierItem registered: ':1.6/org/ayatana/NotificationItem/nm_applet' 2023-11-13T23:48:13.989822Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 86: StatusNotifierItem registered: ':1.12/org/ayatana/NotificationItem/udiskie' 2023-11-13T23:48:13.990108Z INFO system_tray::notifier_watcher: 170: Got 2 notifier items 2023-11-13T23:48:13.990441Z INFO ironbar: 231: Creating bar on 'DP-2' 2023-11-13T23:48:13.990574Z INFO ironbar::bar: 33: Creating bar bar-12 2023-11-13T23:48:13.991888Z INFO system_tray::notifier_watcher: 284: StatusNotifierItem updated, dbus-address=:1.6 2023-11-13T23:48:13.992310Z INFO system_tray::notifier_watcher: 284: StatusNotifierItem updated, dbus-address=:1.12 ```

Expected behavior There should be tray icons

System information:

Configuration

Config ``` position = "top" [[start]] type = "tray" ```
Styles ```css ```

Screenshots

image

yavko commented 12 months ago

Describe the bug With a minimal config, I'm not getting any icons for the tray. This works in waybar.

To Reproduce Steps to reproduce the behavior: Open ironbar with the minimal config down below (probably not easily reproducible?) Please let me know what I can do to provide any more info about this.

I can provide the log though:

Log ``` 2023-11-13T23:48:13.942934Z INFO ironbar: 92: Ironbar version 0.13.0 2023-11-13T23:48:13.942954Z INFO ironbar: 93: Starting application (ironbar:361259): Gtk-WARNING **: 00:48:13.964: Theme parsing error: gtk.css:6691:68: Invalid name of pseudo-class 2023-11-13T23:48:13.985151Z INFO ironbar::ipc::server: 43: Starting IPC on /run/user/1000/ironbar-ipc.sock 2023-11-13T23:48:13.985243Z INFO ironbar: 231: Creating bar on 'eDP-1' 2023-11-13T23:48:13.985694Z INFO ironbar::bar: 33: Creating bar bar-9 2023-11-13T23:48:13.987418Z INFO system_tray::notifier_watcher: 34: Starting notifier watcher 2023-11-13T23:48:13.988694Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.945"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 61: StatusNotifierHost registered: 'org.freedesktop.StatusNotifierHost-361259-ironbar-11' 2023-11-13T23:48:13.989725Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.6"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 86: StatusNotifierItem registered: ':1.6/org/ayatana/NotificationItem/nm_applet' 2023-11-13T23:48:13.989822Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.12"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 86: StatusNotifierItem registered: ':1.12/org/ayatana/NotificationItem/udiskie' 2023-11-13T23:48:13.990108Z INFO system_tray::notifier_watcher: 170: Got 2 notifier items 2023-11-13T23:48:13.990441Z INFO ironbar: 231: Creating bar on 'DP-2' 2023-11-13T23:48:13.990574Z INFO ironbar::bar: 33: Creating bar bar-12 2023-11-13T23:48:13.991888Z INFO system_tray::notifier_watcher: 284: StatusNotifierItem updated, dbus-address=:1.6 2023-11-13T23:48:13.992310Z INFO system_tray::notifier_watcher: 284: StatusNotifierItem updated, dbus-address=:1.12 ```

Expected behavior There should be tray icons

System information:

  • Distro: NixOS
    • Compositor: Hyprland
  • Ironbar version: 0.13.0

Configuration

Config ``` position = "top" [[start]] type = "tray" ```
Styles ```css ```

Screenshots

image

Looks like a NixOS problem, have you set you icon theme properly?

chmanie commented 12 months ago

I have set an icon theme and it is being picked up by other tools (like waybar). Where would ironbar look for it, maybe the path is a different one?

chmanie commented 12 months ago

Ok, I think it's a problem on my end. Closing this. I might report what and where icons need to go :)

chmanie commented 12 months ago

Actually, I have to reopen this. It might have something to do with librsvg but I'm not sure exactly. I fixed this on my end and I have icons in all bars now. Except for ironbar.

Here's what I found: I compiled the gtk-tray example and that works beautifully:

image

As ironbar depends on it, there's something weird going on, but I can't yet tell where exactly.

I also tried to build ironbar from scratch again (current master) but the result is the same as above

ICE-GB commented 11 months ago

Me too, using NixOS, any progress?

chmanie commented 11 months ago

Me too, using NixOS, any progress?

You can see the progress by looking at the linked PR. Sadly I have been quite busy these days, maybe I can give it another go this weekend.

daktras420 commented 11 months ago

Thank you that would be awsome. I noticed rust has a libnotify crate that you could look at implementing hopefully the info and stuff i am doing helps you and others. I may not be t be a programmer but i can trouble shoot and therize therize possible solutions. Thanks for all your doing.

On Fri, Dec 1, 2023, 9:10 AM Christian Maniewski @.***> wrote:

Me too, using NixOS, any progress?

You can see the progress by looking at the linked PR. Sadly I have been quite busy these days, maybe I can give it another go this weekend.

— Reply to this email directly, view it on GitHub https://github.com/JakeStanger/ironbar/issues/358#issuecomment-1836479126, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOSDAZPOVREOJBIQQT2QJGLYHIFQTAVCNFSM6AAAAAA7J56OB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZWGQ3TSMJSGY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

calops commented 9 months ago

I'm afraid this bug is still happening on the current master. Specifically for udiskie and nm-applet.

Also on NixOS with Hyprland.

yavko commented 9 months ago

I'm afraid this bug is still happening on the current master. Specifically for udiskie and nm-applet.

Also on NixOS with Hyprland.

Have you defined an icon theme in home-manager?

calops commented 9 months ago

Have you defined an icon theme in home-manager?

I have:

    gtk = {
      enable = true;
      iconTheme = {
        name = "Papirus";
        package = pkgs.papirus-icon-theme;
      };
    };

Is there another/better way to define it? It's working in other gtk programs.

yavko commented 9 months ago

Have you defined an icon theme in home-manager?

I have:

    gtk = {
      enable = true;
      iconTheme = {
        name = "Papirus";
        package = pkgs.papirus-icon-theme;
      };
    };

Is there another/better way to define it? It's working in other gtk programs.

I thought I fixed this bug by wrapping with gtk wrapper, but ig that didn't fix it. Maybe try looking at the ironbar flake?

chmanie commented 9 months ago

So what I can say is that when starting ironbar in a nix-shell (or nix develop) it somehow doesn't have access to the system icon theme. Don't ask me why but I'm seeing the same. When installing it globally using the flake it does work for me though.

yavko commented 9 months ago

So what I can say is that when starting ironbar in a nix-shell (or nix develop) it somehow doesn't have access to the system icon theme. Don't ask me why but I'm seeing the same. When installing it globally using the flake it does work for me though.

The gtk wrapper should still be working in those scenarios, right?

calops commented 8 months ago

I can't seem to find a single way to run ironbar with these icons working.

I've tried:

Is there anything else I can try?