How can I remap the Caps Lock key in Windows or OS X? Is there, for example, some way to map caps lock to a key combination like Alt+Tab on Windows or +Tab on OS X?


  • 21
  • 2
    CapsLock might be the most useless key nowadays. '[Lenovo Vice-President David] Hill called “Caps Lock” a frustrating hangover from typewriter days, a key that can introduce garble, emulate shouting or foil password entries without the user noticing.', insidetech.com/news/articles/…
    – VolkerK
    Jul 20, 2009 at 9:42
  • 1
    Unbelievable that four years have gone by, and Windows STILL does not have a built-in way to permanently disable Caps Lock and Num Lock. Dec 16, 2013 at 1:00
  • This question really is two questions in one. It would have been better to have one question for Windows, and one question for macOS.
    – Flimm
    May 17, 2022 at 9:51

10 Answers 10


You need Autohotkey and this script:

;Deactive CapsLock key 

Autohotkey is THE most powerful way to do this sort of thing on a WIndows PC. Also see this page for more details on re-mapping CAPS,

  • Very nice, thank you! As soon as I have time I'll look into it.
    – splattne
    Jul 15, 2009 at 14:40
  • 3
    Was coming to suggest the same thing. I've remapped CapsLock to Escape to aid in Vim editing :D
    – Andy
    Jul 18, 2009 at 11:37
  • I've remapped Caps to LCtrl. It was a lot more natural for my hand go to the left that turn -60degres and extend the little finger to grab the LCtrl key. After months of this change the pain that i was felling to doing that repetitive movement was gone completely
    – mjsr
    Aug 14, 2011 at 16:57
  • This does not work with my japoanese keyboard. Instead, the CapsLock key gets replaced by the 半角/全角 key.
    – wip
    Jun 28, 2013 at 2:38
  • @wil: on Japanese keyboard, pressing shift+Capslock will do normal Capslock function
    – phuclv
    Oct 7, 2013 at 5:23

I've used SharpKeys (for windows) to remap CapsLock to ESC.

