こんにちは。自キ温泉ガイドのサリチル酸です。
また一ヶ月ぶりの更新になってしまいました。
もう少しフランクな記事も書きたいのですが、書いていくと膨らんでいってしまい、また今度ちゃんとまとめようとなってしまうんですよね。
さて、今回は初心者向けのキー設定記事第三段、VIAという新しいソフトを使ったキーマップの超簡単な変更方法を紹介したいと思います。
- はじめに
- VIAとは
- VIAのダウンロード方法
- VIAのインストール方法
- キーボードを接続する
- キーボードを設定する
- レイアウトを変更する
- キーマップを変更する
- キー入力マクロを編集・管理する
- LEDライティングを変更する
- キーマップをセーブ&ロードする
- キー入力のテストをする
- Tips:基本知識とか、設定方法とか
- おわりに
はじめに
皆さんは2020年7月21日放送のマツコの知らない世界、見ましたか?
だんだん世の中から自作キーボードへの注目(好機の目線とも言う)を感じるようになってきています。
その中でキーマップの書き換えに関連するアレコレが、はんだ付けの次に高いハードルとなっているようだと考えています。
それは以前書いたQMK Toolboxの記事について「このキーボードでこういうエラーが出るんですけど」という問合せの量からも感じています。*1
先の記事のQMK Toolboxは便利なのですが、エラーが出た時の対処は黒い画面とのにらめっこが必要です。
でも黒い画面でズラズラエラーが出てもよく分からないですし不安ですよね。
ということで今回は、QMK Toolboxを使用しなくてもダイレクトにキーマップを自由に書き換えられるVIAというソフトについてお話ししたいと思います。
VIAとは
QMKファームウェア(自作キーボードによく使われるオープンソースファームウェア)を書き込まれたキーボードのキーマップを、パソコン上の画面から直接操作・即反映できるソフトウェアです。
この直接操作・即反映というところがポイントです。
ConfiguratorでHexファイル(キーマップのファイル)を生成して、Toolboxで書き込むという方法ではタイムラグがどうしても発生してしまいます。
それをVIAでは即反映できるので、キーマップの試行錯誤という自作キーボードの醍醐味をよりダイレクトに楽しめるのです。
VIAのダウンロード方法
以下のリンクから最新のツールをダウンロードします。
この時、使用するOSによってダウンロードするファイルが異なりますので注意が必要です。
VIAのインストール方法
※私はWindows党なのでmacやlinuxでの手順は検証できていません。ごめんなさい。
ダウンロードしたexeファイルをダブルクリックする
セキュリティ警告が出たら詳細情報を押して実行を押す


インストールされるまで待ちます
インストールされました
キーボードを接続する
viaにキーマップがマージされている場合
そのままキーマップ編集画面が表示されます。
この時、画面にはキーボードに書き込まれているキーマップが自動反映されています。
viaにキーマップがマージされていない場合
左上の「File」から「Import Keymap」をクリックしてキーマップを読み込みます。
キーマップファイルは作者が別途提供しているものもあるので、VIA対応しているかどうかは作者にお問い合わせください。
私のNaked60BMPとAJisai74はキーマップファイルがまだマージされていないので、以下からダウンロードしてください。
キーボード名 | DL |
7sKB | DL不要 |
7sPlus | こちら |
AJisai74 | こちら |
ErgoArrows | こちら |
JISplit89 | こちら |
Naked60BMP | こちら |
NKNL7EN | こちら |
NKNL7JP | こちら |
おまけ:Mint60 ※非公式で勝手に作ったものです。 |
こちら |
※このキーマップの読み込みは毎回、ソフトの起動毎に読み込みをする必要があります。
キーマップ編集画面が表示されない場合
VIA用のファームウェアが書き込まれていない可能性があります。
VIA用のファームウェアをQMK Toolboxで書き込んでください。
salicylic-acid3.hatenablog.com
※VIA用のファームウェアは通常のファームウェアと違います。専用に用意する必要があります。
すでにVIAにマージされているVIA対応ファームウェアはこちらからダウンロードできます。
※7sKB/7sProはマージされたのでダウンロード可能です。
それ以外のキーボードは以下のファイルを使用してください。
キーボード名 | DL |
7sKB | DL不要 |
7sPlus | こちら |
AJisai74 | こちら |
ErgoArrows | こちら |
JISplit89 | こちら |
Naked60BMP | こちら |
NKNL7EN | こちら |
NKNL7JP | こちら |
おまけ:Mint60 ※非公式で勝手に作ったものです。 |
こちら |
キーボードを設定する
VIAで出来ることは以下の通りです。
- 「KEYMAP」キーマップを変更する
- 「LAYOUT」キーボードに用意されているレイアウトを変更する
- 「MACROS」キー入力マクロを編集・管理する
- 「LIGHTING」LEDライティングを変更する
- 「SAVE+LOAD」キーマップをセーブ&ロードする
- 「KEY TESTER」キー入力のテストをする
多分他にも色々あるとは思いますが、基本的に使用するのはこの6つです。
レイアウトを変更する
最初に使うレイアウトに変更しておきましょう。
左側の「LAYOUT」をクリックし、自分が使うレイアウトに変更します。
下図のEquinoxは様々なキーレイアウトに対応していますので、自分が使うものに変更しておきます。
7sKBもレイアウト変更に対応しています、が、あんまり変わらないのでどちらでもいいです。。


