luv me tiling wm, luv me hotkey daemon, 'ate input lag - simple as.
recently i've been finding using my wm to be a real fucking drag, often taking upwards of a second to open to open terminals, switch desktops, windows etc. initially I thought the terminal being slow was just down to kitty having a high startup time, but running some benchmarks proved otherwise so i decided to look elsewhere, perhaps something to do with the m1 chip & rosetta?
nope, turns out this is down to my hotkey daemon, skhd, and how it actually works; by opening a shell, running a command, and then immediately closing:
alright, well how fast is my shell (fish) at opening?
~ hyperfine "$SHELL -c exit"
Benchmark #1: /opt/homebrew/bin/fish -c exit
Time (mean ± σ): 546.2 ms ± 5.1 ms [User: 417.9 ms, System: 143.9 ms]
Range (min … max): 540.8 ms … 557.3 ms 10 runs
damn... 546ms to actually start the shell & then run the hotkey, okay let's try good old bash
~ hyperfine "/bin/bash -c exit"
Benchmark #1: /bin/bash -c exit
Time (mean ± σ): 0.7 ms ± 0.7 ms [User: 0.3 ms, System: 0.3 ms]
Range (min … max): 0.3 ms … 20.5 ms 1177 runs
0.7ms, bussin - and for comparison zsh was about 2ms
okay so how do I get the speed?
open this file in your editor of choice
(your specific version may be different)
the simply add those two lines to set which shell to use, then re-install via
brew reinstall skhd & restart the daemon
brew services restart skhd
cannot describe how much of a difference 500ms makes when using on a daily basis - goes from basically unusable to a joy to work with