single.php

[VIA]レイヤーを可視化するアプリの作成手順

対応するキーボードのキーマップを変更する[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]で追加したキーマップを可視化したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です