Lily58 Proでマウスキーを使えるようにする

ガジェット

はじめに

PCを操作していて、ちょっとマウスを下に動かしたいとか、マウスボタンをキーボードから入力したいという要望があるかと思います。
自分は今までトラックポイントキーボードを使っていたので、指をホームポジションに置いたままマウス操作をすることの快適さに慣れていました。

大きな移動はマウスの方に軍配が上がりますが、ちょっと移動するだけならキーボードでエミュレートできれば具合がよいです。

自作キーボードはキーマップ設定ソフトの「VIA」を利用してマウスキーも設定できますが、Lily58 Proはデフォルトでは動作しませんでした。

この記事では自作キーボード「Lily58 Pro」に、VIAのキーマップ設定でマウスのカーソル移動やクリックを有効化する方法を説明します

問題点

Lily58 Proへのファームウェアの書き込みとキー設定はこちらの手順に沿って行いました。

キーマップの書き込み/編集 · Lily58ドキュメントページ

この方法で設定した場合、VIAを使用したマウスのカーソル移動やクリックの割当が出来ません。
(VIAで設定は出来ますが、キーを押しても反応しない)

原因は、ファームウェアの設定でマウスキー設定がOFFになっているためです。

この問題はファームウェアの設定からマウスキーをONにすることで解決できます。
しかしながら、ファームウェア設定を変えるためには、ファームウェアをビルドする必要があります。

ビルドはLinux環境ならできるそうです。
Windows環境でのビルド方法を探してみると、WSLのDockerでもできるようです。

WSL2だけで自作キーボードを楽しみたい|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
こんにちは。自作キーボード流行っていますね。(2018年12月のキーボード記事と同じ導入) 私もこの流れに乗ってキーボードを作りました。 QMK1でのファームウェア作成から書き込みまでをWSL2でやってみたのでそれを紹介したいと思います。 経緯 QMKのWindowsでの環境構築ではMSYSが必要とのことだったんですが...

ちょうど手持ちのWindows10マシンに、WSL2にDockerを入れた環境があるのでそちらを使いました。

説明すること/しないこと

今回は、WSL2側ではファームウェアのビルドだけ行い、キーボードへのファームウェア書き込みはWindows側の「QMK Toolbox」から行いました。
WSL2からファームウェアのインストールも行えますが、今回は簡略化のためにビルドだけにしています。
また、キーマップの指定はVIAから行うつもりだったのでキーマップの修正は省きます。

説明すること

  • WSL2のDockerを使ったファームウェアのビルド方法

説明しないこと

  • WSL2、Dockerの設定方法
  • WSL2からのファームウェアのインストール

ファームウェアのビルド方法

GitHub - kata0510/qmk_firmware: Open-source keyboard firmware for Atmel AVR and Arm USB families
Open-source keyboard firmware for Atmel AVR and Arm USB families - GitHub - kata0510/qmk_firmware: Open-source keyboard firmware for Atmel AVR and Arm USB famil...

ファームウェアは上記リポジトリに公開されています。
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」では、特にビルドしなくてもマウスキーが使えました。
この話は後日アップ予定。

コメント

タイトルとURLをコピーしました