概要
私は基本的にMacBookをシャットダウンせずに使っています。また、内蔵のトラックパッドも気に入って、これをメインで利用しています。
ところが、長時間シャットダウンせずに使っていると、トラックパッドのスクロールやスワイプ、Misson Controlなどの操作がカクつくことがありました。
マウスのホイール操作や、キーボード操作には一切遅延はありません。
MacBookを再起動すれば直るのですが、根本的な原因がわからないままというのは気持ち悪かったので、腰を据えてこの問題の原因を調べてみました。
検証環境
- HW: MacBook Pro
- CPU: Apple M3
- RAM: 16GB
- ストレージ: 1TB
- OS: macOS Tahoe 26.5.2
結論
タグでネタバレしていますが、原因はKarabiner-Elementsでした。しばらくの間更新していなかったので、バージョンは16.1.0でした。
調べたところ、Karabiner-Elementsのリポジトリに、2026年の8月に同じ症状を報告しているIssueがあったみたいです。
なお、この問題は2026年8月30日にリリースされたver 16.2.0で修正されている可能性が高いです。
対処法
brew update karabiner-elementsで更新と再起動を同時に行ったところ、不具合は解決しました。
ちょっとだけ技術的な話
Karabiner-Elementsは、Apple Trackpadを含むポインティングデバイスの入力を監視するために、macOSが提供するCGEventTapという仕組みを利用しています。
この仕組みを使うと、特定の入力イベントが発生したときにcallbackを実行したり、イベントを監視・変更・破棄したりできます。
今回の不具合の直接的な原因は、Karabiner-Elementsが処理を走らせるために作ったフックが、何らかの原因で破棄されないまま、新しいフックが再生成されてしまったことです。
要は購読したイベントの購読解除ができないまま、新しく同じイベントに対して購読処理が走ってしまったということです。
その結果、1回の入力に対して、残留した大量のフックを処理するためのオーバーヘッドが発生し、入力がカクつくようになった、というわけですね。