Disable Caps Lock Key in Linux

by on October 22, 2008 · 9 comments· LAST UPDATED October 22, 2008

in , ,

Q. How do I deactivate caps lock key in Linux permanently?

A. You need to use the xmodmap command. It is used to edit and display the keyboard modifier map and keymap table that are used by client applications to convert event keycodes into keysyms. It is usually run from the user’s session startup script to configure the keyboard according to personal tastes.

You can also use the setxkbmap command, which maps the keyboard to use the layout determined by the options specified on the command line.

xmodmap command to turn off caps key

To turn off caps lock key, enter:
$ xmodmap -e "remove lock = Caps_Lock"
Now caps key is disabled. To enable caps key, enter:
$ xmodmap -e "add lock = Caps_Lock"
Add following code to your shell startup file ~/.bash_profile or ~/.profile file:
$ echo 'xmodmap -e "remove lock = Caps_Lock"' >> ~/.bash_profile

setxkbmap command to turn off caps locks key

To turn off caps lock key, enter:
$ setxkbmap -option ctrl:nocaps
To reset caps lock. enter:
$ setxkbmap -option

Further readings:

{ 9 comments… read them below or add one }

1 housetier October 22, 2008 at 2:35 pm

I have switched ESC and CAPS_LOCK, which makes vim much easier to use.

Reply

2 Gokdeniz Karadag October 22, 2008 at 5:51 pm

Making caps lock an additional control key is ver useful also. It makes typing shortcuts a lot easier.

Reply

3 lowly worm March 6, 2009 at 7:33 pm

I want to disable a bunch of keys because my daughter accidently presses them when she is playing a game on her “Aspire one”. The method worked for many keys but not all.

For example to disable the tux-key (the linux equivilent to the windows-key)
xev doesn’t show a keycode when i press the tux key
infact i don’t see any Keypress event, just a lot of other events.

———————————————————————————
[user@localhost ~]$ xmodmap -pm
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x6d)
mod1 Alt_L (0x40), Meta_L (0x9c)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x7f), Hyper_L (0x80)
mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x71), ISO_Level3_Shift (0x7c)
———————————————————————————————

I thought it might be possible to just remove the mapping for “mod4 Super_L”, but even that did not work.

Any tips on this, most welcome.
//The Lowley Worm

Reply

4 Jasleen May 10, 2009 at 1:19 pm

I think, that the command

xmodmap -e “remove lock = Caps_Lock”

only works if your caps lock is off

Reply

5 Pradeep August 23, 2009 at 1:42 pm

How Can I Disable the Keyboard in RHEL-4.
to Aovid the Input In My Absens.
Pradeep

Reply

6 Tucker October 22, 2009 at 10:14 pm

@Pradeep

Maybe try lock screen?

Reply

7 Ton August 18, 2012 at 6:41 am

xmodmap -e “remove lock = Caps_Lock” is my favorite command to add as ´startup application´ :)

Reply

8 Hans Linkels October 15, 2012 at 8:18 pm

xmodmap -e “remove lock = Caps_Lock” works as a charm, but when you replug the USB keyboard caps lock is functional again.
I use this to discourage my son of typing caps-lock-on-character-caps-lock-off. This sounds very unusual, yet I discovered there are more people who have developed this unwanted habit.
As it seems, I should link the xmodmap command to a udev event.

jlinkels

Reply

9 Pencioner January 23, 2013 at 9:18 am

Hey you saved me a reboot :) Well, i sometimes getting into trouble with x11vnc with my X keyboard configuration (grp:ctrl_shift_toggle,grp:shift_caps_switch,grp_led:num) – leaving me with LOCKED CAPS when i just pushed it to switch back to english when connected via VNC. Btw, running ‘setxkbmap -option’ to reset this behaviour to default, turn off annoying caps lock, and then setxkbmap -option with the above line from xorg.conf resolves the deal. and this happened few times before – i needed reboot. Thank You ;)

Reply

Leave a Comment

Tagged as: , , , , , , , ,

Previous Faq:

Next Faq: