29

On my MacPro there is one issue (and guys from Apple think this is feature...) that annoys me very much: there is a time delay between CapsLock switching. I used to do that fast. If I go to preferences and reassign caps lock to any other button and then back it works OK then, so it is not a hardware problem.

Is there any way to fix that ?

5
  • 5
    This really is one of the worst "features" ever. – Carl Nov 9 '15 at 7:22
  • 2
    Yeah this exemplifies the phrase "Sometimes a feature is a bug... and vice versa" – Tomachi Sep 23 '18 at 19:00
  • Wow that is an insanely great feature - and I never even noticed I had it! That explains why I never ever make that "oops - hit cAPS LOCK" mistake when typing quickly! I guess this feeling of enlightenment is the same as what some Mac users feel once they realize that the Force Touch trackpad actually clicks back at you (youtube.com/watch?v=x3B3bHt8ya8) – conny Sep 26 '18 at 13:24
  • 1
    FYI here's the official support article about this feature: web.archive.org/web/20150115033359/http://support.apple.com/… – Sam Apr 26 '19 at 7:18
  • 1
    I don't understand people like "conny". I know they must exist as Apple's claimed reason for this "feature" is that it reduced the number of accidentally-activated caps lock. But HOW does someone ACCIDENTALLY hit caps lock? I type literally 145 wpm (tested on typeracer) and have literally never in my life encountered this problem. The A is right under your pinky and isn't a moving target. There should be no way to accidentally hit caps lock. This "feature" is catered towards the bottom end of the population who doesn't know how to type, and alienates those of us who actually CAN type. – pete Oct 1 '19 at 20:21
33

I was running the latest firmware on an Apple 2007 Aluminum Wireless Keyboard, and MacBook Pro Keyboard, but the issue still persisted. However, oddly this fixed it:

  1. Open System Preferences
  2. Click Keyboard
  3. Click Modifier Keys...
  4. Select your keyboard from the Select keyboard: list.
  5. Set the Caps Lock Key: to No Action.
  6. Press OK.
  7. Ensure your Caps Lock no longer works on your keyboard.
  8. Click Modifier Keys... again.
  9. Set the Caps Lock Key: to Caps Lock.
  10. Press OK.

Now, the Caps Lock key works instantly for that keyboard. Repeat as-needed for each keyboard you own.

9
  • Brilliant! This worked for me. I was using Caps Lock as an escape key for Vim. I'd done what you described for my "Internal Keyboard" but I hadn't noticed that I needed to repeat the process for the external keyboard. Once I'd set no action for caps lock also on the external keyboard, my problems disappeared. – Jeromy Anglim Oct 23 '12 at 2:02
  • 2
    this doesn't work on high sierra 10.13.4. if you disable the caps lock on a usb keyboard and put it back on, it still has the delay. – Denialos May 30 '18 at 5:35
  • 2
    ok, the only solution that for me (using a cheap ISO keyboard): github.com/tekezo/Karabiner-Elements/issues/1423 Install Kabariner Elements 11.6.0 where intially the CapsLock delay is set 0. Works great and there's no more headache about this ridiculous "feature". – Denialos May 30 '18 at 7:41
  • 3
    It is not working. I'm using Mojave. – wonsuc Feb 2 '19 at 6:29
  • 1
    Not working for me on macOS 10.14.4 with Logitech K120 USB keyboard. – Sam Apr 26 '19 at 5:10
10

If you install Karabiner-Elements, it defaults to zeroing out macOS's obnoxious caps lock delay.

The version you need to install depends on your macOS version.

macOS 10.15.6 and above

Download and install Karabiner-Elements 13.3.0 or higher.

macOS 10.11 through 10.15.5

Download and install Karabiner-Elements 11.6.0.

