[BUG]: Komorebi Bar active workspace stops updating after a while
Describe the bug
- After using Komorbei with the Komorebi bar for some time the Komorebi Bar will stop updating the current active workspace.
- This doesn't seem to have any apparent trigger nor is there any error posted by Komarabi Bar to the console.
- The only solution that I have found is to stop and start the komarabi bar all over again. I have a hot-key alt+shift+b that i use to acheive this.
- Currently i have to do this approx 5-6 times a day :(
- I have recorded a video after launching the bar from the console and waiting for it to freeze.
- Note that all the other widgets seem to update properly, and clicking on the workspace names on the bar does take you to the current workspace and updates it too! However switching workspaces using the hot keys doesn't seem to reflect in the widget.
To Reproduce Steps to reproduce the behavior:
- Use Komorebi with bar turned on for a while
- After some prolonged use the bar's active workspacec widget will randomly stop reflecting the current workspace
- Killing and restarting komorebi should fix the problem
Expected behavior Komorebi bar stops responding, and needs to be restarted
Screenshots and Videos
https://github.com/user-attachments/assets/981ac8bf-9bef-4a0e-b02a-78f5e24bc990
Operating System
OS Name: Microsoft Windows 11 Home
OS Version: 10.0.22631 N/A Build 22631
komorebic check Output
No KOMOREBI_CONFIG_HOME detected, defaulting to C:\Users\mmsye
Looking for configuration files in C:\Users\mmsye
Found komorebi.json; this file can be passed to the start command with the --config flag
Found C:\Users\mmsye\.config\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag
Additional context
.shell powershell
# Reload whkd configuration
# alt + o : taskkill /f /im whkd.exe && start /b whkd # if shell is cmd
alt + o : taskkill /f /im whkd.exe; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell
alt + shift + o : komorebic reload-configuration
alt + shift + b : Stop-Process -name komorebi-bar; Start-Process komorebi-bar -windowstyle hidden
# App shortcuts - these require shell to be pwsh / powershell
# The apps will be focused if open, or launched if not open
# alt + f : if ($wshell.AppActivate('Firefox') -eq $False) { start firefox }
# alt + b : if ($wshell.AppActivate('Chrome') -eq $False) { start chrome }
alt + q : komorebic close
alt + m : komorebic minimize
# Focus windows
alt + h : komorebic focus left
alt + j : komorebic focus down
alt + k : komorebic focus up
alt + l : komorebic focus right
alt + shift + oem_4 : komorebic cycle-focus previous # oem_4 is [
alt + shift + oem_6 : komorebic cycle-focus next # oem_6 is ]
# Move windows
alt + shift + h : komorebic move left
alt + shift + j : komorebic move down
alt + shift + k : komorebic move up
alt + shift + l : komorebic move right
alt + shift + return : komorebic promote
# Stack windows
alt + shift + oem_4 : komorebic stack left
alt + ctrl + oem_4 : komorebic stack down
alt + ctrl + oem_6 : komorebic stack up
alt + shift + oem_6 : komorebic stack right
alt + oem_1 : komorebic unstack # oem_1 is ;
alt + oem_4 : komorebic cycle-stack previous # oem_4 is [
alt + oem_6 : komorebic cycle-stack next # oem_6 is ]
# Resize
alt + oem_plus : komorebic resize-axis horizontal increase
alt + oem_minus : komorebic resize-axis horizontal decrease
alt + shift + oem_plus : komorebic resize-axis vertical increase
alt + shift + oem_minus : komorebic resize-axis vertical decrease
# Manipulate windows
alt + shift + d : komorebic toggle-float
alt + d : komorebic toggle-monocle
# Window manager options
alt + shift + r : komorebic retile
alt + shift + p : komorebic toggle-pause
alt + shift + m : komorebic manage
# Layouts
alt + x : komorebic flip-layout horizontal
alt + y : komorebic flip-layout vertical
# Workspaces
alt + 1 : komorebic focus-workspace 0
alt + 2 : komorebic focus-workspace 1
alt + 3 : komorebic focus-workspace 2
alt + 4 : komorebic focus-workspace 3
alt + 5 : komorebic focus-workspace 4
alt + 6 : komorebic focus-workspace 5
alt + 7 : komorebic focus-workspace 6
alt + 8 : komorebic focus-workspace 7
alt + 9 : komorebic focus-workspace 8
alt + 0 : komorebic focus-workspace 9
# Move windows across workspaces
alt + shift + 1 : komorebic move-to-workspace 0
alt + shift + 2 : komorebic move-to-workspace 1
alt + shift + 3 : komorebic move-to-workspace 2
alt + shift + 4 : komorebic move-to-workspace 3
alt + shift + 5 : komorebic move-to-workspace 4
alt + shift + 6 : komorebic move-to-workspace 5
alt + shift + 7 : komorebic move-to-workspace 6
alt + shift + 8 : komorebic move-to-workspace 7
alt + shift + 9 : komorebic move-to-workspace 8
alt + shift + 0 : komorebic move-to-workspace 9
# Launch Apps
ctrl + alt + c : Start-Process chrome.exe
{
"$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.29/schema.bar.json",
"monitor": {
"index": 0,
"work_area_offset": {
"left": 0,
"top": 40,
"right": 0,
"bottom":40
}
},
"font_size": 11,
"font_family": "Cascadia Code",
"theme": {
"palette": "Base16",
"name": "Chalk",
"accent": "Base0F"
},
"left_widgets": [
{
"Komorebi": {
"workspaces": {
"enable": true,
"hide_empty_workspaces": true
},
"layout": {
"enable": true
},
"focused_window": {
"enable": false,
"show_icon": false
}
}
}
],
"right_widgets": [
{
"Media": {
"enable": true
}
},
{
"Storage": {
"enable": false
}
},
{
"Memory": {
"enable": true
}
},
{
"Network": {
"enable": false,
"data_refresh_interval": 1,
"show_total_data_transmitted": false,
"show_network_activity": false
}
},
{
"Date": {
"enable": true,
"format": "DayDateMonthYear"
}
},
{
"Time": {
"enable": true,
"format": "TwelveHour"
}
},
{
"Battery": {
"enable": true,
"data_refresh_interval": 60
}
}
]
}
{
"$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.28/schema.json",
"app_specific_configuration_path": "$Env:USERPROFILE/applications.yaml",
"window_hiding_behaviour": "Cloak",
"cross_monitor_move_behaviour": "Insert",
"default_workspace_padding": 1,
"default_container_padding": 1,
"transparency": false,
"border": true,
"border_width": 0,
"border_style": "System",
"border_implementation": "Windows",
"border_colours": {
"single": "#a6856e",
"stack": "#a6856e",
"monocle": "#fc585e",
"unfocused": "#000000"
},
"stackbar": {
"label": "Title",
"height": 18,
"mode": "OnStack",
"tabs": {
"width": 220,
"focused_text": "#a6856e",
"unfocused_text": "#383838",
"background": "#000000",
"font_size": 28,
"font_family": "Consolas"
}
},
"monitors": [
{
"workspaces": [
{
"name": "1 Code",
"layout": "BSP"
},
{
"name": "2 Notes",
"layout": "BSP",
"workspace_rules": [
{
"id": "Obsidian.exe",
"kind": "Exe"
}
]
},
{
"name": "3 Web",
"layout": "BSP"
},
{
"name": "4 Comm",
"layout": "BSP"
},
{
"name": "5 AI",
"layout": "BSP",
"workspace_rules": [
{
"id": "ChatGPT App",
"kind": "Title",
"matching_strategy": "StartsWith"
},
{
"id": "Perplexity App",
"kind": "Title",
"matching_strategy": "StartsWith"
},
{
"id": "Claude",
"kind": "Title",
"matching_strategy": "StartsWith"
}
]
},
{
"name": "6 Media",
"layout": "BSP"
},
{
"name": "7 Task",
"layout": "BSP"
},
{
"name": "8 Task",
"layout": "BSP"
},
{
"name": "9 Task",
"layout": "BSP"
},
{
"name": "0 Last",
"layout": "BSP",
"workspace_rules": [
{
"id": "edit_komorebi",
"kind": "Title",
"matching_strategy": "Contains"
}
]
}
]
}
],
"float_rules": [
{
"id": "Voice call - WhatsApp Beta",
"kind": "Title",
"matching_strategy": "Equals"
}
]
}
I haven't reproduced this yet but I know others have. Please run komorebi-bar.exe in the foreground and share the logs when the bar updates stop rendering - this will help rule out (or confirm?) thread crashes in komorebi-bar.
edit: I see the logs in the video - I think this rules out thread crashes in komorebi-bar. I see that the komorebic socket messages are also still being received as expected (shortcuts are working).
It would be useful to add some debug logs here to see if the subscription notifications are still being received: https://github.com/LGUG2Z/komorebi/blob/30e09d99464f9e1662912086de048abb8daa4164/komorebi-bar/src/komorebi.rs#L440
Similarly it will be useful to check the komorebi logs to see if subscription notifications are being emitted. You'll have to use the appropriate Rust env var to enable debug logging before launching komorebi for this: https://github.com/LGUG2Z/komorebi/blob/30e09d99464f9e1662912086de048abb8daa4164/komorebi/src/lib.rs#L307
https://github.com/LGUG2Z/komorebi/blob/30e09d99464f9e1662912086de048abb8daa4164/komorebi-bar/src/main.rs#L373
Probably also want to check if this deserialization fails
https://github.com/LGUG2Z/komorebi/commit/f968e89d5d7b65d62cc134a87d14d7caf7e39f71
I'm using the 7f0b54c nightly build of komorebi and for me this issue has disappeared :)