Macbookのバタフライキーボードの不具合はよく知られているが、それとは少し違うチャタリングのようなものが発生して困っていた。
M1Macを検討する前に何とかならないのかと思ってソフトウェア的に対策を行ったところ、現在は症状がなくなっているのでメモ。

Table of Contents

起こっていた症状

文字列単位で、重複して入力されてしまう。
例えば、以下のようにendl;の部分が二重に入力される。

[入力]
cout << endl;
[出力結果]
cout << endl;endl;

他にもペーストを1回したつもりが、2回行われることがしばしばあった。

発生機種

MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
OSはBig Sur 11.1 (Catalinaの頃から起こっていた)

発生しやすい条件

  • 高速に入力しているとき
  • ShiftキーやEnterキーが絡むとき
  • スリープから復帰したとき

その他のわかっていること

  • どのキーがダメとかはない
  • エディタの種類にかかわらず発生する
  • 外付けキーボードでも同様に発生する
  • 再起動後はしばらく調子がよくなるが、再発する
  • 環境設定からキーボードのリピート設定を調節しても効果なし

外付けキーボードでも発生するとなると原因はハードウェアではなさそうと考えて、公式の修理プログラム1はまだ受けていない。

対策

unshaky(githubに飛びます)というソフトウェアを使う。
設定は全キーで、推奨は40ms。遅延が気になるようなら調節すればOK。

参考ページではアイコンが古い?ようで、現在は蝶々みたいなやつに変わっているので注意。
img

このソフトウェアを有効にしてから1ヶ月ほど経ったが多重入力は起こっておらず、M1Macは買わずに済んでいる。
さらに不思議なことに、unshakyを無効化しても(いまのところ)多重入力が起こっていない。

また今回色々調べた中で、似た現象を別の方法で解決した方2を見つけたのでこちらも試してみるとよいかもしれない。