対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能があります。利用すると1つのキーに複数の役割を設定できるので便利ですが、レイヤに配置したキーマップが覚えていられないので、モニターにに表示するアプリを考えてみました。
VIAのレイヤー機能
対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能があります。
例えば、通常のキーボードの[A]キーは、アルファベットの “a” が入力されますが[Shift]キーと同時に使うと “A” が入力できます。
また、Windowsの場合[Ctrl]キーと同時に使うと[すべて選択]機能を呼び出す際にも利用できます。
こんな感じで[レイヤー]を使うと1つのキーに複数の機能を割り振ることが可能になります。
今回紹介するソフトは、YouTubeなどで汎用的にキーマップが編集できるソフトウェア[VIA]です。
Amazonでも対応したキーボードや関連デバイスが販売されていて、私が購入した「EPOMAKER EK21 VIA ガスケット テンキー ゲーミングキーボード ワイヤレスメカニカルテンキー」もキーマップの編集時に認識してくれました。
レイヤー切り替えと表示キーを設定
最初に[VIA]でレイヤーを切り替える操作と、アプリに伝えるためのキー操作の設定を用意します。
例えば[VIA]では[Fn]キーを押して、レイヤー[0]から[2]に移動させるために[MO(2)]が使えます。
しかし[MO(2)]の場合は、キーを離すとレイヤーが[0]に戻ってしまうので別の方法が必要になります。
さらに、レイヤー移動後に表示する操作が必要になるので1つのキーに2つの役割が必要になります。
レイヤー機能と設定値は[qmk_firmware|Keycodes Overview]が参考になります。
| キーワード | 機能 |
| DF(layer) | 既定のレイヤーを “layer” 設定(電源オフになると設定は解除) |
| PDF(layer) | 既定のレイヤーを “layer” 設定(EEPROMが採用されている場合には電源オフでも解除されずに保存される) |
| MO(layer) | キーを押している間 “layer” に移動 |
| LM(layer, mod) | キーを押している間 “layer” に移動して “mod” が押されている状態にする |
| LT(layer, kc) | キーの長押しで “layer” に移動してキーを短押しで “kc” を押す |
| TG(layer) | キーの押すと “layer” に移動して、再度キーを押すと解除される |
| TO(layer) | キーを押すと強制的に “layer” に移動する。他のレイヤーは無効化される。 |
| TT(layer) | 1度押しで “layer” に移動し離すと解除し、2度押しで “layer” への移動を保持する。 1度押しは[MO(layer)]で2度押しが[TG(layer)]的な動作。 |
※QMKのドキュメントなので[VIA]で使えないキーワードもあります。
[LT]で設定可能
[VIA]の場合[LT(layer, kc)]で1つのキーに2つの役割が設定が可能でした。
[Fn]キーに[LT(1, KC_F20)]と設定すると、キーを長押ししている間はレイヤー[1]に移動して、キーを押すと[F20]キーが送信されます。
また移動した先のレイヤー[1]のキーに[TO(1)]など恒久的にレイヤーを移動する機能を追加すると[Fn]キーを押しながらの操作でレイヤーを移動する操作が可能になります。
例えば、レイヤー[1]の[0]キーに[TO(0)]、[1]キーに[TO(1)]を設定すると[Fn]キーを押しながら[0]キーでレイヤー[0]に移動し、[1]キーでレイヤー[1]に移動する操作が設定できます。
さらにレイヤー[1]の[Fn]キーに[LT(1, KC_F21)]を設定することで、レイヤー[0]の[Fn]キーを押すと[F20]を、レイヤー[0]の[Fn]キーは[F21]が送信されるようになります。
文字で書くと、かなり複雑で分かり辛いので、イメージにしてみます。
今回設定した「EPOMAKER EK21 VIA ガスケット テンキー ゲーミングキーボード ワイヤレスメカニカルテンキー」にはレイヤーが4つ設定可能なので、こんな感じになりました。
設定すると[Fn]キーを押しながら[0][1][2][3]を押すと、それぞれのレイヤーに移動し[Fn]キーの単体押しで[F20]~[F23]のキーが送信できます。
[Fn]キーへの具体的には次の手順で行います。
1.[VIA]の[KEYMAP|SPECIAL]画面を表示します。
2. [Fn]キーを先に選択後、表示された一覧で[Any]キーを選択します。
3. ポップアップした画面に “LT(3, KC_F20)” を入力します。
4.[Confirm]をクリックします。
5. LAYER[0]に移動して[0]キーを先に選択してから[Any]キーを選択します。
3. ポップアップした画面に “TO(0)” を入力します。
4.[Confirm]をクリックして設定を保存します。
同じ操作で各レイヤーの[Fn]キーに別のレイヤーへの移動と[F21]などのキーの送信を追加していきます。
ここまでの作業で[Fn]キーの長押しと単体押しで2つの役割を設定できました。
後は、単体押しされた際に送信されたキーに応じた画像ファイルなどを画面に表示するアプリで、対応するキーマップが表示できそうです。
次回は実際にVisual Studioを使って、レイヤーの配置を表示するアプリを作成していきます。
まとめ
対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能があります。
このレイヤに配置したキーマップを表示するアプリを制作するための[VIA]設定について紹介しました。
[VIA]で追加したキーマップを可視化したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。









