[GH-ISSUE #808] Hyprland client crashes when encountering invalid characters #3061

Open
opened 2026-05-22 23:53:47 +01:00 by JakeStanger · 9 comments
Owner

Originally created by @salahoued on GitHub (Dec 9, 2024).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/808

Describe the bug

The workspace module (Hyprland) stops working after some time from starting up and no longer shows the active workspace if any other new workspace,

Terminal logs
2024-12-09T10:45:57.356481Z  INFO ironbar: 134: Ironbar version 0.16.1
2024-12-09T10:45:57.356509Z  INFO ironbar: 135: Starting application
2024-12-09T10:45:57.451230Z  WARN ironbar::ipc::server: 33: Socket already exists. Did Ironbar exit abruptly?
2024-12-09T10:45:57.451285Z  WARN ironbar::ipc::server: 34: Attempting IPC shutdown to allow binding to address
2024-12-09T10:45:57.451377Z  INFO ironbar::ipc::server: 39: Starting IPC on /run/user/1000/ironbar-ipc.sock
2024-12-09T10:45:57.454600Z  INFO ironbar::bar: 117: Initializing bar 'ironbar-top' on 'eDP-1'
2024-12-09T10:45:57.458502Z  INFO ironbar::clients::compositor::hyprland: 32: Starting Hyprland event listener
2024-12-09T10:45:57.517720Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.878"))), 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.878"))), 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.878"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 45: new host: :1.878
2024-12-09T10:45:57.518045Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.529"))), 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.529"))), 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.529"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.529/org/ayatana/NotificationItem/nm_applet
2024-12-09T10:45:57.518387Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.531"))), 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.531"))), 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.531"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.531/org/ayatana/NotificationItem/gammastep
2024-12-09T10:45:57.606938Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée
2024-12-09T10:45:57.607044Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée
2024-12-09T13:46:04.860610Z ERROR ironbar::logging: 49: The application panicked (crashed).
Message:  Failed to start listener: FromUtf8Error(FromUtf8Error { bytes: [119, 105, 110, 100, 111, 119, 116, 105, 116, 108, 101, 62, 62, 53, 53, 55, 57, 50, 49, 50, 55, 98, 51, 100, 48, 10, 119, 105, 110, 100, 111, 119, 116, 105, 116, 108, 101, 118, 50, 62, 62, 53, 53, 55, 57, 50, 49, 50, 55, 98, 51, 100, 48, 44, 76, 101, 99, 116, 101, 117, 114, 32, 109, 117, 108, 116, 105, 109, 233, 100, 105, 97, 32, 86, 76, 67, 10], error: Utf8Error { valid_up_to: 68, error_len: Some(1) } })
Location: src/clients/compositor/hyprland.rs:178

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
2024-12-09T13:46:04.899686Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.885"))), 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.885"))), 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.885"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.885/StatusNotifierItem
2024-12-09T13:46:04.987165Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée
2024-12-09T13:46:05.428201Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID
2024-12-09T13:46:16.841218Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID
2024-12-09T13:46:16.842491Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:16.843257Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:16.843740Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:16.872264Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID
2024-12-09T13:46:17.774821Z ERROR system_tray::client: 483: Timeout getting layout
2024-12-09T13:46:35.379536Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.891"))), 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.891"))), 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.891"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.891/StatusNotifierItem
2024-12-09T13:46:35.459926Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée
2024-12-09T13:46:40.113771Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID
2024-12-09T13:46:40.114988Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:40.116238Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:40.117000Z  WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu'
2024-12-09T13:46:40.159445Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID
2024-12-09T13:46:41.075549Z ERROR system_tray::client: 483: Timeout getting layout
2024-12-09T13:46:41.091074Z ERROR system_tray::client: 395: error fetching property 'ToolTip': ServiceUnknown("The name is not activatable")
2024-12-09T13:58:01.961031Z  INFO ironbar::style: 76: Reloading CSS
2024-12-09T13:58:01.962565Z  INFO ironbar::style: 76: Reloading CSS
2024-12-09T14:34:11.871386Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.910"))), 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.910"))), 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.910"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.910/StatusNotifierItem
2024-12-09T14:34:11.939795Z  WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get menu proxy: L’opération a été annulée

To Reproduce

  1. start ironbar
  2. wait for some time
  3. observe that workspaces are no longer updated