キーマップを変更する
アルファキー(文字キー)とモデファイアキー(シフトとかの修飾キー)を変更する
上半分のキーボードのキーをクリックし、変更したいキーを下から選んでクリックします。
これだけでキーが変わっていますので試してみましょう。
メディアキーを追加する
左下の「MEDIA」ボタンを押すと主に音楽再生用のキー(音量操作、曲選択等)が並んでいます。
上の手順と同じ要領で、置き換えたいキーをクリックし、メディアキーをクリックして置き換えます。
マクロキーを追加する
別の項目で設定したマクロをキーに設定します。
マクロの設定は後述します。
レイヤーキーを追加する
レイヤーを変更するキーを設定します。
自作キーボードの醍醐味のひとつなので、是非試行錯誤してみてください。
レイヤーについての説明は本記事下部のTipsを参照してください。
レイヤーの移動方法はいくつかのパターンがあり、使用方法に応じて設定します。
レイヤーキー | 説明 |
Fn1、Fn2 | Fn1やFn2キー単体で押すとレイヤー1に、同時に押すとレイヤー3に移動します。 |
Space Fn1~3 | 短く単押しでスペースキー、長押しで対応するレイヤーに移動します。 |
MO(1~7) | 押している間対応するレイヤーに移動します。 |
TG(0~7) |
対応するレイヤーに移動します。 ※自動で元にレイヤーには戻らないので、戻る用のTGキーが別途必要 |
TT(0~7) |
単体で押すとMOと同じように押している間レイヤーに移動します。 5回押すとTGキーと同じように移動したままになります。 |
OSL(0~7) |
次のキーが入力されるまで指定したレイヤーに移動します。 キーが入力されると元のレイヤーに戻ります。 |
TO(0~7) |
このキーを押すと指定するレイヤーでデフォルトレイヤーを置き換えるように動作します。 ※あまり使った例を見ません。 |
LT(1~7,キーコード) |
デフォルトでは用意されていませんが、後述するSPECIALのAnyキーを使用して設定することができます。 単押しでキーコードを、長押ししている間レイヤーに移動します。 キーコードはこちらを参照してください。 私はエンターキーでよく設定します。例:LT(1,KC_ENT) |
私の設定の煮詰め方ノウハウについてはこちらを参照してください。
レイヤー関連のキーを設定する
各レイヤーに共通するキーを全レイヤーで書くのは大変なので、他レイヤーに関連するキーを設定します。
BASICの左上にある2キーが該当します。
空白のキーは押しても何の効果も無いキーです。そのレイヤーでは押さないor押すと誤爆する場合に使用します。
▽のキーはレイヤー番号の一つ数の小さいレイヤーのキーを踏襲するキーです。
特殊キーを追加する
記号単体や様々な効果を発揮するキーを設定します。
種類が多く普通は使わなさそうなキーが多いので、ここではよく使用するマウスキーを抜粋して紹介します。
キーコード | 説明 |
Mouse↑↓←→ | マウスカーソルを動かします。 |
Mouse Btn | Btn1は左クリック、Btn2は右クリック、Btn3は中央クリック、後の2つはよくわからない。。 |
Mouse Wh↑↓←→ | マウスホイールを動かします。 |
Mouse Acc0~2 | マウスカーソルを加速します。 |
Anyキーを投入する
実はQMKという自作キーボードに使用しているファームウェアはもっと高機能なのです。
でもVIAは簡単に設定できるようにするために、それらの機能の設定はこのAnyキーを用いて設定するようになっています。
Anyキーは「SPECIAL」の一番下に色違いのボタンがあるのでそれで設定します。
設定画面は下のように単純にテキストを入力するようになっております。
このテキストボックスに以下のように入力します。
キーコード | 説明 |
LT(0~7,キーコード) |
単押しでキーコードを、 長押ししている間レイヤーに移動します。 |
MT(MOD_LCTRL, キーコード) |
単押しではキーコードを、 長押ししている間Ctrlキーに変化します。 |
MT(MOD_LSFT, キーコード) |
単押しではキーコードを、 長押ししている間Shiftキーに変化します。 |
MT(MOD_LALT, キーコード) |
単押しではキーコードを、 長押ししている間Altキー/OPTキーに変化します。 |
MT(MOD_LGUI, キーコード) |
単押しではキーコードを、 長押ししている間Winキー/CMDキーに変化します。 |
LSFT(キーコード) |
Shiftキーを押しながらキーコードのキーを押します。 ※日本語環境で記号を直接入力する場合にも使用します。 |
LCTL(キーコード) | Ctrlキーを押しながらキーコードのキーを押します。 |
LALT(キーコード) | Altキー/Optキーを押しながらキーコードのキーを押します。 |
LGUI(キーコード) | Winキー/CMDキーを押しながらキーコードのキーを押します。 |
MEH(キーコード) | ShiftキーとCtrlキーを押しながらキーコードのキーを押します。 |
HYPR(キーコード) | ShiftキーとCtrlキーとWinキー/Optキーを押しながらキーコードのキーを押します。 |
キーコードについてはこちらを参照してください。
例:MT(MOD_LGUI,KC_MHEN)
ライティングキーを入力する
キーボードのLEDライトを制御するキーを設定します。
国内の自作キーボードでよく採用されているRGB(フルカラー)バックライトは様々なパターンで発光させることができます。
キーコード | 説明 |
RGB Toggle | LEDのオンオフをします。 |
RGB Mode -+ | RGBのアニメーションモードを切り替える。 |
Hue -+ | LEDの色相を増減させます。 |
Sat -+ | LEDの彩度を増減させます。 |
Bright -+ | LEDの輝度を増減させます。 |
Effect Speed -+ | LEDアニメーションのスピードを増減させます。 |
RGB Mode P~G | LEDアニメーションモードを変更します。 |
キー入力マクロを編集・管理する
予め設定した文字列を自動送信するマクロを作成します。
登録するマクロの番号を選択し、文字列を入力します。
※日本語での入力はできません。
その際に文字列ではなくキーコードを入力する場合は{ }で囲んでキーコードを入力します。
キーコードはこちら。
実行例:お前を温泉に沈めてやろうか。
「Save」を押して保存し、キーにキーコードを設定します。
LEDライティングを変更する
LEDライティングを変更します。
LED対応のキーボードは面白いので色々いじってみてください。(説明省略の構え)
キーマップをセーブ&ロードする
キーマップは基本的にキーボードに保存され、VIAに自動で読み込まれるので保存は不要です。
ですがキーマップが固まったらなにかあったときのためにバックアップを取っておきましょう。
何かあった時:マイコン(Pro Micro)を交換した、他のキーボードに反映する、リセットした等
キー入力のテストをする
キーボードを組み立てたばかりのキー入力のテストは、VIAのKey Tester機能を使用すると分かりやすいです。
Key Testerは画面上の「KEY TESTER」をクリックするとテストモードに入ります。
押した部分の色が変わるので分かりやすいです。
使い心地は実際に試してみないと分かりませんが。。
Tips:基本知識とか、設定方法とか
レイヤーとは
レイヤーとは市販のコンパクトキーボードにあるファンクションキーに該当するもので、使用する状況に応じて複数設定する事ができます。
レイヤーの異動はキーマップ編集画面の上のLAYERから変更します。


