Question: 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 ?

Answer: 
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.

```lua
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/>
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](https://pqrs.org/osx/karabiner/seil.html.en) and [Karabiner](https://pqrs.org/osx/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.”