Creating a Hyper Key (i.e., remapping capslock to become an additional modifier key) is a game changer! I use Capslock [1] with Karabiner Elements on macOS.
If you're not into installing third-party tools, you can create your own hyper key by using a combination of the Shift, Control, Option, and Command keys† (Shift, Control, Meta, Super).
Because macOS uses Control+Option to activate the on-screen magnifying glass, I use Shift+Option+Command, which works well for my hand size.
I haven't found any macOS or third-party programs that use Shift+Option+Command for shortcuts yet, so there haven't been any conflicts.
Once you get your personal shortcuts set up in Apple → System Preferences → Keyboard → Shortcuts, it's really a major productivity boost.
†I think you can use Function now, too, since Preview uses it, but haven't tried it yet.
I use Karabiner Elements to make CapsLock either Escape (when tapped) or Control (when held / pressed with another key) - works great with a Kinesis Advantage:
I get this horrible bug with Karabiner where it just slams one of my CPU cores... I was actually planning to replace it because of that.
My current issue is that I can't have my macbook's keyboard use the system control keys while my external uses F keys. Like if I don't have the 'use f keys' option on in prefs, my external F1 and F2 become brightness keys...
That makes some logical sense to me though. If your keyboard layout is set up for a Apple keyboard where the function keys are actually OS specific keys, then it shouldn't matter if your keyboard has a F[1-9]+ printed on them or Apple symbols. The key will just do what it's mapped to do.
It's like expecting a DVORAK keyboard to work when the computer is still in QWERTY mode. There's just more matching overlap between keyboards with function keys vs Apple symbols.
System preferences => Keyboard prefs => Modifier keys
You can just remap caps lock to escape without getting fancy. I used to do the hyperkey stuff but it messes with my muscle memory when I'm not using my computer.
There's something to be said for keeping things as simple and close to default as possible.
I use Karabiner to move my symbols to my home row and arrow keys just above. When I'm programming, that means I rarely need to move my fingers off the home row.
[1] https://github.com/Vonng/Capslock