このキーマップの例の場合、レイヤー0のMO(3)キーを押している間、レイヤー3のキーマップに移動します。この動作はHHKBを想像すると分かりやすいと思います。
日本語キーボードの記号について
日本語キーボードの記号と英語キーボードの記号ですが、同一のキーコードでも出力されるものが異なります。
以下に違いがあるものについてまとめてみましたので参考にしてみてください。
記号 | 対応するキーコード |
半角/全角 | KC_GRV |
, | | KC_INT3 |
^, ~ | KC_EQL |
@, ` | KC_LBRC |
[, { | KC_RBRC |
:, * | KC_QUOT |
], } | KC_NUHS |
, _ | KC_INT1 |
" | LSFT(KC_2) |
& | LSFT(KC_6) |
’ | LSFT(KC_7) |
( | LSFT(KC_8) |
) | LSFT(KC_9) |
= | LSFT(KC_MINS) |
~ | LSFT(KC_EQL) |
| | LSFT(KC_INT3) |
` | LSFT(KC_LBRC) |
{ | LSFT(KC_RBRC) |
+ | LSFT(KC_SCLN) |
* | LSFT(KC_QUOT) |
} | LSFT(KC_NUHS) |
_ | LSFT(KC_INT1) |
ハードリセットについて
キーマップの書き換え時に不具合が発生して、最初の状態に戻したいときはハードリセット(EEPROMリセット)を試してみてください。
方法はキーボードの一番左上のキー(概ねエスケープキー)を押しながらUSBを接続すると初期状態に戻ります。
個人的経験に基づく設定の煮詰め方
以下の記事はQMK Configuratorの記事ですが、煮詰める手法については共通です。
salicylic-acid3.hatenablog.com
おわりに
VIAについて出来る限り詳しく解説してみましたが、いかがでしたでしょうか。
本記事に対して問い合わせ等あれば遠慮なく私のDiscordまでどうぞ。
salicylic-acid3.hatenablog.com
次は開発者向けにVIA対応の方法を書きたいと思います。
本記事はNaked64SF v2で書きました。
*1:私のキーボードならなんとなく答えが分かりますが、それ以外のもののお問い合わせに関しては自作キーボードのコミュニティで聞いてみることをおすすめしています。
私以上に沼人詳しい住民たちが教えてくれます。
聞くときは#clinic-readmeチャネルをよく読んで聞いてください。