🖲️

Keyball44のマウスボタン配置を最適化する方法

2024/12/03に公開1

Keyball44はトラックボールを内蔵したキーボードで、キーボードから手を離さずにマウス操作が可能です。この記事では、Auto Mouse Layer (AML) の利用やキー割り当ての工夫を通じて、Keyball44でより快適なマウス操作を実現する方法を詳しく解説します。

マウスボタンのキー割り当て

Keyballには専用のマウスボタンはありません。マウスボタンの操作のため、キーボードのいずれかのキーにマウスボタンの機能を割り当てる必要があります。マウスボタンの割り当ての工夫は、Keyballで快適なマウス操作を実現するための重要なポイントで、これをどのようにするかはKeyballユーザーが割と悩むところだと思います。

私の場合は試行錯誤の末、最終的に

  • Auto Mouse Layer (AML)は使用しない
  • デフォルトレイヤでボタン1を単独キーに割り当て
  • ボタン2はマウスレイヤのキーに割り当て

という形に到達しました。この記事ではそこに辿り着くまでの過程を紹介します。

デフォルトの配置

Keyball44のデフォルトのキーマップではレイヤ1の J の位置にボタン1、Lの位置にボタン2が配置されています。親指ボタンの長押し(Hold)でレイヤ1を有効化しつつ JLを押すことでマウスボタンの操作ができます。

Keyballの強みはキー操作とトラックボール操作の行き来を素早く行えることですが、ボタン操作の都度レイヤ切り替えが必要になるのはそれを阻害するので、何とかできないかと考えました。

Auto Mouse Layer (AML)

Auto Mouse Layer (AML) はレイヤ切り替えの手間を省いてくれるQMKの機能です。AMLを有効にすると、トラックボールを操作した後一定時間マウスレイヤが有効になり、レイヤ切り替えの操作なしでボタン操作をすることができます。

Keyballの公式ファームウェアはAML機能ありでビルドされており、レイヤ3の Kb 10 キーでAMLを有効に切り替えて Kb 1 でEEPROMに設定を保存すれば、次回からはAMLが有効な状態で起動します(詳細は特殊キーコードを参照)。

AMLでの問題:誤入力

デフォルトの配置は、トラックボールに親指をかけてホームポジションに右手を置いた状態で、人差し指で J の位置のボタン1を押すことができます。Keyballを使い始める前に私が使っていたELECOMのトラックボールマウス(M-XT3URBK)と似た指使いで操作できることもあり、トラックボール操作からのクリックのしやすさは抜群です。

しかしこの配列をAMLとの組み合わせで使うと、誤入力の問題を頻発してしまいました。トラックボールを操作してからボタン1を割り当てたキーを押すまでにもたついていると、AMLのタイムアウトを越えてしまい、クリックしたつもりがあちこちに "j" と入力してしまっていたり、Shift+クリックで選択範囲を変えようとして、選択中の文字列をがさっと消して "J" に置き換えてしまったりといったミスを何度も繰り返していました。

この問題はデフォルトレイヤで通常の文字が配置されている位置にボタン1を割り当てたために発生しており、デフォルトレイヤで修飾キー(Modifier Key)が配置されている位置にボタン1の割り当て先を変更することで問題を回避しました。

AMLでの問題:修飾キー誤認

ボタン1の配置を修飾キーの位置に変えることで誤入力は回避され、問題は無くなったかのように思えていたのですが、しばらくして、キー入力の取りこぼしが起きていることに気付きました。

AMLではトラックボールを操作した後、マウス操作をしている間はAMLのタイムアウトが延長され、マウスレイヤが有効な状態に留まります。デフォルトレイヤの修飾キーを押しているつもりが、タイムアウトに達しておらずクリックと扱われてマウスレイヤが有効な状態をキープしてしまっているので、その修飾キーを伴う入力、あるいはその直後の文字入力が期待通りに動作していませんでした。

少し考えたのですが、AMLを使う限りこういった問題からは逃れられなさそうと思い、AMLを使わない道を模索することにしました。

レイヤ切り替えなしでのボタン操作

デフォルトレイヤのキーにボタンを割り当てれば、ボタン操作のためにレイヤ切り替えをする必要はなくなります。とはいえキー数が限られているので、まずはMod-Tapで既存の修飾キーに重ねてボタン1を割り当てることにしてみました。つまり、Tapならボタン1、Holdなら元々割り当てていた修飾キーの動作になる形です。マウスレイヤでは同じ位置にボタン1を単独で割り当てました。

これで、ボタン1のクリック操作はレイヤ切り替えなしで行えるようになりました。一方でウインドウの移動や文字列の選択をするためマウスボタン1のドラッグ操作はHoldの動作と衝突するため、レイヤ切り替えをしてマウスレイヤに単独で割り当てたボタン1を使う必要がありました。クリックがレイヤ切り替えなしで使えているが故に、ドラッグ操作の際もレイヤ切り替えを忘れて「あれ?ドラッグできないぞ」と戸惑うことがよくありました。

最適な配置

最終的には、デフォルトレイヤのキー一つをマウスボタン1に専用で割り当てるようにしました。これでボタン1のクリック、ドラッグともレイヤ切り替えをせずに使えるようになり、とても便利になりました。

専用のキーを確保するため、Mod-Tap設定でデフォルトレイヤの修飾キーひとつを親指の位置にあったスペースに重ねました。
Zoomのミュートオフのために長押しもできるよう、一つのキーをスペース専用にしていたのですが、Mod-Tap設定したとしてもタターンと叩けば長押しの動作はできることがわかったので、スペースと修飾キーの兼用とすることでキーを一つ節約し、代わりにボタン1を割り当てました。

https://zenn.dev/yoichi/articles/qmk-quick-tap-term

最終的にデフォルトレイヤのロープロファイルキーの部分は次の設定になりました。

  • 左手側: KC_BTN1, LT(1, KC_SPC), MO(3)
  • 右手側: KC_BSPC, LT(2, KC_ENT)

なお、マウスボタン2についてはそこまで使用頻度が高くないため、レイヤ切り替えした上で使うことにして、マウスレイヤに割り当てしています。

まとめ

この記事では私がKeyball44のデフォルトキーマップからはじめて、Auto Mouse Layerを試してやめて、デフォルトレイヤのキーに単独でマウスボタン1を割り当てる配置に至った過程を紹介しました。

マウスボタンの割り当ての工夫は、Keyballで快適なマウス操作を実現する重要なポイントですが、皆さんはどういう設定を使っていますか?

Discussion

tomori-ktomori-k

クリックの割り当て難しいですよね~
自分はKeyball39ユーザーですが、クリックはQMKのコンボで割り当ててます。
J+K→左クリック
K+L→右クリック
J+L→中クリック
みたいな感じです。
レイヤー切り替えしなくてもクリックできるので快適です!