[GH-ISSUE #714] [Tray] Error fetching properties from org.kde.StatusNotifierItem: ServiceUnknown #3046

Closed
opened 2026-05-22 23:53:44 +01:00 by JakeStanger · 2 comments
Owner

Originally created by @bvngee on GitHub (Aug 21, 2024).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/714

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:

  • Distro: NixOS 24.05
  • Compositor: Hyprland
  • Ironbar version: tested on 0.15.0 and 0.16.0

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 = "<span color='#ffffff'>VOL</span> {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
/* @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 {
}
Originally created by @bvngee on GitHub (Aug 21, 2024). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/714 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:** - Distro: NixOS 24.05 - Compositor: Hyprland - Ironbar version: tested on 0.15.0 and 0.16.0 **Configuration** <details><summary>Config</summary> ``` // 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 = "<span color='#ffffff'>VOL</span> {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 ] } ``` </details> <details><summary>Styles</summary> ```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 { } ``` </details>
Author
Owner

@kode54 commented on GitHub (Oct 9, 2024):

Not sure if it's related, but I'm not seeing icons in Ironbar's tray for Steam, Vesktop, Bitwarden, or Signal Desktop. Thus the tray starts completely empty with all four of those already running.

<!-- gh-comment-id:2401169433 --> @kode54 commented on GitHub (Oct 9, 2024): Not sure if it's related, but I'm not seeing icons in Ironbar's tray for Steam, Vesktop, Bitwarden, or Signal Desktop. Thus the tray starts completely empty with all four of those already running.
Author
Owner

@JakeStanger commented on GitHub (Oct 9, 2024):

Yep aware of that one, that's covered by #632 :)

There's a few fundamental holes in the tray implementation I need to close up causing most of the issues.

<!-- gh-comment-id:2401676027 --> @JakeStanger commented on GitHub (Oct 9, 2024): Yep aware of that one, that's covered by #632 :) There's a few fundamental holes in the tray implementation I need to close up causing most of the issues.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JakeStanger/ironbar#3046
No description provided.