Ubuntu Weekly Recipe

第896回UbuntuからQMK/VIA対応キーボードをカスタマイズする

近年では自作キーボードの流行もあり、QMK/VIAに対応したキーボードが増えてきました。今回はそんな中でも比較的リーズナブルなメカニカルキーボードであるKeychron C1 Pro 8Kを例に、Ubuntu上でQMK/VIA対応キーボードをカスタマイズする手順を紹介します。

QMK/VIAとは

QMKとはオープンソースのキーボードファームウェアです。QMKは、従来より自作キーボード愛好家の間で使われてたTMKを改良したフォーク版で、現在では自作キーボード界隈でのデファクトスタンダードと呼べるほど普及しています。

そんなQMKですが、当初は手軽に使えるというものではありませんでした。というのもQMKはファームウェアですから、カスタマイズを行うにはコードを書き換えた上でビルドし、キーボードに書き込むという手間が必要だったためです。そのハードルを劇的に下げたのがVIAです。これは簡単に言えば「キーボードのキーマップを、ブラウザやアプリ上でリアルタイムに書き換えるためのソフトウェア」です。GUIから変更したいキーを指定するだけで、即座にキーマップを変更できます。キーボードへの書き込み作業も必要ありません。VIAの登場により、キーボードのカスタマイズに専門知識が不要となり、そのハードルが劇的に下がりました。また「このキーがここにあったら便利かも?」という試行錯誤も格段に楽になりました。

現在では自作キーボード界隈だけでなく、一般的な市販モデルにも、QMK/VIAを採用したモデルが増えてきています。今回は冒頭でも述べた通り、比較的安価で、Amazonなどでも入手しやすいKeychronのC1 Pro 8Kを実例として用意しました。

udevにルールを追加する

具体的な手順は後述しますが、今回はWebアプリからキーリマップを行います。そしてWebアプリからキーリマップを行うためには、USBデバイスへのアクセス(hidraw)を許可するudevルールが必要です。まずlsusbコマンドを実行して、対象のデバイスのベンダIDとプロダクトIDを調べましょう。

$ lsusb
(...略...)
Bus 001 Device 005: ID 3434:0521 Keychron Keychron C1 Pro 8K
(...略...)

今回使用しているKeychron Keychron C1 Pro 8Kでは、ベンダIDは「3434⁠⁠、プロダクトIDは「0521」のようです。これを控えておきましょう。

続いて「/etc/udev/rules.d/99-keychron.rules」というファイルを作成します。テキストエディタで以下の一行を記述してください。

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="ベンダID", ATTRS{idProduct}=="プロダクトID", MODE="0660", GROUP="自分のプライマリグループ", TAG+="uaccess", TAG+="udev-acl"

ルールを追加できたら、一度キーボードからUSBケーブルを外してから再接続しておきましょう。

Webアプリからキーリマップを行う

VIA対応のキーボードであれば、VIAのWebアプリやLinux版のアプリからカスタマイズが可能です。ですがKeychronのキーボードには、専用のWebアプリであるKeychron Launcherが用意されているため、今回はこちらを使用します。なおKeychron Launcherは、最新のChromeやEdgeの使用が想定されています。Ubuntuの標準ブラウザはFirefoxですので、あらかじめChromeをインストールしておいてください。

Webアプリにアクセスすると、以下の画面が表示されます。まずは「Settings」をクリックし、言語を日本語に変更しておくとよいでしょう。

図1 Keychron Launcherの画面
図2 言語を日本語に変更する

「接続」をクリックします。するとWebアプリがHIDデバイスへの接続を要求してきます。

図3 ブラウザからキーボードへ接続する

キーボードを選択して「接続」をクリックしてください。udevの設定が正しければ、以下の画面に遷移します。もし正しく接続できない場合は、udevのルールを確認した上、念のためUbuntuを再起動してみてください。

キーのリマップはWeb UIから簡単に行えます。まず定番のリマップとして、Caps LockをCTRLに変更してみましょう。左ペインから「キーマップ」を選択すると、キーボードのレイアウトが表示されます。ここで変更したいキー(ここではCaps Lock)をクリックします。するとそのキーが押された状態でハイライトされます。

図4 画面に表示されているキーボードの、Caps Lockキーをクリックして選択した状態

続いて入れ替えたいキーを、ウィンドウ下側に表示されているキーリストからクリックします。ここでは「L ctrl」を選択しました。

図5 Caps Lockが左CTRLに入れ替わった状態

これで完了です。保存などの動作は特に必要なく、入れ替えたいキーをクリックして決定した状態で、即座に設定がキーボードに反映されます。入れ替えられるのはキーボード上に存在するキーだけではありません。マウス動作を特定のキーに割り当てることも可能です。

具体的にどのようなカスタマイズができるかは、キーボードのモデルにも依存します。Keychron Keychron C1 Pro 8Kでは、複数のキーコンビネーションをマクロとして特定のキーに登録したり、バックライトLEDの色をキーごとに調整できたりもします。

図6 キーマクロも登録できる。これはF1キーを押すと、⁠sudo apt full-upgrade -Uy」と入力されるようマクロを登録した例
図7 キーごとのバックライトカラーを調整できる

詳しくはお使いのキーボードのマニュアルを参照してください。


キーボードのキー入れ替えは、ソフトウェア的に行えます。ですが複数のPCを切り替えて使う場合、すべてのPCで同じ設定が必要となり面倒です。ハードウェア側でカスタマイズ可能なキーボードであれば、こうした煩わしさを解消できます。またキーマクロを登録できるキーボードであれば、面倒な作業の簡略化も期待できそうです。ゲームなどでも役立つかもしれませんね。

VIAはWebから利用できるため、クライアントOSを選びません。Linuxからはカスタマイズできないのでは? と敬遠した方も、ぜひ一度試してみてください。

おすすめ記事

記事・ニュース一覧