Disable Caps Lock in Linux

21 October 2004   30 comments   Linux

Powered by Fusion×

I never use the Caps Lock button. Never. The only time I "use" it is when I accidently press it and start typing things in UPPERCASE. To disable it in Linux all you have to do is enter this on the command line:

$ xmodmap -e "remove lock = Caps_Lock"

To set this permanently, just stick the above line in your ~/.bashrc file (or /etc/bash.bashrc if you're root) so that it looks something like this:

if [ "$PS1" ]; then
   # Disables the bloody CapsLock button
   xmodmap -e "remove lock = Caps_Lock"
   ...
fi

Comments

Anonymous
must say that a i love your work. Once i tried to sleep with caps lock, but he was too tight i'm afraid.
Anonymous
Yeah, that is great for vi
marc
thank your for this wonderfull tip.
peter
Cool! That rotten CAPS LOCK was driving me crazy!
Roar Granerud
Wonderfull. Utterly wonderful. Now I only need to replace the physical button that I threw away yesterday. Death to CAPS LOCK
Caps Lock Sucks Goats
Thank you thank you thank you. This rocks big time. NO MORE LOOKING LIKE SOME POWERPOINT-USING MORON!
Anonymous
Many thanks for this tip...can't tell you how many times I've boned something up b/c of the friggin' capslock!
Peter
JUCHU!!!!! DRECKDING!!!! SCHEISSE CAPSLOCK ENDLICH WEG!!!
Mike
Awesome! Thanks.
RANDY J. ROGERS
WHY THE ATTACK ON CAPS-LOCK? I COMPOSE ALL MY CODE AND CORRESPONDENCE IN CAPS SO THAT I AM MORE EASILY UNDERSTOOD AND GET THE ATTENTION I DESERVE. I APPLIED YOUR SILLY PATCH AND NOW I MUST HOLD DOWN THE SHIFT KEY WHENEVER I TYPE. WHAT A PAIN!
Larry Phillips
I love it! After applying your line in my .bashrc, I went looking for a way to disable the Num Lock key, wanting it to always be in numeric mode. I could not find any way to do it, but I did discover that you can do the same thing by using a line something like..

xmodmap -e "keycode 79 = KP_7 KP_7"

This doesn't disable the Num_Lock, but it doesn't matter.

Use "xmodmap -pke" first, to check which keycodes are relevant.
Cedric
Thank you for this tip. I however wanted to let caps lock do the same as shift. This did the trick for me:
xmodmap -e "remove lock = Caps_Lock"
xmodmap -e "add shift = Caps_Lock"

I've linked to this page from my homepage:
http://home.tiscali.nl/cedric/Linux/Software/linux-trics/linuxtricsindex.html
NicoLarve
Just G.R.E.A.T. !
... As I used to remove the caps lock keys on my keyboards !
I can now restaure them to their original places !
Nick Ring
Good work!

Alternatively, for the vi/vim users, turn your Caps Lock into an Escape key. Now you can switch modes without any stretching off the home row.

Add the following to ~/.Xmodmap

remove Lock = Caps_Lock
keysym Caps_Lock = Escape

and the following to ~/.bashrc

if [ "$PS1" ]; then
xmodmap ~/.Xmodmap
...
fi
buccia
edit xinitrc not bashrc. no need for checks there
hosiawak
For Emacs's users: it's better to swap CTRL with Caps Lock, to do this, just put:

Option "XkbOptions" "ctrl:swapcaps"

inside Section "InputDevice" of your xorg.conf
InYourBase
If you use KDE, go to Control Center-> Regional & Accessibility-> Keyboard Layout-> xkb options, click "Enable xkb options" and there are some options under "Ctrl key position"
Alf
Thanks InYourBase for the KDE tip!
I am xmodmap aware, but KDE supercedes XModmap modifications, and I would never haved found these options by myself.
You made my day :-)
Anonymous
So cool! So nice to get rid of the blasted caps lock (especially for someone like me who cannot type (blindly) and hence cannot see what (s)he's typing. So nice :-)
Anonymous
And it carry's over to my rdesktopped Windows window. So much value for so little work :-)
p
I used to be removing the bloody CL key from all keyboards that I worked on manually, but that is not possible on laptops. Now this trick saves my day! Thanks!
KG
Ugh - thank you. My Eee PC laptop keyboard was damaged and the CL key was stuck on - this makes my laptop usable again until the new keyboard arrives...
kalpesh
wonderful abt Caps Lock...But I can you disable any key using same command.......
Peter Bengtsson
I actually don't know. I only just worked on the Caps Lock and haven't had a need to disable any other key. But I have thought about the Ctrl and Alt keys on the RIGHT because I never use them and perhaps they can be used for something else like to change language or something.
fred
First, thanks to Peter!

@kalpesh: maybe not exactly the answer you are looking for but I believe it's "yes, you can". No HowTo provided here, though... But combining "man xmodmap" and xev, you can probably do miracles with your keyboard ;-)
gavin
How do I toggle the capslock on and off? What I mean is, if I type `LS` or `CD` in bash, I'd like LS and CD alias to turn off caps and send `ls` or `cd` commands. I don't want to deactivate caps completely, I just want to be able to toggle it off when I forget I have it on.
Oz DiGennaro
I believe we need a new world-wide movement. The only possible use of caps lock is for lawyers-who-shout-to-make-it-seem-important and other misguideds. We will sneak into the keyboard factories and modify the production hardware to omit the caps lock key. A hole like a missing tooth. Finally we'll be able to stop all this effort disabling something that should NEVER have been there.
jody
I am also an intense hater of CapsLock,
and was happy to find your excellent tip, which has worked well so far. But on my new Installation, whenever i open a new terminal (Ctrl-Alt-T) from an open xterm, i get a message like the following in the new window

xmodmap: please release the following keys within 2 seconds:
Control_L (keysym 0xffe3, keycode 37)
Shift_L (keysym 0xffe1, keycode 50)

before the fist prompt appears (BTW; i hadn't pressed any of those keys). This message does not appear when xterm is started from the menu. When i remove the xmodmap-command, this message does not occur. Does anybody know what this means?
JW
For people stumbling upon this post, 4 years later:

The problem "please release the following keys within 2 seconds:" happens when the xmodmap command is executed while the keys are held down. By adding the commands to ~/.bashrc, they are executed each time a terminal is opened, causing this error to appear each time.

In fact, you only want to run the xmodmap command once, when you log in. So, add it to ~/.bash_profile or ~/.profile instead (these are only run once)! Also make sure you don't include .profile from .bashrc (which I unfortunately did and spent much time figuring out...)
Colin
Yes you did: you've just told us you pressed Ctrl, and I'm guessing that you pressed Shift as well (rather than Alt) if you're in Gnome.
I get
t (keysym 0x74, keycode 28)
as well.
I don't know the answer yet, but it's clear what's going on.
Thank you for posting a comment

Your email will never ever be published


Related posts

Previous:
I'm back and awake! 19 October 2004
Next:
Time Machine Ballistics 24 October 2004
Related:
Overcomplicated password requirements on Oystercard.com 02 August 2004