40

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 ?

6
  • 12
    This really is one of the worst "features" ever.
    – Carl
    Nov 9, 2015 at 7:22
  • 2
    Yeah this exemplifies the phrase "Sometimes a feature is a bug... and vice versa"
    – Tomachi
    Sep 23, 2018 at 19:00
  • 1
    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, 2018 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, 2019 at 7:18
  • 4
    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, 2019 at 20:21

11 Answers 11

37

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
  • 4
    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, 2018 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, 2018 at 7:41
  • 5
    It is not working. I'm using Mojave.
    – wonsuc
    Feb 2, 2019 at 6:29
  • 1
    Not working for me on macOS 10.14.4 with Logitech K120 USB keyboard.
    – Sam
    Apr 26, 2019 at 5:10
  • 1
    no longer works
    – pete
    Oct 1, 2019 at 20:27
13

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

4
  • Incredible... this worked even better than the suggestion at the top. (They both improve it for some whacky reason)
    – Angelo
    Sep 9, 2020 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, 2020 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, 2020 at 18:18
  • What should be the Acceptance Delay? should I choose shortest?
    – alper
    Oct 20, 2022 at 11:18
13

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, 2017 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) Aug 24, 2017 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, 2018 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, 2021 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. Mar 2, 2021 at 18:12
4

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

8
  • 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, 2020 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, 2020 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, 2020 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, 2020 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, 2020 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, 2019 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, 2019 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, 2019 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, 2019 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, 2019 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, 2011 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, 2018 at 7:40
  • 3
    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, 2019 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? Feb 21, 2013 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, 2015 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, 2015 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, 2019 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, 2021 at 3:24
0

If you don't want to install Karabiner just for that, you can use brew install --cask capslocknodelay, it's nice lightweight and open-source tool GitHub.

Do not forget to enable it in the settings:

  1. System Preferences -> General -> Login Items, add CapsLockNoDelay.app to the list.

  2. System Preferences -> Security & Privacy -> Privacy -> Accessability -> Enable CapsLockNoDelay.app

  3. System Preferences -> Security & Privacy -> Input Monitoring -> Enable CapsLockNoDelay.app (if present).

-1

This happened on my new MacBook Air, I contacted Apple Support and these were the instructions that were given to me and WORKED:

Go to System Preferences > click Accessibility > click Keyboard > then click Hardware > Select Enable Slow Keys > then click Options > Drag the Acceptance Delay slider to set how long you want your Mac to wait before it responds after the key is pressed.

I hope this helps :)

1
  • This is exactly the same as the answer by @sam in 2019 : superuser.com/a/1429859/269373. Not sure why you were downvoted as there are many other duplicate answers to this question but perhaps it would be better as a comment.
    – lx07
    Sep 9, 2021 at 19:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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