hyprland/workspaces and hyprland/window become frozen
This has been going on for a few months now, but I can't find an open issue about what I'm experiencing. Basically after some amount of time the hyprland/workspaces module seems to become frozen, the active workspace will not change and neither does the list of current workspaces (ie. new workspaces don't appear and 'closed' workspaces don't disappear), they can still be interacted with. The title of the active window (hyprland/window) also freezes. Everything else, network/ram/cpu/volume/date/time/tray, continue to function. This is issue is extremely frequent and leads me to have to kill Waybar and restart it up to 20 times a day, I even have a dedicated workspace now for running pkill waybar; waybar. No information is printed to stdout when the issue occurs, and despite the frequency I still haven't been able to work out the trigger. If I ever do discover the cause I will attempt to bisect, though I am unsure whether it was an update to Waybar or Hyprland that initially caused the problem.
I found the source of the problem, it's window-rewrite in hyprland/workspaces config. Waybar freezes even from the example from the documentation.
"hyprland/workspaces": {
"format": "{name}n{windows}",
"format-window-separator": "n",
"window-rewrite-default": "",
"window-rewrite": {
"title<.*youtube.*>": "", // Windows whose titles contain "youtube"
"class<firefox>": "", // Windows whose classes are "firefox"
"class<firefox> title<.*github.*>": "", // Windows whose class is "firefox" and title contains "github". Note that "class" always comes first.
"foot": "", // Windows that contain "foot" in either class or title. For optimization reasons, it will only match against a title if at least one other window explicitly matches against a title.
"code": "",
"title<.* - (.*) - VSCodium>": "codium $1" // captures part of the window title and formats it into output
}
}
If remove window-rewrite then waybar starts working correctly
Hm, in my waybar config I don't have that option. I can't imagine it's implied if not specified?
"hyprland/workspaces": {
"all-outputs": false,
"on-scroll-up": "hyprctl dispatch workspace e-1",
"on-scroll-down": "hyprctl dispatch workspace e+1",
//"disable-scroll": false,
//"disable-scroll-wraparound": true,
"format": "{name}",
//"format-icons": {
// "urgent": "<U+F06A>",
// "focused": "<U+F192>",
// "default": "<U+F111>"
//}
},
I have this same issue, and I noticed that it happens on hyprland config changes, but only in around 10% of times. But it's especially an issue for me since I have a python script that automatically handles monitor and workspace configs whenever a display output connects/disconnects. This means that there's a 10% chance for waybar to freeze if my display goes into power saver mode.
Here are the last few logs before this happens:
[2025-09-14 19:59:03.892] [info] Hyprland config reloaded, reinitializing hyprland/workspaces module...
[2025-09-14 19:59:04.545] [info] Loading persistent workspaces from Hyprland workspace rules
[2025-09-14 19:59:04.545] [info] Loading persistent workspaces from Hyprland workspace rules
[2025-09-14 19:59:53.383] [info] Hyprland config reloaded, reinitializing hyprland/workspaces module...
[2025-09-14 19:59:54.019] [info] Loading persistent workspaces from Hyprland workspace rules
[2025-09-14 19:59:54.019] [info] Loading persistent workspaces from Hyprland workspace rules
[2025-09-14 19:59:54.019] [info] Hyprland config reloaded, reinitializing hyprland/workspaces module...
[2025-09-14 19:59:54.019] [info] Loading persistent workspaces from Hyprland workspace rules
And my waybar config is very barebones:
"hyprland/workspaces": {
"format": "{icon}",
"format-icons": {
"active": "",
"default": "",
"empty": ""
}
},
The only solution I found is to add this call sleep 5 && pkill waybar && hyprctl dispatch exec waybar right after changing the configs.
I have the same issue when I'm quickly creating and removing a headless output with hyprctl.
hyprctl output create headless TEST; hyprctl output remove TEST
It also freezes the submap module.
I have the same issue when I'm quickly creating and removing a headless output with hyprctl.
Can reproduce on my machine. Also this happens after waking up from suspend.
I have the same issue when I'm quickly creating and removing a headless output with hyprctl.
hyprctl output create headless TEST; hyprctl output remove TESTIt also freezes the submap module.
i can also confirm that this is the issue
Happens here too. I execute waybar with hyprland
And use the following hyprland/workspaces waybar config:
"hyprland/workspaces": {
"disable-scroll": true,
"format": "{icon}",
"format-icons": {
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
"10": "〇",
},
},
The only solution I found is to add this call
sleep 5 && pkill waybar && hyprctl dispatch exec waybarright after changing the configs.
This solves the problem..
Suddenly works properly for me. But a more permanent solution that I used is to use exec instead of exec-once. It'll run the command every time your config is changed. Not perfect but still better than typing it in manually every time. But this issue is 100% related to multi-monitor setups.
exec = "pkill waybar; sleep 1; waybar &"
its working fine for me after fedora update . not sure why