[BUG]: Komorebi Fails to Execute Commands on Time (delayed execution up to 10-15sec)
Summary
I didn't have this issue until I downloaded WSL (v2) and started using it on my Windows instead of powershell for my development things, but I didn't change anything for komorebi just installed the WSL and Ubuntu.
I also removed some dev tools (Go language, nvm etc.) I kept very few things such as Git because I'm not planning to run dev commands or tasks on Windows anymore.
But after I installed WSL and removed some dev tools/languages I started to see some delays on some calls, it's not happening always but it's not very rare too.
When I press a shortcut sometimes it takes 2-3sec to respond it responds in the end but it takes a long delay which is normally only few ms probably because I don't feel any delay normally.
It's like freezing, when I understand that call is delayed if I press more shortcuts all of them are waiting for the first one to execute and complete I guess and so others also doesn't work and after first one executes after that 2-3sec rest of them executes too.
It's just like freezing. I tried to run commands multiple times on terminal manually to see if that happens there to and I wasn't able to reproduce it in terminal (PowerShell) I launched WSL and I also ran commands there and I was able to get that delayed call only for two times in total out of like 100+ spams.
I'm not sure if WSL is the reason or if it's even related but this started after I installed it and removed some dev tools. I also removed and reinstalled komorebi via winget to see if it's resolves but no.
Another interesting part is, if I leave komorebi log open in a terminal session that delayed calls never happens currently I use komorebi while logs are on in a powershell terminal (via Windows Terminal app).
I tried to play with AHK scripts too but I don't think so they are the reason.
-> Update - 22 Aug
I also find out that this happens almost everytime after a long period of inactivity with komorebi, for example if I don't use any shortcut for like 30min-1hour this freezing delay happens almost always. Now I will try to see if it also happens while logs are on in a terminal.
Version Information
OS Name: Microsoft Windows 11 Pro OS Version: 10.0.26100 N/A Build 26100
komorebic 0.1.37 tag:v0.1.37 commit_hash:00384ce3 build_time:2025-05-17 19:16:53 +00:00 build_env:rustc 1.87.0 (17067e9ac 2025-05-09),stable-x86_64-pc-windows-msvc
Komorebi Configuration
{
"$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.37/schema.json",
"animation": {
"enabled": true,
"fps": 200,
"duration": 150,
"style": "EaseInOutSine"
},
"cross_boundary_behaviour": "Monitor",
"cross_monitor_move_behaviour": "Insert",
"display_index_preferences": {
"0": "AOCB205-5&2790121b&0&UID4353",
"1": "MSI4BB4-5&2790121b&0&UID4356",
"2": "ACR0673-5&2790121b&0&UID4352"
},
"bar_configurations": [
"$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.json",
"$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.2.json",
"$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.3.json"
],
"border": false,
"default_workspace_padding": 0,
"default_container_padding": 0,
"window_hiding_behaviour": "Cloak",
"theme": {
"palette": "Catppuccin",
"name": "Macchiato",
"accent": "Text",
"auto_select_text": "Lavender",
"auto_select_fill": "Lavender"
},
"mouse_follows_focus": false,
"monitors": [
{
"workspaces": [
{
"name": "1",
"layout": "BSP"
},
{
"name": "2",
"layout": "BSP"
},
{
"name": "3",
"layout": "BSP"
},
{
"name": "4",
"layout": "BSP"
}
]
},
{
"workspaces": [
{
"name": "5",
"layout": "BSP"
},
{
"name": "6",
"layout": "BSP"
},
{
"name": "7",
"layout": "BSP"
}
]
},
{
"workspaces": [
{
"name": "8",
"layout": "BSP"
},
{
"name": "9",
"layout": "BSP"
},
{
"name": "0",
"layout": "BSP"
}
]
}
],
"resize_delta": 100,
"floating_applications": [],
"manage_rules": [],
"app_specific_configuration_path": [
"$Env:KOMOREBI_CONFIG_HOME/applications.json",
"$Env:KOMOREBI_CONFIG_HOME/overwritten-applications.json"
]
}Hotkey Configuration
#Requires AutoHotkey v2.0.2
#SingleInstance Force
; AHK Modifier Keys with Short Symbols:
; ^ = CTRL
; + = SHIFT
; ! = ALT
; # = WINDOWS
Komorebic(cmd) {
try {
RunWait("komorebic.exe " . cmd, , "Hide")
return
} catch Error as e {
MsgBox(e)
}
}
#Include ./Scripts/window.ahk
#Include ./Scripts/workspace.ahk
#Include ./Scripts/modes.ahk
; --------------------------------------------------
; Komorebi Management
; --------------------------------------------------
; Reload Configuration and AHK Script
#^r:: {
Komorebic("reload-configuration")
ToolTip("Reloaded")
}
; Pause/Unpause Komorebi
#^p:: Komorebic("toggle-pause")
; Stop and exit Komorebi
#^e:: Komorebic("stop --ahk --bar")
; Spawn new terminal with Warp
#Enter:: Run("C:\Program Files\Warp\warp.exe")modes
#Requires AutoHotkey v2.0
/**
* Simple input mode for komorebi commands
*
* @param actions Actions keys as prop and actions as value
* @param prompt Prompt text to display (optional)
* @param exitOnAction Exit after action key is pressed once (optional)
*/
EnterMode(actions, prompt := "", exitOnAction := false) {
/**@type {Gui} */
static promptGui := "" ; Use static instead of local
if (prompt) {
promptGui := Gui("+ToolWindow -Caption AlwaysOnTop")
promptGui.SetFont("s24", "Segoe UI")
promptGui.Add("Text", "y12", prompt)
promptGui.Show("AutoSize Center NA")
}
loop {
ih := InputHook("M", "{Escape}{Enter}")
ih.KeyOpt("{All}", "S")
for key, _ in actions {
ih.KeyOpt("{" . key . "}", "E")
}
ih.Start()
ih.Wait()
if (actions.Has(ih.EndKey)) {
Komorebic(actions[ih.EndKey])
}
if (exitOnAction || ih.EndKey == "Enter" || ih.EndKey == "Escape") {
promptGui.Hide()
break
} else {
continue
}
}
}
; --------------------------------------------------
; Mode Definitions
; --------------------------------------------------
; Monitor swap (auto-exit)
#!c:: EnterMode(Map(
"0", "swap-workspaces-with-monitor 0",
"1", "swap-workspaces-with-monitor 1",
"2", "swap-workspaces-with-monitor 2"
), "2 ◄ 0 ► 1", true)
; Window resize (continuous)
#!r:: EnterMode(Map(
"Left", "resize-axis horizontal decrease",
"Right", "resize-axis horizontal increase",
"Up", "resize-axis vertical increase",
"Down", "resize-axis vertical decrease"
), "Resize (←, ↑, ↓, →)", false)window
#Requires AutoHotkey v2.0
; --------------------------------------------------
; Window Management
; --------------------------------------------------
#q:: Komorebic("close") ; Close (X) focused window
#m:: Komorebic("minimize") ; Minimize focused window
#f:: Komorebic("toggle-maximize") ; Toggle fullscreen for focused window
#t:: Komorebic("toggle-float") ; Toggle floating for focused window
#c:: Komorebic("toggle-monocle") ; Toggle monocle for focused window (use maximum space)
; --------------------------------------------------
; Move Windows
; --------------------------------------------------
#left:: Komorebic("move left")
#right:: Komorebic("move right")
#up:: Komorebic("move up")
#down:: Komorebic("move down")
; --------------------------------------------------
; Focus into Windows
; --------------------------------------------------
#!left:: Komorebic("focus left")
#!right:: Komorebic("focus right")
#!up:: Komorebic("focus up")
#!down:: Komorebic("focus down")
; --------------------------------------------------
; Stacking Management
; --------------------------------------------------
#+s:: Komorebic("stack-all")
#+!s:: Komorebic("unstack-all")
#+x:: Komorebic("cycle-stack next")workspace
#Requires AutoHotkey v2.0
; --------------------------------------------------
; Workspace Switching
; --------------------------------------------------
#0:: Komorebic("focus-named-workspace 0")
#1:: Komorebic("focus-named-workspace 1")
#2:: Komorebic("focus-named-workspace 2")
#3:: Komorebic("focus-named-workspace 3")
#4:: Komorebic("focus-named-workspace 4")
#5:: Komorebic("focus-named-workspace 5")
#6:: Komorebic("focus-named-workspace 6")
#7:: Komorebic("focus-named-workspace 7")
#8:: Komorebic("focus-named-workspace 8")
#9:: Komorebic("focus-named-workspace 9")
#Numpad0:: Komorebic("focus-named-workspace 0")
#Numpad1:: Komorebic("focus-named-workspace 1")
#Numpad3:: Komorebic("focus-named-workspace 3")
#Numpad2:: Komorebic("focus-named-workspace 2")
#Numpad4:: Komorebic("focus-named-workspace 4")
#Numpad5:: Komorebic("focus-named-workspace 5")
#Numpad6:: Komorebic("focus-named-workspace 6")
#Numpad7:: Komorebic("focus-named-workspace 7")
#Numpad8:: Komorebic("focus-named-workspace 8")
#Numpad9:: Komorebic("focus-named-workspace 9")
#+Left:: Komorebic("cycle-workspace previous")
#+Right:: Komorebic("cycle-workspace next")
; --------------------------------------------------
; Move Windows to Workspaces
; --------------------------------------------------
#+1:: Komorebic("move-to-named-workspace 1")
#+2:: Komorebic("move-to-named-workspace 2")
#+3:: Komorebic("move-to-named-workspace 3")
#+4:: Komorebic("move-to-named-workspace 4")
#+5:: Komorebic("move-to-named-workspace 5")
#+6:: Komorebic("move-to-named-workspace 6")
#+7:: Komorebic("move-to-named-workspace 7")
#+8:: Komorebic("move-to-named-workspace 8")
#+9:: Komorebic("move-to-named-workspace 9")
#+0:: Komorebic("move-to-named-workspace 0")
;--------------------------------------------------
; Switch Between Last Used Workspaces (Alt+Tab)
; --------------------------------------------------
#d:: Komorebic("focus-last-workspace")
;--------------------------------------------------
; Move Workspaces to Monitors
; --------------------------------------------------
#space:: Komorebic("cycle-layout")
;--------------------------------------------------
; Move Workspaces to Monitors
; --------------------------------------------------
monitorOrder := [2, 0, 1] ; Left, Main, Right
currentPos := 2
#+a:: {
global currentPos, monitorOrder
currentPos := Mod(currentPos - 2 + monitorOrder.Length, monitorOrder.Length) + 1
Komorebic("move-workspace-to-monitor " monitorOrder[currentPos])
}
#+d:: {
global currentPos, monitorOrder
currentPos := Mod(currentPos, monitorOrder.Length) + 1
Komorebic("move-workspace-to-monitor " monitorOrder[currentPos])
}I split files to keep them organized.
Output of komorebic check
KOMOREBI_CONFIG_HOME detected: C:\Users\loeiks\loeiks\Configs\settings-sync\Apps\Komorebi
Looking for configuration files in C:\Users\loeiks\loeiks\Configs\settings-sync\Apps\Komorebi
Found komorebi.json; this file can be passed to the start command with the --config flag
No ~/.config/whkdrc found; you may not be able to control komorebi with your keyboard
Source: LGUG2Z/komorebi