I will just add a comment on an aspect of using emacs that no one else mentioned: (1) I find that I must bind caps-lock to control, and (2) as far as I can tell, no operating system does this in a way that really works besides OSX. So now I am stuck using OSX because I use emacs. When I use a GNU/Linux machine, I do it by ssh-ing in over the network from an OSX machine. I think you may find this to be something you have to deal with as well.
> as far as I can tell, no operating system does this in a way that really works besides OSX
AFAIK this is an easy setting in desktop environments such as Cosmic, Gnome, and KDE. But I've been using keyd on Linux distros for a while:
https://github.com/rvaiya/keyd#quickstart
Using the config in the above example results in Caps Lock acting as Esc if used on its own or as Ctrl if it's held down.
Not sure if it counts as "really works", but on Windows with PowerToys you can enable Keyboard Manager and 'Remap a key'. (Might want to remap right-Ctrl to CapsLock, in case it turns CapsLock on.) There's also old Registry hacks to do the same thing.
Get a kinesis advantage, you won’t regret it.
> I must bind caps-lock to control, and […] no operating system does this in a way that really works besides OSX.
What? This has worked for me in X11 for at least two years now:
(If you still need a Caps Lock key, there’s -option ctrl:swapcaps)Yes, and that option is in most desktop environments' keyboard configuration dialogs.
I always use "two shift keys activates caps".