For over a decade, I have been interested in disabling the damn CAPS LOCK key. I frequently press it accidentally and it is a continuing aggravation. Trying several methods, I found one that works and thought I would update the post and try to get the formatting correct.
CAPS LOCK KILLED SUCCESS!!
I stumbled upon the file /etc/default/keyboard. It reads:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL=pc105
XKBLAYOUT=us
XKBVARIANT=
XKBOPTIONS=
BACKSPACE=guess
Consulting the man page for keyboard reveals the following interesting information:
KEYBOARD(5)
Console-setup User's Manual
NAME
keyboard - keyboard configuration file
DESCRIPTION
The keyboard file describes the properties of the keyboard. It is read by setupcon(1) in order to configure the keyboard on the console. In Debian systems the default keyboard layout is described in /etc/default/keyboard and it is shared between X and the console.
The specification of the keyboard layout in the keyboard file is based on the XKB options XkbModel, XkbLayout, XkbVariant and XkbOptions. Unfortunately, there is little documentation how to use them. Description of all possible values for these options can be found in the file xorg.lst.
You might want to read “The XKB Configuration Guide” by Kamil Toman and Ivan U. Pascal:
http://www.xfree86.org/current/XKB-Config.html
Other possible readings are:
https://wiki.archlinux.org/index.php/X_KeyBoard_extension
http://www.charvolant.org/~doug/xkb/
The complete XKB-specification can be found on
http://xfree86.org/current/XKBproto.pdf
The file keyboard consists of variable settings in POSIX format:
VARIABLE=VALUE
Only one assignment is allowed per line. Comments (starting with '#') are also allowed.
A descriptions of options, other errata and some examples follow that.
Of interest to use are those associated with XKBOPTIONS and examples of that are given.
EXAMPLES
The following configuration will give you the standard US QWERTY layout us). The key will act as a compose key (compose:menu) and will act as third control key (ctrl:nocaps).
XKBLAYOUT=us
XKBVARIANT=
XKBOPTIONS=compose:menu,ctrl:nocaps
In the following configuration the right key (grp:toggle) will toggle between US QWERTY layout (us) and Greek (gr) layout. The option grp_led:scroll is ignored on the console but in X in means to use the ScrollLock keyboard led as indicator for the current layout (US or Greek).
XKBLAYOUT=us,gr
XKBVARIANT=
XKBOPTIONS=grp:toggle,grp_led:scroll
In the following configuration the + key combination will toggle grp:ctrl_shift_toggle) between French keyboard (fr) without dead keys (nodeadkeys) and British (gb) “Dvorak” (dvorak) keyboard.
The right key will be a compose-key (compose:rwin) and the right key will function as AltGr (lv3:lalt_switch).
XKBLAYOUT=fr,gb XKBVARIANT=nodeadkeys,dvorak XKBOPTIONS=grp:ctrl_shift_toggle,compose:rwin,lv3:ralt_switch
My goal is to disable the CAPSLOCK key and turn the left Windows key into a RETURN key. Perusing xorg.lst we find:
caps:none Caps Lock is disabled
lv3:enter_switch Enter on keypad
Therefore, in /etc/default/keyboard we enter:
XKBOPTIONS=caps:none,lwin:enter_switch
. . . and reboot. Your comments are always welcomed, especially other ways to kill the capslock key.
Comments