Whenever I resume a Vim session (from another window/terminal), I have a habit of automatically pressing the (Escape) key to ensure I'm in Normal mode. However, every now and again, I have to use Vim on someone else's computer and muscle memory would cause me to press CapsLock instead of Escape. Then pressing 'h' moves the cursor all the way to the top of the screen instead of one space to the left, pressing 'j' joins the current line to the following one instead of moving the cursor, etc. Because I'm used to typing normal mode keys in quick succession, I've already entered 4 or 5 normal commands before I realise it's all going horribly wrong. I press 'u' a few times to undo the craziness but successive presses of 'U' only undoes the previous Undo action!
In the end, I retrained myself to use Ctrl-[ which isn't quite as convenient but does work on all platforms I've had to use.
caps+(any other key) mapped to ctrl-shift-command-option+that key(useful to bind to extra shortcuts in an app).
a single just caps lock press alone bound to escape.
and finally right shift + caps lock is bound to toggle caps lock on and off.
works pretty well for me for a long while now.
karabiner elements on macos lets you do all that with "complex modifications" though the config is a bit dumb to do manually as they expect you to download configs from the web.
A side benefit of this is that F5 is mapped to refresh for a lot of apps (Firefox, for one) so I can hit capslock to refresh a page.
But sometimes I hit the real Esc key out of habit :-)
My hate for the key came years before I thought about the possibility of remapping it. Similarly, I hate the F1, a key that when accidentally pressed on some windows machines inside programs like excel can steal the focus and leave the computer unusable until it loads the useless help sidebar (when all I wanted was hitting the F2 for editing a cell content).
You can:) https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_Windo...
If you don't have admin then you'll need to launch it every boot since you can't put it into the startup folder.
To get to the startup folder, open the start menu, right click on an application (might have to be a windows-included app, like Edge, instead of a 3rd party one), and do 'open in folder', then go up to the Start Menu folder if necessary and then into the startup folder. Google says the path of that is this, but I haven't verified:
Programs / links in there get autorun at boot :)
I haven't tried it but it appears there's a user-specific startup folder which might work without admin: C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
This is a bit older than my current bindings, but this does 3 useful bindings
CapsLock = Esc
Alt-J = Down Arrow
Alt-K = Up Arrow
this is super useful in non vim editors that support vim bindings, and the browser with vimium. The arrow keys are for where you get a dropdown list and don't want to touch your arrow keys. In Visual Studio where I use vim keybindings ( using VsVim ) a lot of refactorings / auto complete gives dropdown options and this gives an easy way to select them without leaving your homerow.