Dismiss duplicate key hits on MacBook butterfly keyboards Unshaky tries to address the double key press issue on the butterfly keyboard (MacBook & MacBook Pro 2016 or later).
It seems on macOS 10.15.6, Unshaky no longer works unless by default, workaround: issue #166
- There is a small program, called Unshaky written on Swift. It fixed this issue for me. It lets you configure a timeout for each key to suppress duplicate keypresses. For instance, if the 'e' key is giving you trouble, you can configure the timeout for a longer duration and adjust for the best results.
- It seems on macOS 10.15.6, Unshaky no longer works unless by default, workaround: issue #166 Unshaky tries to address an issue on the butterfly keyboard (Macbook, Macbook Air 2018 & MacBook Pro 2016 and later): Double Key Press (See 'User complaints' below). Apple made it difficult to replace only the keyboard and it costs hundreds of dollars.
Unshaky tries to address an issue on the butterfly keyboard (Macbook, Macbook Air 2018 & MacBook Pro 2016 and later): Double Key Press (See 'User complaints' below).
Apple made it difficult to replace only the keyboard and it costs hundreds of dollars. Unshaky might save your keyboard by dismissing such 'second key hits' (any key presses that occur no later than x milliseconds after the previous effective one). I fixed my 'w' key with Unshaky, and if it does not work for you, open an issue here. The image below illustrates how Unshaky works.
[June 2018] Good news, Apple launched a Keyboard Service Program for MacBook and MacBook Pro, and go get your keyboard fixed, maybe temporarily.
[May 2019] Apple extends the service program to cover all MacBook (Air & Pro) with 3rd gen butterfly keyboards.
[May 2020] [The Verge: The saga of Apple’s bad butterfly MacBook keyboards is finally over](https://www.theverge.com/2020/5/4/21246223/macbook-keyboard-butterfly-magic-pro-apple-design).
Complaints about this issue
- Apple Discussion: MacBook Pro 15' (2018) Keyboard 't' key repeating issue? (55K have this question too on Feb 22, 2019)
How-To (Video Walkthrough)
Click the image below to watch it on YouTube
Can't watch by clicking the image above? Download mp4 (13MB) file here
How-To
First, move the 'Unshaky.app' to your '/Applications' folder.
Grant Accessibility Permission
Follow the instruction when you first open Unshaky. If the instruction does not work for you, go to System Preferences -> Security & Privacy -> Privacy (Tab) -> Accessibility (Left panel) and add 'Unshaky.app.' Make sure it is checked.
Grant Accessibility Permission
Launch at Startup (Optional)
Go to System Preferences -> Users & Groups -> Login Items (Tab) and add 'Unshaky.app'.
Configure delays for your defective keys
Click Unshaky icon in the menu bar and select 'Configure' to configure delays for the defective keys.
How to pick an appropriate delay?
Unshaky App
I don't think there is a universal delay value for all people. If you type very fast, you might want to have a shorter delay. I use 40 ms since I am a fast typer. With a long delay, I cannot type 'apple' because the second 'p' is likely to be blocked. Some users found 60 ms a sweet spot and some have no issue with 80 ms. My suggestion is to start with a short delay (like 40 ms) and gradually increase it.
For other FAQs, visit the Wiki
Community Contributors
- Alexei Molinari (@al3xmill3r74) for v2 Unshaky icon
- Hazar ([@hazarek](https://github.com/hazarek)) for v3 Unshaky icon
Localization
If you can help translate Unshaky into more languages, open an issue here so I can prepare related files for translation.
Your contributions are valuable and make Unshaky accessible to more users.
Big Thank You to these community contributors who provide translations.
Unshaky Github
Language | Contributors |
---|---|
Chinese | _sam |
Japanese | forgazer, HackingGate |
French | xuesongTU |
German | Felix Grund |
Russian | Alexey Khromets |
Ukrainian | Alexey Khromets |
Turkish | Hazar Ekinci |
Korean | Woosuk Park |
Portuguese (Portugal) | Gonçalo Matos |
Italian | valepert, Domenico Corvasce |
Indonesian | Elmo Tanu Miharja |
Spanish (Latin America) | jadraker |
Dutch | Siebrand Mazeland, Zandor Smith |
Portuguese (Brazil) | Délisson Junio |
Norwegian | Runar Skaare Tveiten |
Czech | Michal Zelinka |
Slovak | Michal Zelinka |
Polish | Blaze, Artur Kondas |