JakeStanger / ironbar

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

[Tray] Error fetching properties from org.kde.StatusNotifierItem: ServiceUnknown #714

Open Bvngee opened 1 month ago

Bvngee commented 1 month ago

I apologize if this is a duplicate issue! Feel free to close if so.

Description The talonvoice application causes the below systray error and does not display an icon, whereas Waybar handles it just fine. It may also be worth noting that talon is an xwayland app.

2024-08-21T01:29:16.386893Z ERROR system_tray::client: 240: Error fetching properties from :1.123org.kde.StatusNotifierItem-600261-1/StatusNotifierItem: ServiceUnknown("The name :1.123org.kde.StatusNotifierItem-600261-1 was not provided by any .service files")

To Reproduce

  1. Start ironbar
  2. nix run github:nix-community/talon-nix or use the linux download from https://talonvoice.com/, both produce the same error (I tested)
  3. See error

Expected behavior

Talon systemtray icon appears and behaves normally.

System information:

Configuration

Config ``` // vi: ft=corn // vi: commentstring=//\ %s let { $separator = { type = "label" label = "|" class = "separator" } $workspaces = { type = "workspaces" name_map = { 11 = "1" 12 = "2" 13 = "3" 14 = "4" 15 = "5" 16 = "6" 17 = "7" 18 = "8" 19 = "9" } } // TODO: maybe only show if focused window is on bar's monitor? // using something like `hyprctl activeworkspace -j | jq '.monitorID'` $focused = { type = "focused" show_icon = true show_title = true icon_size = 20 truncate.mode = "end" truncate.max_length = 40 // ".focused" clashes with focused workspace class = "focused-widget" } // polling is bad, ill just suffer with title instead of class // $focusedclass = { // type = "label" // label = "{{hyprctl activewindow -j | jq '.class' | sed 's|\"||g'}}" // } $mpris = { type = "music" format = "{title}" // icon_size = 20 player_type = "mpris" show_status_icon = false truncate.mode = "end" truncate.max_length = 60 } $tray = { type = "tray" } $mic = { type = "label" label = "MIC {{wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | awk '{print $2 * 100}'}}" class = "mic-label" } $volume = { type = "volume" //format = "VOL {percentage}" format = "VOL {percentage}" } $upower = { type = "upower" format = "BAT {percentage}" } $sys_info = { type = "sys_info" interval.memory = 5 interval.cpu = 5 format = [ "CPU {cpu_percent}" "MEM {memory_percent}" ] } $clock = { type = "clock" format = "%-m/%-d/%Y %-I:%M%P" format_popup = "%A %B %e, %-I:%M%P" } } in { height = 20 popup_gap = 5 position = "top" start = [ $workspaces $separator $focused ] center = [ $mpris ] end = [ $tray $separator $mic $volume $separator $sys_info $separator // $upower $clock ] } ```
Styles ```css /* @define-color fg @base06; */ /* @define-color bg @base01; */ /* @define-color bg-light @base02; */ /* @define-color bg-dark @base00; */ @define-color fg alpha(@accent_fg_color, 0.9); @define-color bg alpha(@headerbar_bg_color, 0.8); @define-color border mix(@fg, @bg, 0.8); @define-color shade #1a1a1a; @define-color shadow alpha(@shade, 0.5); /* @define-color bg-translucent alpha(@bg, 0.9); */ * { font-weight: unset; /* font-family: Inter Medium, sans-serif; */ font-family: Hack Nerd Font, sans-serif; font-size: 12px; border: none; } .background { background-color: transparent; } #bar { background-color: @bg; margin-bottom: 5px; /* gives the bar room for a shadow */ box-shadow: 0 0 3px 1px @shadow; } .widget-container button { background-color: inherit; } box, menubar { /* not sure if necessary */ background-image: none; } #bar button { padding: 0; } button, label { color: @fg; text-shadow: 2px 2px 3px @shadow; } button:hover { /* background-color: @bg-dark; */ } .popup { /* border: 1px solid @bg-light; */ background-color: @bg; padding: 1em; margin: 10px; box-shadow: 0 0 3px 1px @shadow; } .popup button { background-color: alpha(@shade, 0.2); } .popup button:hover { background-color: alpha(@shade, 0.4); } /* -- separator, widget spacing -- */ #bar .separator { color: alpha(@fg, 0.6); font-size: 10px; } #bar #end .widget { margin-right: 1em; } .workspaces { margin-right: 0.5em; } .focused-widget { margin-left: 1em; } /* -- clock -- */ .popup-clock .calendar-clock { color: @fg; font-size: 1.4em; padding-bottom: 0.1em; } .popup-clock .calendar { background-color: @bg; /* TODO: improve. This makes everything the same color */ color: @fg; } .popup-clock .calendar .header { padding-top: 1em; border-top: 1px solid @border; font-size: 1.5em; } .popup-clock .calendar:selected { background-color: @accent_color; } /* -- music -- */ .popup-music .album-art { /*TODO: not working*/ /* border-radius: 100px; */ } .popup-music .icon-box { margin-right: 0.4em; } .popup-music .title .icon, .popup-music .title .label { font-size: 1.7em; } .popup-music .controls button { margin-right: 0.5em; } .popup-music .controls *:disabled { color: @base03; } .popup-music .volume .slider slider { border-radius: 100%; } .popup-music .volume .icon { margin-left: 4px; } .popup-music .progress .slider slider { border-radius: 100%; } /* -- sys_info -- */ .sysinfo { } .sysinfo .item { } /* -- tray -- */ .tray { } /* -- volume -- */ .popup-volume .device-box { border-right: 1px solid @border; } /* -- workspaces -- */ .workspaces .item { border-radius: 0; } .workspaces * { padding: 0 0.85em; } .workspaces .item.focused { } .workspaces .item.visible { background-color: rgba(0,0,0,0.40); box-shadow: inset 0 -2px @accent_color; } .workspaces .item:hover { } ```