single.php

C#[VIA]で設定したレイヤーを可視化するアプリの作ってみた(その2)

対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能があります。利用すると1つのキーに複数の役割を設定できるので便利ですが、今回は設定したキーマップなどを画像にして、必要な時にキー操作でモニターに表示するアプリを作ってみました。

VIAのレイヤー機能

対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能があります。

例えば、通常のキーボードの[A]キーは、アルファベットの “a” が入力されますが[Shift]キーと同時に使うと “A” が入力できます。

また、Windowsの場合[Ctrl]キーと同時に使うと[すべて選択]機能を呼び出す際にも利用できます。

こんな感じで[レイヤー]を使うと1つのキーに複数の機能を割り振ることが可能になります。

Amazonでも対応したキーボードや関連デバイスが販売されていて、私が購入した「EPOMAKER EK21 VIA ガスケット テンキー ゲーミングキーボード ワイヤレスメカニカルテンキー」でも便利に使っています。

このレイヤー機能を使えば、20個のキーであれば最大80個までキーが登録できます。

非常に便利なんですが、キートップの印刷が変わる訳ではないので、残りの60個の機能と配置場所は覚える必要があります。

現状のレイヤーをモニターに設定

先回、[VIA]を使ってレイヤーを切り替える操作と、アプリに伝えるためのキー操作の設定を行いました。

簡単に説明すると、[Fn]キーを押している間は、レイヤーを移動する機能とキーを短押しすると[F20]と言った特殊なキーを送信します。

詳しい設定方法などは、別記事をご覧ください。

https://blog.janjan.net/2026/01/18/via-keymap-layer-view-app-vol-1

タスクトレイに常駐するWindowsアプリにしたので、C#のWinFormプロジェクトで[KeyLayerView]として作成しました。

JSONで設定可能

受信した仮想キーの内容を取得して、画像を表示する簡単な処理です。

[F20]キーを受信したら[layer0.png]、[F21]キーを受信したら[layer1.png]を表示するといった具合です。

使い方としては、キーマップの配置を知りたい時に[Fn]キーを短押して表示される画像でキーマップの配置が分かります。

表示する内容として、こんな感じの画像を用意しました。

この画像をプロジェクト内の[Images]フォルダーに保存して[setting]フォルダー内のJSONファイルに関連付けするキー情報を編集します。

{
  "KC_F20": "Images/layer0.png",
  "KC_F21": "Images/layer1.png",
  "KC_F22": "Images/layer2.png",
  "KC_F23": "Images/layer3.png"
}

対応させるキーの定義は、QMKのドキュメントを参考にして[QmkKeyMap]クラスで行っています。

実行するとアプリがタスクトレイに常駐します。

後は[Fn]キーを押すとモニターの左下に画像が表示されます。(もう一度押すと、非表示になります)

レイヤーが覚えられない私でも、自身が無い時は[Fn]キーを押せば思い出せるのでVIAで割りあえるキーの数が増えて便利になりました。

まとめ

対応するキーボードのキーマップを変更する[VIA]には編集したキーの配置をまとめて管理する[レイヤー]機能に対応した画像を画面に表示するアプリの作成を行ってみました。

レイヤーは同じキーに複数の機能が配置できるので非常に便利ですが、現在のレイヤーと配置場所を覚えておく必要があります。

2つくらいはレイヤーの配置を覚えておけますが、それ以上になると正直、自身がありません(笑)

実際に使ってみた感想としては、現在のキーマップが画面に表示されることで、忘れた時にすぐに思い出せるので、かなり便利になりました。

[VIA]で追加したキーマップを可視化したい人の参考になれば幸いです。

スポンサーリンク

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

コメントを残す

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