26

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 ?

  • 2
    This really is one of the worst "features" ever. – Carl Nov 9 '15 at 7:22
  • 1
    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
  • 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
  • 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.

| improve this answer | |
  • 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
  • 1
    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
7

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

(edit: although just at this moment there's a bug to do with it in versions >= 12, so stick to <= 11.6)

https://github.com/tekezo/Karabiner-Elements#readme
https://pqrs.org/latest/karabiner-elements-latest.dmg
https://pqrs.org/osx/karabiner/

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.

| improve this answer | |
  • 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
  • I'm not sure I agree that things need always to be eventually rewritten, but that's kind of another matter. This, like so many things added to things that already existed, is (theoretically) helpful to the inept and an obnoxious punishment to the adept. – Jan Kyu Peblik May 18 '18 at 20:11
  • Wow, your advice solved the problem. Thank you for this answer, really saved tons of time for me. – Denialos May 30 '18 at 7:29
4

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 a different problem: if you hold down a key to repeat it (such as delete) then the repeat delay is extremely slow.

Tested on macOS 10.14.4.

| improve this answer | |
  • Incredible... this worked even better than the suggestion at the top. (They both improve it for some whacky reason) – Angelo Sep 9 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 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 at 18:18
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/

| improve this answer | |
  • 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.

| improve this answer | |
  • 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.

| improve this answer | |
  • 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.”
| improve this answer | |
  • 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

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.