Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aahung/Unshaky

A software attempt to address the "double key press" issue on Apple's butterfly keyboard [not actively maintained]
https://github.com/aahung/Unshaky

apple butterfly-keyboard debounce double-press keyboard keyboard-issue macbook macbook-air macbook-pro macbook12 macbookpro

Last synced: about 2 months ago
JSON representation

A software attempt to address the "double key press" issue on Apple's butterfly keyboard [not actively maintained]

Awesome Lists containing this project

README

        

# Unshaky Unshaky
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JLLGBFQKTTX9W&source=url) [![Github All Releases](https://img.shields.io/github/downloads/aahung/Unshaky/total.svg)](https://github.com/aahung/Unshaky/releases) [![Build Status](https://travis-ci.org/aahung/Unshaky.svg?branch=master)](https://travis-ci.org/aahung/Unshaky)

**PROJECT STATUS: Unshaky is in maintenance mode, and I will only work on bug fixes.**

----

**It seems on macOS 10.15.6, Unshaky no longer works unless by default, workaround: [issue #166](https://github.com/aahung/Unshaky/issues/166)**

Menubar

**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](#complaints-about-this-issue)" 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](https://github.com/aahung/Unshaky/issues). The image below illustrates how Unshaky works.

![How Unshaky works](README/how-unshaky-works.png)

[June 2018] Good news, Apple launched a [Keyboard Service Program for MacBook and MacBook Pro](https://www.apple.com/ca/support/keyboard-service-program-for-macbook-and-macbook-pro/), and go get your keyboard fixed, maybe temporarily.

[May 2019] Apple extends [the service program](https://www.apple.com/ca/support/keyboard-service-program-for-macbook-and-macbook-pro/) 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

- [Keyboard 'B' key double hit problem](https://www.ifixit.com/Answers/View/402016/Keyboard+%27B%27+key+double+hit+problem)
- [MacBook Pro 2016 Random Key Repeat Keyboard Issue](https://discussions.apple.com/thread/7840547)
- [MacBook Pro 13" 2016 Double Key Press](https://forums.macrumors.com/threads/macbook-pro-13-2016-double-key-press.2025843/)
- [1 key - 2 letters macbook pro 2016 and 2017](https://apple.stackexchange.com/questions/293523/1-key-2-letters-macbook-pro-2016-and-2017)
- [The new and improved MacBook keyboards have the same old problems](https://theoutline.com/post/6409/the-new-and-improved-macbook-keyboards-have-the-same-old-problems?zd=1&zi=4qyu5ngi)
- [Reddit: MBP 2018 15" Sticky Key Problem!](https://www.reddit.com/r/macbook/comments/9n8qkg/mbp_2018_15_sticky_key_problem/)
- [Reddit: My Experience with Macbook Pro 2018 Keyboard](https://www.reddit.com/r/macbook/comments/9n8hgi/my_experience_with_macbook_pro_2018_keyboard/)
- [Reddit: Anyone. with heir MBP 2018. keyboard. that. had. problems but is getting worse? Does a keyboard cover fix this?](https://www.reddit.com/r/macbookpro/comments/a1yul8/anyone_with_heir_mbp_2018_keyboard_that_had/)
- [Reddit: 2018 Known Keyboard Issue - repeating/sticky keys, silicone covers, compressed air](https://www.reddit.com/r/macbookpro/comments/a5jzyu/2018_known_keyboard_issue_repeatingsticky_keys/)
- [Apple Discussion: MacBook Pro 15" (2018) Keyboard "t" key repeating issue?](https://discussions.apple.com/thread/8536157) (55K have this question too on Feb 22, 2019)
- [Reddit: MacBook Air 2018 keyboard problem](https://www.reddit.com/r/macbookair/comments/ak9ptt/macbook_air_2018_keyboard_problem/)

## How-To (Video Walkthrough)

Click the image below to watch it on YouTube

[![How to install and setup Unshaky](https://img.youtube.com/vi/ppaeCBLCfu0/0.jpg)](http://www.youtube.com/watch?v=ppaeCBLCfu0 "How to install and setup Unshaky")

Can't watch by clicking the image above? [Download mp4 (13MB) file here](https://files.nestederror.cf/file/-public-/How%20to%20install%20and%20setup%20Unshaky.mp4)

## How-To

[Download Unshaky.app here](https://github.com/aahung/Unshaky/releases)

First, move the "Unshaky.app" to your "/Applications" folder.

### Grant Accessibility Permission

[**Why "Input Monitoring" is not enough in Catalina?**](https://github.com/aahung/Unshaky/issues/157#issuecomment-669409152)

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.

**Since macOS 10.15.6, also add Unshaky to Privacy (Tab) -> Input Monitoring (Left panel), see [issue #166](https://github.com/aahung/Unshaky/issues/166)**

![Grant Accessibility Permission](README/how-to-1.png)

### Launch at Startup (Optional)

Go to System Preferences -> Users & Groups -> Login Items (Tab) and add "Unshaky.app".

![Grant Accessibility Permission](README/how-to-2.png)

### 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?

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](https://github.com/aahung/Unshaky/wiki)

## Community Contributors

- Alexei Molinari (@al3xmill3r74) for v2 Unshaky icon Unshaky
- Hazar ([@hazarek](https://github.com/hazarek)) for v3 Unshaky icon Unshaky

### Localization

If you can help translate Unshaky into more languages, [open an issue here](https://github.com/aahung/Unshaky/issues/new/choose) 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.**

| Language | Contributors |
| -------- | ------------ |
| Chinese | [_sam](https://nestederror.com) |
| Japanese | forgazer, [HackingGate](https://github.com/HackingGate) |
| French | [xuesongTU](https://github.com/xuesongTU) |
| German | [Felix Grund](https://github.com/ataraxie) |
| Russian | [Alexey Khromets](https://github.com/akhromets) |
| Ukrainian | [Alexey Khromets](https://github.com/akhromets) |
| Turkish | [Hazar Ekinci](https://github.com/hazarek) |
| Korean | [Woosuk Park](https://github.com/readingsnail) |
| Portuguese (Portugal) | [Gonçalo Matos](https://github.com/GoncaloCdM) |
| Italian | [valepert](https://github.com/valepert), [Domenico Corvasce](https://github.com/domcorvasce), [Daniele Torelli](https://github.com/danieletorelli)
| Indonesian | [Elmo Tanu Miharja](https://github.com/elmotan95)
| Spanish (Latin America) | [jadraker](https://github.com/jadraker) |
| Dutch | [Siebrand Mazeland](https://github.com/siebrand), [Zandor Smith](https://github.com/Zandor300)
| Portuguese (Brazil) | [Délisson Junio](https://github.com/delissonjunio) |
| Norwegian | [Runar Skaare Tveiten](https://github.com/runar) |
| Czech | [Michal Zelinka](https://github.com/username0x0a) |
| Slovak | [Michal Zelinka](https://github.com/username0x0a) |
| Polish | [Blaze](https://github.com/blazeblazeblaze), [Artur Kondas](https://github.com/youshy), [xpctnc](https://github.com/xpctnc) |