Expected behavior

Workspaces do not crash

System information:

  • Distro: openSUSE Tumblweed
  • Compositor: Hyprland
  • Ironbar version: 0.16.1

Configuration

Config
let {
  $position = "top"
  $height = 20
  $margin = {
    top = 0
    left = 0
    right = 0
  }
  
  $clock = {
    type = "clock"
    name = "time-widget"
    format = "<span font-weight='bold'>%H:%M</span>, %a %d-%m-%y"
  }

  $launcher = {
    type = "launcher"
    show_names = false
    show_icons = true
    icon_size = 16
    reversed = false
  }

  $focused = {
    name = "focused-window"
    type = "focused"
    show_icon = true
    show_title = true
    icon_size = 16
    truncate = "middle"
  }

  $sys_info = {
    type = "sys_info"

    interval.memory = 10
    interval.cpu = 1
    interval.temps = 5
    interval.networks = 3


    format = [
      "C: {cpu_percent}%"
      "R: {memory_percent}%"
      "T: {temp_c:coretemp-Package-id-0}°C"
    ]
  }

  $upower = {
    type = "upower"
    icon_size = 16
  }

  $clipboard = {
      type = "clipboard"
      icon = "icon:edit-paste"
      icon_size = 16
      max_items = 10
      truncate.mode = "end"
      truncate.length = 50
    }

  $tray = {
    type = "tray"
    icon_size = 16
  }

  $notifs = {
    type = "notifications"
    show_count = true

    icons.closed_none = "󰍥"
    icons.closed_some = "󱥂"
    icons.closed_dnd = "󱅯"
    icons.open_none = "󰍡"
    icons.open_some = "󱥁"
    icons.open_dnd = "󱅮"

  }

  $logimage = {
    type = "image"
    src = "system-shutdown"
    name = "logimage"
    size = 20
  }

  $logbutton = {
    type = "button"
    name = "logbutton"
    widgets = [$logimage]
    on_click = "!wleave"
  }

  $logout = {
    type = "custom"
    bar = [$logbutton]
  }

  $center = []
  $end = [$sys_info $notifs $clipboard $upower $tray $clock $logout ]
} in {
  monitors.eDP-1 = {
    position = $position
    height = $height
    margin = $margin
    name = "ironbar-top"
    popup_gap = 0
    icon_theme = "breeze"
    start = [
      {
        type = "workspaces"
      }
      $launcher
      $focused
    ]
    center = $center
    end = $end
  }
}

Styles

* {
  font-family: "Noto Sans Regular";
  font-size: 12px;
  border: none;
  border-radius: 0;
  padding: 0;
}

.background {
  background: transparent;
}

/* -- workspaces -- */

.workspaces {
  margin-left: 2px;
  margin-right: 5px;
}

.workspaces .item {
  background: alpha(@theme_bg_color, 0.33);
  border: 0;
  border-radius: 10px;
  color: @theme_selected_fg_color;
  padding: 2px 5px;
  margin: 4px 2px;
}

.workspaces .item.visible {
  background: transparent;
  color: @theme_bg_color;
}

/*.workspaces .item.inactive {
}*/

.workspaces .item.focused {
  background: alpha(@theme_selected_bg_color, 0.666);
  color: @theme_selected_fg_color;
}

/* -- launcher -- */

.launcher {
  background: @theme_bg_color;
  border: 1px solid @borders;
  border-radius: 5px;
  margin: 1px 0;
  padding: 0;
}

.launcher .item {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.launcher .item image {
  padding: 3px 7px;
}

.launcher .item:hover {
  background-color: alpha(@theme_selected_bg_color, 0.333);
  border-bottom: 2px solid @theme_selected_bg_color;
}

.launcher .ifix examtem:not(.focused):hover {
  background-color: @theme_selected_bg_color;
}

.launcher .open {
  border-bottom: 2px solid @theme_bg_color;
}

.launcher .focused {
  border-bottom: 2px solid @theme_selected_bg_color;
}

.launcher .focused image {
  background-color: alpha(@theme_selected_bg_color, 0.333);
}

.launcher .urgent {
  border-bottom-color: alpha(red, 0.333);
}

.popup-launcher {
  padding: 0;
  background: @theme_bg_color;
  border: 1px solid @borders;
  border-radius: 5px;
}

.popup-launcher .popup-item {
  border-bottom: 2px solid @theme_bg_color;
}

.popup-launcher .popup-item:hover {
  border-bottom: 2px solid @theme_selected_bg_color;
  background-color: alpha(@theme_selected_bg_color, 0.33);
}

/* -- focused -- */

#focused-window {
  color: @theme_selected_fg_color;
  background-color: alpha(@theme_selected_bg_color, 0.5);
  border: 1px solid @theme_selected_bg_color;
  border-radius: 5px;
  padding: 0 7px;
  margin: 1px 5px;
}

