Vim Wayland users: how do you bind CAPSLOCK to Escape?
Everything I read says it's a feature enabled in what ever compositor you choose, if your compositor supports it. Why isn't there a general purpose keybinding program like setxkbmap? Does it just not exist yet or must it be built into the compositor?
I've read [this stackexchange thread] on something related but it all seems to be using XKB which should imply I'm using XWayland?
I just tried keyd a day or two ago and I'm super taken with it.
I just wanted to make Meta+Arrows generate PgUp/PgDn/Home/End because I've really grown to like laptops that do that with Fn (And I was playing with a hacked Chromebook whose keyboard does those soft with Ctrl+Shift+Arrow in software on ChromeOS so you've got to do something).
I'm quite impressed. The configuration format is sane, the daemon's runtime footprint is tiny, and it works across VTs, X, and Wayland because it's a virtual keyboard emitting events. The historical options have like...0-1 of those properties. Also the virtual keyboard takes bus ID 0fac:0ade, and who doesn't like a god hex pun.
Xremap, despite the name, supports both X and Wayland, and can be used to move modifier keys around. Configuration is done with YAML but is otherwise pretty easy. I personally use it for full Emacs keybind emulation.
Personally, I’ve used interception-tools with the caps2esc plugin. Not the easiest to set up but it allows me to press caps lock for esc and hold it for ctrl. It bypasses the lack of a programs being able to read keystrokes of other programs by intercepting them closer to the hardware level. You can also do lots of other cool stuff with it, but I’ve yet to find anything else that lets caps lock work as both esc and ctrl.
@sudo I actually don't know if this program exists in Wayland, but I use a startup script to bind the key:
#!/bin/sh
setxkbmap -option caps:escape
For whatever reason, after a system update with the package manager, sometimes I need to rerun the script. It's part of my update process, at the end of it.