(Note that Karabiner-Elements 12.0.0 - 13.1.0 re-added the Caps Lock delay, and 13.3.0 isn't available on older OS versions.)


This is the only solution I know of that both works on 10.12 and requires nothing more than installing & running an application without any special steps or reconfigurations.

15
  • 1
    Thank you, worked a charm. I had tried 3 different Dell keyboards, and just thought the caps lock on all Dell keyboards was rubbish, until I noticed them working fine on a Windows PC. This is just the usual presumptuous idealistic crap that Apple does all the time, trying to solve problems that don't exist, and creating problems in the process. – TomWardrop Aug 18 '17 at 3:42
  • 1
    @TomWardrop agreed (& doubly so, as the Karabiner guys had to apparently do something of a rewrite just to get things to happen with newer versions of the OS) – Jan Kyu Peblik Aug 24 '17 at 3:38
  • 1
    @JanKyuPeblik I agree perfectly, that the caps lock delay is a non-feature ("bug") solving a problem that wasn't one. But rewriting a core API is something that should happen from time to time, because no OS should stay 1980 forever, so there is no way around rewriting things from time to time. Albeit of course things should get better with a new API and not worse. – John Smith May 18 '18 at 8:35
  • 1
    Looks like the problem is fixed perfectly in Karabiner-Elements v13.3.0. I've tested and confirmed that there is no delay, the Caps Lock light still works, and it still works on the lock screen without getting stuck. Can you update your answer for this? Thanks to Matias Simone for spotting this. – Sam Mar 2 at 3:25
  • 1
    @Sam I don't have an up-to-date macOS handy anymore, so I can't easily try out all the information (including other solutions listed here since) at this time. Please edit this answer as you see fit. – Jan Kyu Peblik Mar 2 at 18:12
7

Just as an FYI, I found an alternative solution in another question:

  1. Go to System Preferences -> Accessibility -> Keyboard
  2. Check Enable Slow Keys
  3. Click Options
  4. Drag the Acceptance Delay slider all the way to the left
  5. Press OK

However, this fix introduces other problems, including:

  • If you hold down a key to repeat it (such as delete), then the repeat delay is extremely slow
  • Some keyboard shortcuts like Crtl+Shift+Tab may no longer work

Tested on macOS 10.14.4 and 10.15.7

3
  • Incredible... this worked even better than the suggestion at the top. (They both improve it for some whacky reason) – Angelo Sep 9 '20 at 0:12
  • I had an issue where this started triggering the accented characters when you hold down a letter key. Fix: Run: defaults write -g ApplePressAndHoldEnabled -bool false – Angelo Sep 9 '20 at 0:16
  • This solves the problem for me but unfortunately also breaks mute and play/pause on the touch bar: apple.stackexchange.com/a/316811/366881 – Sam Estep Oct 6 '20 at 18:18
2

If you want a simpler solution than Karabiner, I've written a very small, open source tool to fix exactly that.

https://github.com/gkpln3/CapsLockNoDelay

5
  • Thanks so much for building this! I just tried it out, and I'm not sure if it's starting up properly. I followed the steps in your readme file and also got past the Mac trying to stop me from opening it because it couldn't scan it or something. But when I go to Activity Monitor, then I can't see it running when I look for a process starting with "Caps". I'm also still getting the caps lock delay. Is there somewhere I can look at logs for the app? Or I wonder if something on my Mac is blocking it from starting? – Sam Dec 2 '20 at 2:37
  • 1
    After checking my system log, it looks like the process was exiting with code 1. I checked your code and can see it also needs accessibility permission, so I went and manually added it to the Security/Accessibility list and granted access, and now it's working. After doing my test (which is just repeatedly pressing a then Caps Lock and repeating), it looks like it's fairly reliable but occasionally hiccups and doesn't work as expected. I'll keep using it and see how I go! – Sam Dec 2 '20 at 3:11
  • I've noticed that each time I turn Caps Lock on, then the Caps Lock light on my USB keyboard comes on, then turns off for a split second, then comes back on. I wonder if something else on the OS is fighting with your app? Or maybe the app is accidentally toggling it twice? – Sam Dec 2 '20 at 3:21
  • @Sam Yeah apparently the Big Sur introduced some changes which made it glitch sometimes 😅, I'm working on a fix :) – gkpln3 Dec 2 '20 at 9:10
  • @Sam I've just uploaded a new version that fixes this issue, along with adding support for Macs running Big Sur. – gkpln3 Dec 2 '20 at 13:14
1
  1. Download and install the following software
    • Karabiner
    • Hammerspoon
  2. Use Karabiner maps CapsLock key to F19.
  3. Edit init.lua under the path ~/.hammerspoon, paste the code below.
pressedF19 = function()
    hs.hid.capslock.toggle()
end

hs.hotkey.bind({}, 'F19', pressedF19, nil)

Then reload the hammerspoon config for changes to take effect.

See my blog here http://hellohtml5.com/2019/04/25/best-way-to-disable-capslock-delay-on-mac/

8
  • 1
    Nice work! I tried all the solutions here, and yours is the only one that works without side-effects. – Sam Apr 26 '19 at 7:27
  • I ended up moving hs.hid.capslock.toggle() into pressedF19 since this is more consistent with the default behaviour and is also how it works on Windows. – Sam Apr 26 '19 at 7:54
  • 1
    @Sam I have seen your suggestions on the code. I edited it accordingly. It's very nice. Thank you. – wukong Apr 29 '19 at 8:46
  • Unfortunately, I found a problem with this today. :( If I accidentally leave Caps Lock turned on when I lock my Mac, then I cannot turn it off on the login screen. – Sam May 2 '19 at 0:30
  • 1
    I did a quick test and unfortunately it looks like Hammerspoon can't intercept the Caps Lock key – Sam May 9 '19 at 0:05
0

Not really sure about this, but google found this. This was one of the suggestions, but it does not seem foolproof (or even close). There are more suggestions on the page.

  1. Go to System Preferences > Keyboard & Mouse > Keyboard. Click on Modifier Keys. In the window that opens, for the Caps Lock key, select "No Action"
  2. Install the "No CapsLock" script. Download at http://home2.btconnect.com/Taniwha/ (look near bottom of page)

In addition, if you hold down the key, even for a fraction of a second, it will go on automatically.

3
  • See revised answer. – soandos Aug 3 '11 at 19:53
  • 1
    this is the only viable solution I've found (through pain and tears): github.com/tekezo/Karabiner-Elements/issues/1423 – Denialos May 30 '18 at 7:40
  • 2
    Holding down for a fraction of a second is exactly what people are complaining about. It's really stupid. Imagine you had to hold down the "E" key for a fraction of a second to really indicate you actually wanted to type it. "Oh it's to prevent users from ACCIDENTALLY hitting the key". Bullshit; I type 145 wpm as measured on typeracer and have literally never in my life ACCIDENTALLY hit caps lock. OTOH my time is wasted typing constants and doing a double take thinking it was MY FAULT for missing the caps lock key, when actually it was Apple gaslighting me with their delay "feature". – pete Oct 1 '19 at 20:25
0

On Apple's discussion boards other's report that updating your keyboard's firmware can/will eliminate this delay.

Re: Delay problem with caps-lock

Apr 8, 2008 3:52 PM

It appears that the keyboard firmware update released today fixes this issue.

Get keyboard firmware(s) from Apple.

2
  • Any solution for Macbook Air keyboards on Windows? – Petrus Theron Feb 21 '13 at 22:00
  • I have this problem with a 2015 MacBook Pro - built in keyboard. There does not seem to be any keyboard firmware updates for it. The first answer - turn off caps lock then turn it on again works though. – Grynn Sep 1 '15 at 11:26
0

Originally the answer by Martin Steven worked for me. This was when I used OSX 10.9.

After upgrading to OSX Yosemite (10.10) it stopped working. I found another, essentially the same, solution documented here

http://sleepycow.org/2014/07/removing-the-caps-lock-delay-on-a-macbook/

It uses updated version of the apps (with different names) that work with 10.10.

As requested - quoting the relevant sections from the link

  1. Install Seil and Karabiner.
  2. Go to System Preferences > Keyboard > Modifier Keys and change “Caps Lock” to “No Action.”
  3. Using Seil, check “Change Caps Lock Key” and change the key code to 110. (Application Key)
  4. Go to Karabiner, and in the search box, enter “application key to capslock.” Under For PC Users > Change PC Application Key, check off “Application Key to CapsLock.”
2
  • Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change. – DavidPostill Jul 22 '15 at 9:47
  • Unfortunately, this solution isn't working for me in macOS 10.14.4 since I can't get Seil to work. – Sam Apr 26 '19 at 6:55
0

I had exactly the same problem, I could solve it by installing Karabiner-Elements and making the following modification :

  • select the Simple Modifications tab
  • add a new modification (Add Item)
  • and put from key caps_lock to key caps_lock

enter image description here

1
  • Nice find! Looks like Karabiner-Elements v13.3.0 fixes the problem out-of-the-box. Note that the remapping in your answer isn't actually needed; it still works without it. – Sam Mar 2 at 3:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.