/* -- sysinfo -- */

.sysinfo {
  border: 1px solid @theme_selected_bg_color;
  border-radius: 10px;
  background: alpha(@theme_selected_bg_color, 0.5);
  padding: 0 7px;
/*   margin: 1px 5px 1px 0; */
  margin: 1px 0;
}

.sysinfo .item {
  color: @theme_selected_fg_color;

}

/* -- clipboard -- */

.clipboard {
  font-size: 1em;
  /*background: @theme_bg_color;*/
  background: transparent;
  border: 0;
  border-radius: 0 ;
  margin: 1px 0;
}

.popup-clipboard {
  background: @theme_bg_color;
  border: 1px solid @borders;
  border-radius: 5px;
  padding: 5px 7px;

}

.popup-clipboard .item {
/*   padding-bottom: 0.3em; */
  border-left: 3px solid @borders;
  background: @theme_bg_color;
  padding: 5px;
}

.popup-clipboard .item .btn-remove {
  border: 1px solid @borders;
  padding: 5px;
}

.popup-clipboard .item .btn-remove:hover {
  border: 1px solid @theme_selected_bg_color;
  background: alpha( @theme_selected_bg_color, 0.333);
}

/* notifications */

.notifications button {
  font-size: 1rem;
  color: @theme_bg_color;
  margin: 1px 0 1px 5px;
  /*background: @theme_bg_color;*/
  background: transparent;
  border: 0;
  border-radius: 5px 0 0 5px;
  padding: 0 5px 0 7px;
}

.notifications .count {
  font-size: 0.6rem;
  background-color: @theme_bg_color;
  color: @theme_fg_color;
  border-radius: 100%;
  margin-right: 3px;
  margin-top: 3px;
  padding-left: 4px;
  padding-right: 4px;
/*   opacity: 0.7; */
}

/* -- Upower -- */

.upower {
/*   margin: 0 3px; */
  margin: 1px 0;
  padding: 0;
/*   background: @theme_bg_color; */
  background: transparent;
  border: 0;
  border-radius: 0;
  color: @theme_bg_color;

}

.popup-upower {
  border-radius: 5px;
}

/* -- tray -- */

.tray {
/*   margin: 0 5px; */
  margin: 1px 0;
  padding: 0 5px;
  border-radius: 0 5px 5px 0;
/*   background: @theme_bg_color; */
  background: transparent;
}

.tray .item {
  padding: 0;
  margin: 0;
}

.tray .item:hover {
  background-color: @theme_selected_bg_color;
}


/* -- Date & Time -- */

.clock {
  background: alpha(@theme_bg_color, 0.8);

  color: @theme_fg_color;
  border: 1px solid @borders;
  border-radius: 5px;
  padding: 0 7px;
  margin: 1px 5px;
}

.popup-clock {
  background: @theme_bg_color;
  border: 1px solid @borders;
  border-radius: 5px;

  padding: 5px 7px;
}
.popup-clock .calendar-clock {
  font-size: 1em;
  font-weight: bold;
  padding: 5px;
}

.popup-clock .calendar {
  border: 1px solid @borders;
  border-radius: 5px;

  padding: 5px;
}

.popup-clock .calendar .header {
  border-radius: 0;
}

.popup-clock .calendar:selected {
/*   background-color: alpha(@theme_selected_bg_color, 0.333); */
  border: 1px solid @theme_selected_bg_color;
  border-radius: 0;
}

/* -- Logout button -- */

#logbutton {
  background: alpha(red, 0.666);
  border: 1px solid alpha(red, 0.666);
  border-radius: 5px;
  padding: 0 4px;
  margin: 1px 2px 1px 0;
}

Screenshots
2024-12-09-152815_hyprshot