Works great for vim. VI-style editing really shines if you can keep your fingers near the home row at all times.

  • This is the best tool I have come across in over 6 years of disabling the caps-lock key, mapping my IBM Model M's right ALT key to the Windows key, etc. It simply records to the registry the necessary changes, but has a nice interface to facilitate that effort. And it isn't installed as an app, it is a simple utility. Jun 19, 2010 at 4:26
  • Too bad Windows-7 is not supported.
    – WilliamKF
    Apr 15, 2011 at 4:21
  • @WilliamKF: I am using SharpKeys on Windows 7. It works fine.
    – wcoenen
    Apr 15, 2011 at 8:14
  • @WilliamKF: I'm also using SharpKeys on Win7. Chek that you execute it with administrative permissions.
    – mjsr
    Aug 14, 2011 at 17:00
  • Even better is mapping CapsLock to Ctrl. Ctrl+[ is the same as escape and now you have an easier to reach Ctrl for other key combinations. Oct 15, 2014 at 19:25

Here's how to swap the Caps Lock key with left Ctrl:


  1. Click Start > Run
  2. Type "regedit"
  3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
  4. While Keyboard Layout has focus, go to Edit > New > Binary Value
  5. Enter "Scancode Map" as the name
  6. Enter the following as the Data:

    0000: 00 00 00 00 00 00 00 00
    0008: 03 00 00 00 3A 00 1D 00
    0010: 1D 00 3A 00 00 00 00 00
  7. Exit the Registry Editor

  8. Log out and log back into Windows


  1. Create a file in your home directory called .xmodmap if it doesn't already exist
  2. Paste the following lines into the file:

    remove Lock = Caps_Lock
    remove Control = Control_L
    keysym Control_L = Caps_Lock
    keysym Caps_Lock = Control_L
    add Lock = Caps_Lock
    add Control = Control_L
  3. Add the following line into ~/.bash_profile

    xmodmap ~/.xmodmap


  • It should be noted that most graphical environments on Linux offer a way to set the caps lock key behavior in whatever keyboard configuration tool it offers. It can also be modified in the standard keymap for the console.
    – greyfade
    Dec 27, 2011 at 23:45
  • Excellent. This was what I was looking for and I didn't find the solution with MSKLC. Thanks a bunch (and +1 of course). Dec 24, 2012 at 13:10
  • hey, could you please answer me the esc key code? I want to swap Caps with Esc key.
    – MaikoID
    Jul 20, 2017 at 17:15

on Mac: You can reassign the caps lock key under "System Prefs" -> "Keyboard & Mouse" -> "Special Keys".

i assigned it to CTRL

  • 1
    On Snow Leopard, it's "System Prefs" -> "Keyboard" -> "Modifier Keys". Nov 1, 2009 at 21:22
  • 3
    This is so damn simple, why do we need an app for this on Windows?
    – user36099
    Jul 6, 2011 at 14:01
  • @WTP Better yet, for proper remapping (rather than AutoHotkey-esque macros) you need admin rights as well as of Windows 7. Begging IT in a corporate environment for that doesn't seem to be going over well for me.
    – brymck
    Jul 12, 2012 at 5:09

You can use SharpKeys to disable the functionality of any key. For a detailed guide, you can check out Map Any Key to Any Key on Windows XP / Vista.

Aditionally, Lifehacker has a really good guide called NumLocker Disables the Caps Lock Key on how to remap or disable it entirely.

  • Thanks for the SharpKeys link! Sadly, there seems no way to map a key to a combination of keys in the program (I read the FAQ).
    – splattne
    Jul 15, 2009 at 13:07
  • @splattne for map a combination use Autohotkey. It is extremely simple to do it, for example: CapsLock:: SendInput !{Tab}, it will send Alt Tab when you press the Caps
    – mjsr
    Aug 14, 2011 at 17:02
  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. Dec 18, 2012 at 17:14

I use Billy Mays Caps Lock. Now whenever I accidentally hit the Caps Lock key instead of getting frustrated I hear a quick Billy Mays pitch, which always puts a smile on my face.


SysInternals' Ctrl2Cap will work on older Win machines, too.


On Mac I can recommend using KeyRemap4MacBook. Or PcKeyboardHack which has a slightly different focus. I use both in combination without any problems.

The problem is, there is no out of the box solution built in to Mac OSX so you could assign CAPS LOCK to ESC (which is essential for Vi/Vim). The second problem with other tools is that they don't disable the green LED on the Caps-Lock Key.

PcKeyboardHack is related to the ESC-mapping, but every mapping is possible. KeyRemap4MacBook directly allows to map to a different function key. For sure every mapping you like is possible So for example on Mac I have mapped the right -Key to ctrl (what comes in handy when you are accustomed to eclipse-like autocompletion on Windows)

  • 1
    I just started using KeyRemap4MacBook this morning, and I love it. I have caps lock set to both esc and ctrl. It's esc when it's the only key being pressed, and it switches to ctrl if I press any other keys.
    – Dean
    Oct 18, 2013 at 5:51
  • @Dean glad to hear about it!
    – Marschal
    Oct 18, 2013 at 7:37
  • 1
    FYI: KeyRemap4MacBook has been rebranded to Karabiner and even supports Yosemite (OS X 10.10)! pqrs.org/osx/karabiner/index.html.en
    – SaxDaddy
    Jul 29, 2014 at 0:56

Swapping it with a different modifier key (I like Ctrl) is supported by Mac OS:

keyboard control panel -> modifier keys

As Marchal said, on OS X you can use PCKeyboardHack to change caps lock to another key like F19:

You can map the key like F19 to a more complex key combination by adding a setting like this to private.xml in KeyRemap4MacBook:

<autogen>__KeyToKey__ KeyCode::F19, KeyCode::CONTROL_L, ModifierFlag::CONTROL_L |
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L</autogen>

If the caps lock light on your keyboard does not get disabled, try enabling the "Pass-Through caps lock LED status" setting in KeyRemap4MacBook.

This maps F19 to control when held and to escape when pressed:

<autogen>__KeyOverlaidModifier__ KeyCode::F19, KeyCode::CONTROL_L, KeyCode::ESCAPE</autogen>

You can also map F19 to an extra modifier key that can be used to for example activate applications:

  <autogen>__KeyToKey__ KeyCode::F19, KeyCode::VK_MODIFIER_EXTRA1</autogen>
  <autogen>__KeyToKey__ KeyCode::S, ModifierFlag::EXTRA1,

See http://lri.me/keyremap4macbook.html for more information about using KeyRemap4MacBook.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .