[Mac] 日本語入力中にマウスやトラックボール、余計なキーの挙動に振り回されないようにする [Karabiner]
Keyball44 を使い始め、そして Keyball44ish になってからも、どうしても対処できない課題が一つありました。
自動マウスレイヤー問題です。
他にも、トラックボール右横のキーに手のひらが触れてしまう問題もありますが、ここはQMKキーの設定でどうにでもなるでしょう。しかし、トラックボールに関しては触れていなかったとしても発生する可能性があります。特に 34mm ボール利用時は 25mm ボールよりも繊細に関知する傾向にあります。ただでさえ大きいのに、ボタンを押しただけの揺れでも検知されるとはやってられません。
そこでしょっさんは考えました。
日本語入力中に限っては、トラックボールのありとあらゆるボタンを検知しなければ良いのでは 🤔
そんなことできるわけない。誰しもがそんな微妙な挙動を制御できるとは思っていなかったその時。いつものあいつがやってくれました。そう、Karabiner-Elements です🎉。
あるコトを組み合わせることで、実に簡単に制御できるのです。
組み合わせに必要なものは次の3つです。
ポインティングデバイス全てのボタン入力 (from.anf) は
日本語入力中 (input_source_if) に限って
無効化 (vk_none) する
このための Complex Modification ファイルを生成して Karabiner-Elements へと反映するだけです。
しょっさんは、次のように「disable_mouse.json」ファイルを準備して設定しています。
{
"title": "Disable Mouse Buttons for Keyball",
"rules": [
{
"description": "Disable mouse buttons while inputting Kanji (Rev.1)",
"manipulators": [
{
"type": "basic",
"from": {
"any": "pointing_button",
"modifiers": {
"optional": ["any"]
}
},
"to": [
{
"key_code": "vk_none"
}
],
"conditions": [
{
"type": "input_source_if",
"input_sources": [
{
"language": "^ja$"
}
]
}
]
}
]
}
]
}
この設定だけで、IME で日本語モードにしている最中はマウスのボタン全ての反応を無効化できます。従って、もしトラックボールに手のひらが触れてしまって自動マウスレイヤーに機能が働いてしまったとしても予測不能な挙動になることはありません。安心して日本語入力に集中できます。快適そのものです。
人は、どんなに気をつけていてもミスをします。性質上そういうものです。ですから、まちがった動作を引き起こさないように、その機能を停止してしまうことでミスを減らすことができます。
リスク回避策としては上出来でした。嬉しい。
ちなみになんですが。このトラックボール問題の次に頻出する「右下のキーに手のひらが当たってしまって、日本語入力の挙動や、普段の操作に影響する問題」について、しょっさんは次のように解決しています。
Tap 時には "ignore" させてキーを反応させず、Hold したときのみ特定のレイヤー操作。とする。
ふいにどうしても押してしまってだいなしにするキーは、このように無効化してしまうが正解です。うまく割り当てましょう。QMK バンザイ。
この記事は、安定した日本語入力が可能となった #Keyball44 と #Keyball44ish を #テンティング して書きました