Originally created by @salahoued on GitHub (Dec 9, 2024). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/808 **Describe the bug** The workspace module (Hyprland) stops working after some time from starting up and no longer shows the active workspace if any other new workspace, <details><summary>Terminal logs</summary> ``` 2024-12-09T10:45:57.356481Z INFO ironbar: 134: Ironbar version 0.16.1 2024-12-09T10:45:57.356509Z INFO ironbar: 135: Starting application 2024-12-09T10:45:57.451230Z WARN ironbar::ipc::server: 33: Socket already exists. Did Ironbar exit abruptly? 2024-12-09T10:45:57.451285Z WARN ironbar::ipc::server: 34: Attempting IPC shutdown to allow binding to address 2024-12-09T10:45:57.451377Z INFO ironbar::ipc::server: 39: Starting IPC on /run/user/1000/ironbar-ipc.sock 2024-12-09T10:45:57.454600Z INFO ironbar::bar: 117: Initializing bar 'ironbar-top' on 'eDP-1' 2024-12-09T10:45:57.458502Z INFO ironbar::clients::compositor::hyprland: 32: Starting Hyprland event listener 2024-12-09T10:45:57.517720Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.878"))), 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.878"))), 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.878"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 45: new host: :1.878 2024-12-09T10:45:57.518045Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.529"))), 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.529"))), 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.529"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.529/org/ayatana/NotificationItem/nm_applet 2024-12-09T10:45:57.518387Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.531"))), 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.531"))), 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.531"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.531/org/ayatana/NotificationItem/gammastep 2024-12-09T10:45:57.606938Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée 2024-12-09T10:45:57.607044Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée 2024-12-09T13:46:04.860610Z ERROR ironbar::logging: 49: The application panicked (crashed). Message: Failed to start listener: FromUtf8Error(FromUtf8Error { bytes: [119, 105, 110, 100, 111, 119, 116, 105, 116, 108, 101, 62, 62, 53, 53, 55, 57, 50, 49, 50, 55, 98, 51, 100, 48, 10, 119, 105, 110, 100, 111, 119, 116, 105, 116, 108, 101, 118, 50, 62, 62, 53, 53, 55, 57, 50, 49, 50, 55, 98, 51, 100, 48, 44, 76, 101, 99, 116, 101, 117, 114, 32, 109, 117, 108, 116, 105, 109, 233, 100, 105, 97, 32, 86, 76, 67, 10], error: Utf8Error { valid_up_to: 68, error_len: Some(1) } }) Location: src/clients/compositor/hyprland.rs:178 Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it. Run with RUST_BACKTRACE=full to include source snippets. 2024-12-09T13:46:04.899686Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.885"))), 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.885"))), 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.885"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.885/StatusNotifierItem 2024-12-09T13:46:04.987165Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée 2024-12-09T13:46:05.428201Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID 2024-12-09T13:46:16.841218Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID 2024-12-09T13:46:16.842491Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:16.843257Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:16.843740Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:16.872264Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID 2024-12-09T13:46:17.774821Z ERROR system_tray::client: 483: Timeout getting layout 2024-12-09T13:46:35.379536Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.891"))), 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.891"))), 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.891"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.891/StatusNotifierItem 2024-12-09T13:46:35.459926Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get session bus: L’opération a été annulée 2024-12-09T13:46:40.113771Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID 2024-12-09T13:46:40.114988Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:40.116238Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:40.117000Z WARN GTK: 112: [LIBDBUSMENU-GTK] Children but no menu, someone's been naughty with their 'children-display' property: 'submenu' 2024-12-09T13:46:40.159445Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to replace properties on 0: Error getting properties for ID 2024-12-09T13:46:41.075549Z ERROR system_tray::client: 483: Timeout getting layout 2024-12-09T13:46:41.091074Z ERROR system_tray::client: 395: error fetching property 'ToolTip': ServiceUnknown("The name is not activatable") 2024-12-09T13:58:01.961031Z INFO ironbar::style: 76: Reloading CSS 2024-12-09T13:58:01.962565Z INFO ironbar::style: 76: Reloading CSS 2024-12-09T14:34:11.871386Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.910"))), 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.910"))), 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.910"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierItem"))), body: Signature("s") }}: system_tray::dbus::status_notifier_watcher: 134: new item: :1.910/StatusNotifierItem 2024-12-09T14:34:11.939795Z WARN GTK: 112: [LIBDBUSMENU-GLIB] Unable to get menu proxy: L’opération a été annulée ``` </details> **To Reproduce** 1. start `ironbar` 2. wait for some time 3. observe that workspaces are no longer updated **Expected behavior** Workspaces do not crash **System information:** - Distro: openSUSE Tumblweed - Compositor: Hyprland - Ironbar version: 0.16.1 **Configuration** <details><summary>Config</summary> ``` let { $position = "top" $height = 20 $margin = { top = 0 left = 0 right = 0 } $clock = { type = "clock" name = "time-widget" format = "<span font-weight='bold'>%H:%M</span>, %a %d-%m-%y" } $launcher = { type = "launcher" show_names = false show_icons = true icon_size = 16 reversed = false } $focused = { name = "focused-window" type = "focused" show_icon = true show_title = true icon_size = 16 truncate = "middle" } $sys_info = { type = "sys_info" interval.memory = 10 interval.cpu = 1 interval.temps = 5 interval.networks = 3 format = [ "C: {cpu_percent}%" "R: {memory_percent}%" "T: {temp_c:coretemp-Package-id-0}°C" ] } $upower = { type = "upower" icon_size = 16 } $clipboard = { type = "clipboard" icon = "icon:edit-paste" icon_size = 16 max_items = 10 truncate.mode = "end" truncate.length = 50 } $tray = { type = "tray" icon_size = 16 } $notifs = { type = "notifications" show_count = true icons.closed_none = "󰍥" icons.closed_some = "󱥂" icons.closed_dnd = "󱅯" icons.open_none = "󰍡" icons.open_some = "󱥁" icons.open_dnd = "󱅮" } $logimage = { type = "image" src = "system-shutdown" name = "logimage" size = 20 } $logbutton = { type = "button" name = "logbutton" widgets = [$logimage] on_click = "!wleave" } $logout = { type = "custom" bar = [$logbutton] } $center = [] $end = [$sys_info $notifs $clipboard $upower $tray $clock $logout ] } in { monitors.eDP-1 = { position = $position height = $height margin = $margin name = "ironbar-top" popup_gap = 0 icon_theme = "breeze" start = [ { type = "workspaces" } $launcher $focused ] center = $center end = $end } } ``` </details> <details><summary>Styles</summary> ```css  * { font-family: "Noto Sans Regular"; font-size: 12px; border: none; border-radius: 0; padding: 0; } .background { background: transparent; } /* -- workspaces -- */ .workspaces { margin-left: 2px; margin-right: 5px; } .workspaces .item { background: alpha(@theme_bg_color, 0.33); border: 0; border-radius: 10px; color: @theme_selected_fg_color; padding: 2px 5px; margin: 4px 2px; } .workspaces .item.visible { background: transparent; color: @theme_bg_color; } /*.workspaces .item.inactive { }*/ .workspaces .item.focused { background: alpha(@theme_selected_bg_color, 0.666); color: @theme_selected_fg_color; } /* -- launcher -- */ .launcher { background: @theme_bg_color; border: 1px solid @borders; border-radius: 5px; margin: 1px 0; padding: 0; } .launcher .item { margin: 0; padding: 0; border: 0; border-radius: 0; } .launcher .item image { padding: 3px 7px; } .launcher .item:hover { background-color: alpha(@theme_selected_bg_color, 0.333); border-bottom: 2px solid @theme_selected_bg_color; } .launcher .ifix examtem:not(.focused):hover { background-color: @theme_selected_bg_color; } .launcher .open { border-bottom: 2px solid @theme_bg_color; } .launcher .focused { border-bottom: 2px solid @theme_selected_bg_color; } .launcher .focused image { background-color: alpha(@theme_selected_bg_color, 0.333); } .launcher .urgent { border-bottom-color: alpha(red, 0.333); } .popup-launcher { padding: 0; background: @theme_bg_color; border: 1px solid @borders; border-radius: 5px; } .popup-launcher .popup-item { border-bottom: 2px solid @theme_bg_color; } .popup-launcher .popup-item:hover { border-bottom: 2px solid @theme_selected_bg_color; background-color: alpha(@theme_selected_bg_color, 0.33); } /* -- focused -- */ #focused-window { color: @theme_selected_fg_color; background-color: alpha(@theme_selected_bg_color, 0.5); border: 1px solid @theme_selected_bg_color; border-radius: 5px; padding: 0 7px; margin: 1px 5px; } /* -- sysinfo -- */ .sysinfo { border: 1px solid @theme_selected_bg_color; border-radius: 10px; background: alpha(@theme_selected_bg_color, 0.5); padding: 0 7px; /* margin: 1px 5px 1px 0; */ margin: 1px 0; } .sysinfo .item { color: @theme_selected_fg_color; } /* -- clipboard -- */ .clipboard { font-size: 1em; /*background: @theme_bg_color;*/ background: transparent; border: 0; border-radius: 0 ; margin: 1px 0; } .popup-clipboard { background: @theme_bg_color; border: 1px solid @borders; border-radius: 5px; padding: 5px 7px; } .popup-clipboard .item { /* padding-bottom: 0.3em; */ border-left: 3px solid @borders; background: @theme_bg_color; padding: 5px; } .popup-clipboard .item .btn-remove { border: 1px solid @borders; padding: 5px; } .popup-clipboard .item .btn-remove:hover { border: 1px solid @theme_selected_bg_color; background: alpha( @theme_selected_bg_color, 0.333); } /* notifications */ .notifications button { font-size: 1rem; color: @theme_bg_color; margin: 1px 0 1px 5px; /*background: @theme_bg_color;*/ background: transparent; border: 0; border-radius: 5px 0 0 5px; padding: 0 5px 0 7px; } .notifications .count { font-size: 0.6rem; background-color: @theme_bg_color; color: @theme_fg_color; border-radius: 100%; margin-right: 3px; margin-top: 3px; padding-left: 4px; padding-right: 4px; /* opacity: 0.7; */ } /* -- Upower -- */ .upower { /* margin: 0 3px; */ margin: 1px 0; padding: 0; /* background: @theme_bg_color; */ background: transparent; border: 0; border-radius: 0; color: @theme_bg_color; } .popup-upower { border-radius: 5px; } /* -- tray -- */ .tray { /* margin: 0 5px; */ margin: 1px 0; padding: 0 5px; border-radius: 0 5px 5px 0; /* background: @theme_bg_color; */ background: transparent; } .tray .item { padding: 0; margin: 0; } .tray .item:hover { background-color: @theme_selected_bg_color; } /* -- Date & Time -- */ .clock { background: alpha(@theme_bg_color, 0.8); color: @theme_fg_color; border: 1px solid @borders; border-radius: 5px; padding: 0 7px; margin: 1px 5px; } .popup-clock { background: @theme_bg_color; border: 1px solid @borders; border-radius: 5px; padding: 5px 7px; } .popup-clock .calendar-clock { font-size: 1em; font-weight: bold; padding: 5px; } .popup-clock .calendar { border: 1px solid @borders; border-radius: 5px; padding: 5px; } .popup-clock .calendar .header { border-radius: 0; } .popup-clock .calendar:selected { /* background-color: alpha(@theme_selected_bg_color, 0.333); */ border: 1px solid @theme_selected_bg_color; border-radius: 0; } /* -- Logout button -- */ #logbutton { background: alpha(red, 0.666); border: 1px solid alpha(red, 0.666); border-radius: 5px; padding: 0 4px; margin: 1px 2px 1px 0; } ``` </details> **Screenshots** ![2024-12-09-152815_hyprshot](https://github.com/user-attachments/assets/3420ed74-5b22-43de-8b3b-1777b90ea743)
Author
Owner

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

From the logs it looks like this is an issue immediately at startup, rather than one that occurs after some time. Are you able to confirm please?

It also looks like a Hyprland issue, or at least one with the IPC client. Are you able to confirm the version (or commit if on -git) of Hyprland you're using?

<!-- gh-comment-id:2528525465 --> @JakeStanger commented on GitHub (Dec 9, 2024): From the logs it looks like this is an issue immediately at startup, rather than one that occurs after some time. Are you able to confirm please? It also looks like a Hyprland issue, or at least one with the IPC client. Are you able to confirm the version (or commit if on -git) of Hyprland you're using?
Author
Owner

@salahoued commented on GitHub (Dec 9, 2024):

The issue doesn't occur immediately at startup, it occurs after some time had passed, from the logs above I started ironbar at 10:45 and the issue occured at 13:46, the current instance is started at 14:51 and it's still working now at 18:01

Hyprland -v from openSUSE Tumblweed repos

Hyprland 0.45.2 built from branch  at commit  dirty ().
Date: 
Tag: , commits: 
built against aquamarine 0.4.4


flags set:
debug
<!-- gh-comment-id:2528760031 --> @salahoued commented on GitHub (Dec 9, 2024): The issue doesn't occur immediately at startup, it occurs after some time had passed, from the logs above I started `ironbar` at 10:45 and the issue occured at 13:46, the current instance is started at 14:51 and it's still working now at 18:01 `Hyprland -v` from openSUSE Tumblweed repos ``` Hyprland 0.45.2 built from branch at commit dirty (). Date: Tag: , commits: built against aquamarine 0.4.4 flags set: debug ```
Author
Owner

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

I started ironbar at 10:45 and the issue occured at 13:46

Oh you're right sorry, I missed that

<!-- gh-comment-id:2528775361 --> @JakeStanger commented on GitHub (Dec 9, 2024): > I started ironbar at 10:45 and the issue occured at 13:46 Oh you're right sorry, I missed that
Author
Owner

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

Have you seen this happen a few times? I'm trying to work out what would even cause a UTF 8 error and the only thing that comes to mind is the actual data scream is interrupted between the Hyprland socket and client.

<!-- gh-comment-id:2528782401 --> @JakeStanger commented on GitHub (Dec 9, 2024): Have you seen this happen a few times? I'm trying to work out what would even cause a UTF 8 error and the only thing that comes to mind is the actual data scream is interrupted between the Hyprland socket and client.
Author
Owner

@salahoued commented on GitHub (Dec 9, 2024):

Yes, It did happen, I'd say every time I start ironbar, it's been a few days now that I started using hyprland+ironbar

<!-- gh-comment-id:2528793344 --> @salahoued commented on GitHub (Dec 9, 2024): Yes, It did happen, I'd say every time I start `ironbar`, it's been a few days now that I started using hyprland+ironbar
Author
Owner

@JakeStanger commented on GitHub (Dec 10, 2024):

Still not 100% sure why it's happening but it looks to be a problem with the hyprland-rs crate rather than Ironbar.

I've just parsed the byte string in the error, which shows:

windowtitle>>55792127b3d0
windowtitlev2>>55792127b3d0,Lecteur multimédia VLC
                                          ^-- invalid byte

So for some reason it's not liking the é, despite being valid UTF-8.

<!-- gh-comment-id:2532085375 --> @JakeStanger commented on GitHub (Dec 10, 2024): Still not 100% sure why it's happening but it looks to be a problem with the `hyprland-rs` crate rather than Ironbar. I've just parsed the byte string in the error, which shows: ``` windowtitle>>55792127b3d0 windowtitlev2>>55792127b3d0,Lecteur multimédia VLC ^-- invalid byte ``` So for some reason it's not liking the `é`, despite being valid UTF-8.
Author
Owner

@salahoued commented on GitHub (Dec 10, 2024):

It seems right, right after running vlc the error is encountered, and after restarting ironbar with vlc still running there is no error and seems to be working fine,

I'm not sure could it have any effect on #809 ?

<!-- gh-comment-id:2532142477 --> @salahoued commented on GitHub (Dec 10, 2024): It seems right, right after running `vlc` the error is encountered, and after restarting `ironbar` with `vlc` still running there is no error and seems to be working fine, I'm not sure could it have any effect on #809 ?
Author
Owner

@JakeStanger commented on GitHub (Dec 10, 2024):

I'm not sure could it have any effect on https://github.com/JakeStanger/ironbar/issues/809 ?

No that won't be related. I suspect that's flatpak-related but I've not had a chance to look yet

<!-- gh-comment-id:2532168352 --> @JakeStanger commented on GitHub (Dec 10, 2024): > I'm not sure could it have any effect on https://github.com/JakeStanger/ironbar/issues/809 ? No that won't be related. I suspect that's flatpak-related but I've not had a chance to look yet
Author
Owner

@salahoued commented on GitHub (Dec 10, 2024):

OK, Thanks

<!-- gh-comment-id:2532171509 --> @salahoued commented on GitHub (Dec 10, 2024): OK, Thanks
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#3061
No description provided.