The control key on keyboards was never made for my fingers. I am of the belief that it was never made for human fingers at all. When I use Emacs, or even the terminal which has some of the same keybindings for navigation, where holding down the control key is essential, my hands cramp up.
It would seem that I am not alone, as there are many guides on how to remap this online, at least for X11. I don't know anything about Wayland, Windows, MaxOS... And I don't care.
setxkbmap us -option ctrl:nocaps
The above command will change your layout the the US layout, and set your Caps Lock key to act as a control key. Wonderful! Problem solved, right?
No.
This only works if you are in an X session. As soon as you leave your session it no longer works, so you have to do it again when you enter a new X session. A simple fix for this is to add it to your .xinit or .xsession.
Of course, if you use a desktop environment, ignore all of this.
So that solves the X layout, but for me the issue was not having the Caps Lock act as a control key when I was using the TTY. It took me forever to figure out how to change it.
DISCLAIMER: I use Devuan, so this may or may not work on your system.
So, the solution to my problem was to edit the file:
/etc/default/keyboard
On my system, this file looks like this:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
When I finally learned how to read, I went through the man page and learned that it accepts the same options as setxkbmap. In other words, all I had to do was change the XKBOPTIONS variable to:
XKBOPTIONS="ctrl:nocaps"
And it worked! ... after rebooting.
As an added bonus, you can add the following to restart the X server when you press the control, alt, and backpace key:
XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"
I hope you found this useful.