キーボードでマウス操作を可能にする。

この文章の記述内容

キーボードでマウスをコントロールする方法を記述するもの。

前提

  • 自分は現在、腱鞘炎で右手首を動かすことが困難なため、フルサイズのキーボードをコントロールするのが困難
  • 加えて、マウスで細かい操作を行うのが困難
  • 趣味で音楽制作やゲーム制作を行っている
  • ゲーム制作についてはコードを書くのをメインにしているので問題ない
  • 音楽制作についてはマウスもしくは鍵盤を使うことを前提にしているソフトが多く、自分の手の症状からコントロールが困難
  • 上記状況において対応可能な策を提示するもの

自作キーボード

解のひとつとして自作キーボードを提示する。

これは、本来の意味ではキーボードを自作することである。

ただ、自作キーボードでよく使われるファームウェアを使うとキーボード以外のデバイスをコントロール可能なため、
そのアプローチを記載するもの。

その他に、小さいキーボードを選択して手首を動かさないようにするアプローチを採用したがこれは別の記事で記載予定。

マウスをキーボードでコントロールする

そのままの記述になるが、マウスのコントロールをキーボードで行うもの。
これによって、マウスの細かい操作を行う必要がなくなる。

また、指をホームポジションから動かさずにマウスのコントロールが可能になるため、
手首への負荷も軽減される。

ただ、ファームウェアとマウスの座標の更新頻度の違いのためか、マウスカーソルをスムーズに動かすことが困難。

このため、キーボードのショートカットキーを併用して動かすことにして、GUI操作が必要な場合にのみマウスを使うというアプローチが適切と判断。

この方法の利点として、マウスの座標を細かく移動可能なため、少しの数値でニュアンスが変わる音楽制作には有用なケースが存在すること。

利用ファームウェア

QMK firmwareを利用する。

これは、自作キーボードでよく用いられるソフトウェアであり、安価なMCUに対応している。

まずQMK firmwareに対応したキーボードを入手すること。

ただし、機能を有効化するのに容量を気にしなくていいMCUを利用したキーボードをお勧めする。
(STM32ファミリー、AVRでは主にATMega32u4。非公式ではRP2040も対応。
公式の対応マイコンは、qmk_firmware/compatible_microcontrollers.md at master · qmk/qmk_firmware (github.com)

Viaの設定

自分用のメモのためかなり情報を端折るが、とりあえずViaの設定を書いておく。
(しない場合はコード上での定義が必要)

下記のようなキー入力ができるようにする。(配置は一例)

 

Mouse矢印:マウスのカーソルを特定方向に移動する
MouseWh矢印:マウスホイールを特定方向に回す
MouseAcc数値:押しながら方向キーでマウスの移動速度(間隔)を変更可能。1:小さい、 3:大きい
MouseBtn数値:マウスクリック。1:左クリック、2:右クリック、3:ホイールクリック、4はブラウザ上の前ページ遷移、5はその逆(リドゥ扱いの後ページ遷移)

自分の場合は十字キーでカーソル移動、スペースバーでクリックという形にしている。

ただ、この方法の弱点は「反応速度」になる。
自作のファームウェアであればもうちょっと速度を高められるかもしれないが、QMK firmwareはキーボードの入力からマウス等の入力をエミュレーションするためか、入力速度についてもキーボードのものに準拠するため、即応的な反応が困難。

そのため、打ち込みでの入力には向いているが、リアルタイム用途には向いていない。
リアルタイム用途が求められる場合は、音楽機材での入力のほうが速度を優先できる。
もしくはファームウェアから自作して反応速度を高める手はある。

自分の場合は、キー入力とマウス移動どちらも必要なため当該ファームウェアでの利用で問題ないと判断している。

参考資料

手が不自由な人用の入力デバイス「らくらくマウス」をPro Microで自作する – nomolkのブログ (hatenablog.com)

自作するのも手だが、結局その分デバイスの場所を取ってしまうため、手首の移動が発生してしまう。
結果、自分の症状には逆効果となる。

よって、キーボードと機能が一体化していることが重要となる。