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.
Linux
A community for everything relating to the linux operating system
Also check out !linux_memes@programming.dev
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
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.
XKB config files work under sway without XWayland.
If you are using kde, then this feature is right in the settings menu. I have caps lock bound to compose. I dunno about other DE's.