はじめに
PCを操作していて、ちょっとマウスを下に動かしたいとか、マウスボタンをキーボードから入力したいという要望があるかと思います。
自分は今までトラックポイントキーボードを使っていたので、指をホームポジションに置いたままマウス操作をすることの快適さに慣れていました。
大きな移動はマウスの方に軍配が上がりますが、ちょっと移動するだけならキーボードでエミュレートできれば具合がよいです。
自作キーボードはキーマップ設定ソフトの「VIA」を利用してマウスキーも設定できますが、Lily58 Proはデフォルトでは動作しませんでした。
この記事では自作キーボード「Lily58 Pro」に、VIAのキーマップ設定でマウスのカーソル移動やクリックを有効化する方法を説明します
問題点
Lily58 Proへのファームウェアの書き込みとキー設定はこちらの手順に沿って行いました。
この方法で設定した場合、VIAを使用したマウスのカーソル移動やクリックの割当が出来ません。
(VIAで設定は出来ますが、キーを押しても反応しない)
原因は、ファームウェアの設定でマウスキー設定がOFFになっているためです。
この問題はファームウェアの設定からマウスキーをONにすることで解決できます。
しかしながら、ファームウェア設定を変えるためには、ファームウェアをビルドする必要があります。
ビルドはLinux環境ならできるそうです。
Windows環境でのビルド方法を探してみると、WSLのDockerでもできるようです。
ちょうど手持ちのWindows10マシンに、WSL2にDockerを入れた環境があるのでそちらを使いました。
説明すること/しないこと
今回は、WSL2側ではファームウェアのビルドだけ行い、キーボードへのファームウェア書き込みはWindows側の「QMK Toolbox」から行いました。
WSL2からファームウェアのインストールも行えますが、今回は簡略化のためにビルドだけにしています。
また、キーマップの指定はVIAから行うつもりだったのでキーマップの修正は省きます。
説明すること
- WSL2のDockerを使ったファームウェアのビルド方法
説明しないこと
- WSL2、Dockerの設定方法
- WSL2からのファームウェアのインストール
ファームウェアのビルド方法
ファームウェアは上記リポジトリに公開されています。
Lili58用の設定も含まれていますので、ダウンロードしてパラメータをいじるだけでカスタマイズができます。(感謝)
ソースコードのダウンロード
※下記作業はWSL2内部で行います。
作業用のディレクトリに移動してリポジトリをクローンします。
※ <work_dir> は作業用ディレクトリを任意で作成してください。
$ cd <work_dir>
$ git clone https://github.com/kata0510/qmk_firmware.git
$ cd qmk_firmware
$ make git-submodule
make git-submodule
はサブモジュール一式をダウンロード/更新するコマンドです。
実行しないと、ビルド時にモジュールが存在しないと怒られるので、先に実行しておきましょう。
対象ファイルを修正
今回修正するファイルは下記の2ファイルとなります。
qmk_firmware/keyboards/lily58/rules.mk
qmk_firmware/keyboards/lily58/keymaps/default/rules.mk
変更内容はどちらも同じです。
それぞれ2箇所の修正を行いました。
- MOUSEKEY_ENABLE = no # Mouse keys
+ MOUSEKEY_ENABLE = yes # Mouse keys ← yesに変更
+ VIA_ENABLE = yes # ← 今回はVIAを使って編集するため、パラメータを追加
今回は、 MOUSEKEY_ENABLE
の有効化と、VIAを使って編集したいのでVIA_ENABLE
の追加を行いました。
ビルドを実行
ビルドはdockerを利用して行います。
スクリプトが書かれているので、下記コマンドを実行するだけで行なえます。
$ cd <work_dir>/qmk_firmware
$ ./util/docker_build.sh lily58:default
実行すると下記のようなログが出てビルドが終了します。
QMK Firmware 0.9.50
Making lily58/rev1 with keymap default
avr-gcc (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
...
Copying lily58_rev1_default.hex to qmk_firmware folder
[OK]
Checking file size of lily58_rev1_default.hex
[OK]
* The firmware size is fine - 20388/28672 (71%, 8284 bytes free)
無事成功すると、qmk_firmwareディレクトリ
の下に「lily58_rev1_default.hex」が出来ています。
ファームウェアの書き込み&キーマッピング
ビルドされたファームウェアをWindows側からアクセスして「QMK Toolbox」でキーボードに書き込みます。
QMK Toolboxの「Local file」に先程ビルドしたファームウェアを指定してください。
WSL上のファイルへのアクセスは、WSL上のパスの先頭に「\wsl$\Ubuntu-20.04」を付けるとアクセスできます。
(WSLのOSが、Ubuntu-20.04の場合)
\wsl$\Ubuntu-20.04\<work_dir>\qmk_firmware\lily58_rev1_default.hex
<work_dir> をworkspaceとした場合は下記のような指定になります。
これでマウスキーが利用できる様になりました。
キーマップをVIAから設定しましょう。
マウスキーはVIAの下側エリア「SPECIAL」にあります。
マウスのカーソル移動は「Mouse↑, ↓, ←, →」ボタンは「Mouse Btn1, 2, 3, …」で設定できます。
「Mouse Btn」は、1が左クリック、2が右クリック、3がホイールクリックとなります。
4、5は不明。
一般的な5ボタンマウスのように、進む、戻るが割り当てられる模様です。
終わりに
デフォルト設定だとマウスキーを設定しても有効化されないので結構悩みました。
ファームウェアのビルド自体もビルド環境があれば簡単にできるので、パラメータをイジったり色々カスタマイズできそうです。
キーマップは、今回はVIA経由で設定する手順ですが、ファームウェアに記載もできます。
マウスのカーソル移動キーは設定したもののあまり使う機会が無い感じです。
一方、マウスの左ボタンは、精密な操作が必要なときにマウス移動とボタン押下を異なる手で行う事ができるため、図形描画などでマウスドラッグ中にボタンを離す瞬間にカーソルが動くといった誤作動が減って重宝しています。
なお、無線用のマイコン「BLE Micro Pro」では、特にビルドしなくてもマウスキーが使えました。
この話は後日アップ予定。
コメント