こんにちは。自キ温泉ガイドのサリチル酸です。
今回はVIA、Remapに続く第3のキーマップ変更ソフトを紹介したいと思います。
- はじめに
- Vialとは
- Vialの使用方法
- キーボード設定画面を開く
- キーボードを接続する
- Vialでできること
- キー配列(英語配列/日本語配列等)を変更する
- レイアウトを変更する
- キーボードをテストする
- キーマップを変更する
- キーボードを切り替える
- Tap Danceを設定する
- Comboを設定する
- Key Overrideを設定する
- QMKの詳細な設定を変更する
- キーマップをファイル保存する
- ロック/アンロックする
- Tips:基本知識とか、設定方法とか
- ランキング参加中
- おわりに
はじめに
今回紹介するVial(バイアル/ヴィアル)は少し前から盛り上がってるキーマップ変更ソフトです。
私自身も前から使ってみたりはしていたのですが、Remapの使い勝手の良さから本格的に使ってみようとは思いませんでした。
しかし最近BeThirtyを開発し、30%サイズを本格的に使うためにはVialが最適だと思ったので、今回解説記事を書こうと思いました。
この記事が皆さんの参考になれば幸いです。
Vialとは
VialはVIAやRemapと同じく、ファームウェアを書き換えることなく*1キーマップの変更を可能にするツールです。
キーマップの書き換えはVIAとRemapと同じくChromeブラウザからも可能ですが、ローカルアプリをパソコンにインストールすることでも可能になります。
Vialの最大の特徴は、ファームウェアの直接編集をすることなくコンボやタップダンスという機能を使えたり、凄く膨大なパラメータを微調整することができる点です。
つまりキー数が少ないキーボードに特に相性がいいのです。
また、Vialはキーレイアウトの情報をキーボード側に持たせることができることから様々な利点があります。
利用者の利点としては、アプリ版が用意されているので、インターネットに接続していない環境やChromeが使用できない環境でも使用できますし、万が一VialのWebサービスが終了してもローカルアプリを使ってキーマップ変更を行うことができる点が挙げられます。
開発者の利点としては、VIAやRemapと違ってキーボードを公式リポジトリにプルリクエストする必要がなくなり、レビュー待ちをする必要がなくなったという点が挙げられます。*2
もちろんメリットばかりではありません。
Remapと比較するとVialは「知っている人向け」ですし、日本語配列使用者向けに最適化されていません。
開発者への影響では、キーレイアウト情報を持つためにファームウェアサイズが大きくなってしまいますし、QMK Firmware*3の過去のバージョンから派生した独自のファームウェアを使用するため、QMK Firmwareの最新機能は使えないし、当然バグ対処も別に行われますし、別のファームウェア開発環境を作らなければいけません。
ということで、私はBeThirtyで初めてこのVialを標準採用にしました。
Vialの使用方法
Chromeブラウザで以下のリンクを開き、Vialへアクセスします。
もしChromeを使いたくない、またはインターネットに接続していない環境で使いたい場合はこちらのページの「Download Vial」ボタンを押してVialをダウンロードしてください。
キーマップを変更するという一点においてはどちらも同じですが、見た目はWeb版のほうが整理されていて使いやすいです。
しかしアプリ版の方はキーマップのファイル保存やロード、テーマ変更ができます。
特にアプリ版でのみできるファイル保存機能は、キーマップが固まったら必ず一度はやっておいたほうがいいです。
やり方は後述します。
本記事はアプリ版とWeb版両方の画面キャプチャを使用します。
キーボード設定画面を開く
キーボードを接続する
キーボード選択画面にキーボードが表示されない場合
上記画面に接続するキーボードが表示されていない場合、Vial用のファームウェアが書き込まれていない可能性があります。
Vial用のファームウェアは通常のQMKファームウェアと違うので、別途用意してください。
サリチル酸のキーボードのVial対応版のファームウェアが欲しい場合は別途サリチル酸まで連絡をください。(対応には多少の時間がかかる場合があります)
Vialでできること
Vial(2024/09時点)で出来ることは以下の通りです。
- キー配列(英語配列/日本語配列等)を変更する
- レイアウトを変更する
- キーボードをテストする
- キーマップを変更する(即反映)
- マクロを作成する
- キーボードを切り替える
- Tap Danceを設定する
- Comboを設定する
- Key Overrideを設定する
- QMKの詳細な設定を変更する
- キーマップをファイル保存する
- ファイル保存したキーマップを適用する
- ロック/アンロックする
※太字部分はVial特有のものです。
できることが多すぎて全て詳細に説明することは出来ないので、よく使う機能を紹介します。
キー配列(英語配列/日本語配列等)を変更する
最初に自分が使うキー配列に変更しておきましょう。
キー配列が違うとシフトキーを押しながら数字キーを押した時に入力される記号が異なり、記号のキーコードも微妙に異なりますのでキー設定時に結構困ります。
キー配列は左上の「Keyboard layout」から変更できます。
日本語配列についての詳しい解説は以下を参照してください。
salicylic-acid3.hatenablog.com
レイアウトを変更する
次に自分が使うレイアウトに変更しておきましょう。
画面上部の「Layout」タブからレイアウトを確認し、自分が使うレイアウトに変更します。
キーボードをテストする
レイアウトが決定したらキーボードのテストです。
テキストエディタなどでテストをしても良いのですが、Remapのテストモードを使用すると確実かつ簡単です。
キーボードのロックをアンロックします。
アンロックには通常、エスケープキーの場所とエンターキーの場所を長押しします。
テスターは反応した部分がアクセントカラーに変化します。
動作が少し遅いので、ストレスがやや溜まります。
キーマップを変更する
アルファキー(文字キー)とモディファイアキー(シフト、コントロール等の修飾キー)を変更する
キーコードを変更するには変更したいキーを選び、下のキーコード一覧を選ぶことで設定されます。
なお、変更したキーはRemapと違い、即反映されます。
Tips.レイヤーキーの種類について解説
レイヤーを変更するキーを設定します。
自作キーボードの醍醐味のひとつなので、是非試行錯誤してみてください。
レイヤーの移動方法はいくつかのパターンがあり、使用方法に応じて設定します。
レイヤーキー | 説明 |
Fn1(Fn3) Fn2(Fn3) |
組み合わせて使うことでレイヤー3に切り替わります。 MOを使用しても同様のことが出来ます。 例) |
TO |
対象のレイヤーに切り替わります。 次々にレイヤーを切り替えていくようなときに使用します。 例) |
TG |
対象のレイヤーにトグルで切り替わります。 TGキーで切り替えた先のレイヤーには同じTGキーを配置して押すことでと元のレイヤーに戻る。 例) |
MO |
押している間対象のレイヤーに移動し、離すと戻ります。 例) |
TT |
MOと同じように押している間対象のレイヤーに移動し、離すと戻ります。 5回連続で押すとTGキーと同じように対象のレイヤーに移動したままになります。 |
OSL |
次のキーが入力されるまで指定したレイヤーに移動します。 キーがなにか押されると元のレイヤーに戻ります。 |
DF |
対象のレイヤーの設定を現在のレイヤーに上書きします。 ※USBの抜き差しで初期化されます |
LT1~6(kc) |
単押し時にキーコードを出力し、長押し時にレイヤーを切り替えます。 長押しを解除するとレイヤーは元に戻ります。 |
私の設定の煮詰め方ノウハウについてはこちらを参照してください。
レイヤー関連のキーを設定する
各レイヤーに共通するキーを全レイヤーで書くのは大変なので、他レイヤーに関連するキーを設定します。
Basicの最初にある2キーが該当します。
空白のキーは押しても何の効果も無いキーです。そのレイヤーでは押さないor誤爆すると嫌な場合に使用します。
▽のキーはレイヤー移動前のレイヤーのキーを踏襲するキーコードです。
モディファイアキーと組み合わせたキーを設定する
(記事公開後追記)
シフトキーやコントロールキーなどのモディファイアキーとアルファベットキーを組み合わせたものを1キーに設定したい場合は、「Quantum」タブのキーコードを設定します。
主に使用するものを一覧化しておきます。
キーコード | 説明 |
LSft(kc) | 左Shift+kcを出力する。 |
LCtl(kc) | 左Ctrl+kcを出力する。 |
LAlt(kc) | 左Alt+kcを出力する。 |
LGui(kc) | 左Win+kcを出力する。 |
LCS(kc) | 左Ctrl+左Shift+kcを出力する。 |
LCA(kc) | 左Ctrl+左Alt+kcを出力する。 |
LOG(kc) | 左Ctrl+左Win+kcを出力する。 |
LSA(kc) | 左Shift+左Alt+kcを出力する。 |
LSG(kc) | 左Shift+左Win+kcを出力する。 |
LCAG(kc) | 左Ctrl+左Alt+左Gui+kcを出力する。 |
Meh(kc) | 左Ctrl+左Shift+左Alt+kcを出力する。 |
Hyper(kc) | 左Ctrl+左Shift+左Alt+左Win+kcを出力する。 |
LSft_T(kc) | 短押しでkc、長押しで左Shiftを出力する。 |
LCtl_T(kc) | 短押しでkc、長押しで左Ctrlを出力する。 |
LAlt_T(kc) | 短押しでkc、長押しで左Altを出力する。 |
LGui_T(kc) | 短押しでkc、長押しで左Winを出力する。 |
LCS_T(kc) | 短押しでkc、長押しで左Ctrl+左Shiftを出力する。 |
LCA_T(kc) | 短押しでkc、長押しで左Ctrl+左Altを出力する。 |
LCG_T(kc) | 短押しでkc、長押しで左Ctrl+左Winを出力する。 |
LSA_T(kc) | 短押しでkc、長押しで左Shift+左Altを出力する。 |
LSG_T(kc) | 短押しでkc、長押しで左Shift+左Winを出力する。 |
LCAG_T(kc) | 短押しでkc、長押しで左Ctrl+左Alt+左Winを出力する。 |
Meh_T(kc) | 短押しでkc、長押しで左Ctrl+左Shift+左Altを出力する。 |
ALL_T(kc) | 短押しでkc、長押しで左Ctrl+左Shift+左Alt+左Winを出力する。 |
kcの部分はキーに設定した後、小さい四角部分を選択してアルファキーを選択することで設定します。
特殊キーを追加する
記号単体や様々な効果を発揮するキーを設定します。
種類が多く普通は使わなさそうなキーが多いので、ここではよく使用するマウスキーを抜粋して紹介します。
キーコード | 説明 |
Mouse↑↓←→ | マウスカーソルを動かします。 |
Mouse Btn | Btn1は左クリック、Btn2は右クリック、Btn3は中央クリック、後の2つはよくわからない。。 |
Mouse Wh↑↓←→ | マウスホイールを動かします。 |
Mouse Acc0~2 | マウスカーソルを加速します。 |
ちなみにマウス機能はVial用のファームウェアを作る時に有効化しておかないと機能しません。
もしマウスカーソルが動かない場合はキーボード設計者に確認してください。
Backlightキーを入力する
キーボードのLEDライトを制御するキーを設定します。
国内の自作キーボードでよく採用されているRGB(フルカラー)バックライトは様々なパターンで発光させることができます。
キーコード | 説明 |
RGB Toggle | LEDのオンオフをします。 |
RGB Mode -+ | RGBのアニメーションモードを切り替える。 |
Hue -+ | LEDの色相を増減させます。 |
Sat -+ | LEDの彩度を増減させます。 |
Bright -+ | LEDの輝度を増減させます。 |
Effect Speed -+ | LEDアニメーションのスピードを増減させます。 |
RGB Mode P~G | LEDアニメーションモードを変更します。 |
※BLはバックライトの略ですが、日本のキーボードではほとんど使用されません。
特に指定がない限り、上記のRGB系のキーコードを使用してください。
マクロを作成する
マクロ機能という、あらかじめ登録しておいた動作を自動で行う機能を使用できます。
※パスワードを登録しておくのはセキュリティの脆弱性に繋がりますので非推奨です。
マクロの作成の前に、まずはキーボードのロック状態を解除する必要があります。
ロック状態の解除は後述のロック/アンロックするを参照してください。
ロック解除後、「Macros」タブのM0~15からMacroキーを押した時に送出される文字列を編集します。
画面下部の「Add action」ボタンまたは「Tap Enter」ボタン、「Record macro」ボタンからマクロで入力される内容を編集します。
「Add action」ボタンは一つのアクションを追加できます。
追加できるアクションは「Text」、「Down」、「Up」、「Tap」、「Delay(ms)」の5種です。
「Text」はそのままテキストです。
ただし、記号は英語配列のものとして認識されてしまうので、日本語キーボードとして使っている場合は別の記号に変換されてしまいますし、全角文字は無視されますので入れないように注意が必要です。
「Down」と「Up」はキーコードを指定して、押下状態を指定する形式です。
Textとの違いは文字以外のも指定可能である点で、マウスキーも使用可能です。
「Down」でキーを押して、「Up」でキーを離します。
ですが「Down」したら「Up」しないとずっと押しっぱなしになってしまいます。
もし押しっぱなしになって止められなくなった場合は、USBケーブルを抜いて止めてください。
「Tap」は単押しでキーコードを打ち込む形式です。
キーコードが一回分だけ送出されます。
DownとUpは少しリスクが高いので、基本こちらを使うことをオススメします。
「Delay(ms)」は遅延です。
ms(千分の一秒)単位で遅延を入れることが出来ます。
ちょっと待ってEnterを打ち込むなどで利用します。
エンターを打ち込む場合は「Tap」のEnterキーコードの指定でも出来ますが、「Tap Enter」ボタンを押しても追加可能です。(同じ結果になります)
また、アプリ版でのみ「Record macro」機能が使えます。
このボタンを押してからキーを入力することで、その操作内容を反映させることができます。
「Append to current」は既に設定している内容に追加する場合に使用し、「Replace everything」は既に設定されている内容を全て上書きします。
画面左下の「Open Text Editor」は、設定したマクロの内容をjson形式で表示するもので、普通に使用する分には特に使用することは無いと思います。
編集が終わったら「Save」で保存してください。
「Revert」を押すと変更を破棄します。
設定したマクロは普通のキーコードと同じように設定します。
キーボードを切り替える
対応キーボードを複数接続している場合、画面上部のキーボード名が表示されている部分をクリックすることで、キーマップを変更するキーボードを切り替えることができます。
Tap Danceを設定する
Vialの大きな特徴として、「Tap Dance」という機能を画面上から編集することができる部分が挙げられます。
Tap Danceという機能は1つのキーの押し方によって入力されるキーコードを変更できる機能です。
短押し、長押し、短い時間に2回連続で押した場合、短い時間に2回連続で押した後に長押しした場合の4種を設定可能です。
この場合の短い時間というのは任意に変更可能です。
この機能は30%サイズの小さいキーボードで特に効果を発揮します。
上の画像は私の設定例です。
これはQキーに設定してあります。
私はどうしてもデフォルトレイヤーにTabキーが欲しいので、短押しでTabキー、長押しでコントロールキー、2連続押すことでQキーが入力されることにしています。
なぜここにコントロールキーが必要かというと、Aキーも同様にコントロールキーと相乗りさせているので、Ctrl+Aが非常にやりづらいんですよね。
連続押す間隔はTapping term(ms)で編集可能です。
自分が無理なく入力できる間隔を模索し、設定してください。
ちなみに、Tapping termは短押し時にも影響があります。
Tapping termが経過するまでキーを押しても確定されません。
なので私のように220と設定すると、0.22秒経過するまでTabキーは確定されないということになります。
Tabキーを連打して変換候補を切り替える場合、結構フラストレーションがたまります。
※これが嫌な場合は他の設定方法もあるのですが、使い分けが難しく話が非常に長くなるので別記事にします。
Tap Danceの設定が終わったらマクロと同様にキーコードと同じように設定します。
Comboを設定する
これもVialの大きな特徴です。
これはキーコードのように設定するのではなく、2つ以上のキーコードが同時に入力された場合、他のキーコードに置き換えるという機能です。
この画像例ではQとWのキーコードが同時*4に入力される場合、Tabというキーコードに置き換えるという意味となります。
これも30%サイズのキーボードに使用するとキー数が削減できる機能です。
Tapにコントロールキーやシフトキーなどを設定した場合、コンボキーを一つでも入力し続けることで長押しになります。
つまり、「A」+「S」で「Ctrl」キーと設定する場合、同時押し後に「S」キーを一瞬離してもう一回押すと「Ctrl+S」となりますし、「A」キーを一瞬離してもう一回押すと「Ctrl+A」となります。
しかし、気づきましたか?
私のキーボードはQというキーコードはTap Danceの奥底に押し込んであるので、このように設定すると全く使えないんですよ。
私もComboに慣れようと頑張ってみたんですが、難しかったのです。
Key Overrideを設定する
これもVialの大きな特徴ですが、結構ややこしいです。
色々なことが出来ますが、修飾キーとの組み合わせに他のキーコードを被せることができます。
例えば、Shiftキー+1では「!」が入力されますよね。
ですがこの画面例のまま設定するとShiftキー+1で「&」が入力されてしまうわけです。
他にもShiftキー+BackspaceキーでDeleteキーにしたり、Ctrlキー+YキーでCtrl+Shift+Zキーにしたりもできます。
しかし、この機能を多用して慣れてしまうと、他のキーボードにした時に違和感がバリバリ出てきそうで、私はちょっと怖いです。
特定の用途のマクロパッドでは便利そうです。
QMKの詳細な設定を変更する
これまたVialの大きな特徴です。
とても多くの設定をいじることができるので、主に使用するであろう部分をピックアップして紹介します。
Tap-Holdの設定を変更する
「QMK Settings」の「Tap-Hold」というタブで変更します。
この項目は1つのキーの短押しと長押しで機能が切り替わる機能を割り当てている場合に役に立ちます。
Tapping Term
Tapping TermはTapとHoldの判定時間を変更することが出来ます。
短くするとTapが難しくなり、長くするとTapしてもキーコードが送出されるまで長くなります。
標準は200msと設定されていますが、私は主に180msで使用しています。
みなさんも自分の使い方におけるTapとHoldの良い具合を見つけてください。
Permissive Hold
Permissive HoldはTapping termの時間以内でも、他のキーが入力された場合はHoldとなる、という設定です。
例えば短押しエンター、長押しレイヤー1のキーがあるとします。
このキーと他のキーを組み合わせてレイヤー1のキーを打ちたいとした時、Tapping Termの時間内に次のキーを押した状況において、Permissive Holdが無いとエンターキーとそのキーが連続して入力されてしまいます。
この機能は普通のキーボードにおいてはかなり便利な機能で私も活用していますが、シフトキーとコントロールキーをアルファベットキーと同居させる30%サイズのキーボードの場合、邪魔になってしまうことが多いので注意が必要です。
例えば「Z」キーの長押しに「Shift」機能を付けていた状況においてこのPermissive Holdを有効にしてしまうと、「ぞ(zo)」と入力したつもりでも「I(Shift+i)」と大文字のアイになってしまうことがあります。
Ignore Mod Tap Interrupt
Ignore Mod Tap Interruptは、簡単に言うとPermisiveHoldの逆です。
同時に押してもTapping term以下の押下時間である場合は2つのキーのTapと認識されます。
Permissive Holdの例の場合、「Z」キーの長押しに「Shift」機能を付けていた場合にちゃんと入力されるようになります。
私は40%以上のキーボードを使用する場合はこの機能を使いませんが、30%サイズのキーボードを使う場合はこの機能を有効にしないとまともに打てませんでした。
Tapping Force Hold
Tapping Force Holdは短押しと長押しで違う機能を割り当てている場合に効果を発揮します。
普通のキーボードは同じキーを押し続けた場合、押し続ける限り入力され続けます。(キーリピート機能またはオートリピート機能と言います)
しかし、短押しと長押しを同じキーに設定するとこのキーリピートは機能しなくなります。
そこで通常は短押し後にもう一回押すことでキーリピートが機能するようになっているのですが、このTAPPING_FORCE_HOLDを有効にすることで同じ状況でキーリピートではなく、長押し判定になります。
キーリピートが無効になることは文字の入力時はともかく、ゲームでは致命的に不便なことになってしまいますので用途によって設定を分けた方がいいかもしれません。
※なお本記事執筆時に本機能の有無による挙動の変化を検証していましたが、キーリピート機能を有効化(つまりTapping Force Holdを無効化)できないようです。
私の環境起因かどうかはちょっと不明です。
(記事公開後追記)
ファームウェアをコンパイルする前にQUICK_TAP_TERMとHOLD_ON_OTHER_KEY_PRESSを有効にしちゃっていた(いつもの設定)のでTapping Force Holdが有効になっちゃっていたみたいです。
これを解除してからもう一回検証してみます。
Retro tapping
Retro tappingはTapping termの時間を越えても組み合わせる他のキーが押されない場合、短押しと判定されるという機能です。
これだけ聞くと「いつ使うの?」と思われるかもしれませんが、この機能はTapping termを極端に短くすることで真価を発揮します。
ただし、シフトキーやコントロールキーを短押し/長押しで使い分けていると困る場合も出てきます。
他のキーが押されない場合というのは、マウスなどの他のデバイスの操作は含まないわけです。
つまりFusionやIllustratorなどのソフトでシフトキーやコントロールキーを押しながらマウス操作する時に、意図しないキー入力が漏れてしまう場合があるのです。
というわけで私は使っていません。
Comboの設定を変更する
同時入力と判定される時間を変更します。
長くすると誤爆する可能性が大きくなりますが、70ms以下にすると私はうまく出せませんでした。
Mouse keysの設定を変更する
マウスキーの速度などを変更することができます。
英語で書いてあるとおりなのですが、パッと見てよく分からない人もいると思うので翻訳しておきます。
- 移動キーを押してからカーソルが動くまでの遅延
- カーソル移動間の時間(ミリ秒)
- ステップサイズ
- 加速が停止する最大カーソル速度
- 最大カーソル速度に達するまでの時間
- ホイールキーを押してからホイールが動くまでの遅延
- ホイール移動間の時間
- スクロールアクションごとの最大スクロールステップ数
- 最大スクロール速度に達するまでの時間
キーマップをファイル保存する
アプリ版のみ「File」から「Save current layout」または「Ctrl+S」で煮詰めた設定をローカルに保存することができます。
一度煮詰まったと思えた場合は保存しておくことをオススメします。
ロック/アンロックする
Vialはアプリ版でもWeb版でも、接続してしまえばマクロの内容を見れてしまいますし、変更できてしまいます。
そもそもパスワードをマクロで入力させるのは良くないという話でも有るのですが、第三者に勝手に書き換えられて変なコードを不意に入力させられてしまうというリスクもあります。
なので、マクロを設定する場合はアンロックしてから使用する必要があります。
アンロック方法は「Security」の「Unlock」から行います。
そして画面の指示通り、デフォルトではEscキーとEnterキーを数秒間長押ししてロックを解除します。
でもこれ画面に出ちゃっていいんですかね??
同時押しするキーは変更することもできますが、ファームウェアを作り直す必要があります。
また、この画面になるとロック解除するかUSBを抜き差しするまでキー入力が一切できなくなります。
Tips:基本知識とか、設定方法とか
レイヤーとは
レイヤーとは市販のコンパクトキーボードにあるファンクションキーに該当するもので、使用する状況に応じて複数設定する事ができます。
レイヤーの表示切り替えはキーマップ編集画面上部の数字を選ぶことで切り替えられます。
ハードリセットについて
キーマップの書き換え時に不具合が発生して、最初の状態に戻したいときはハードリセット(EEPROMリセット)を試してみてください。
方法はキーボードの一番左上のキー(概ねエスケープキー)を押しながらUSBを接続すると初期状態に戻ります。
逆に何もしてないけどキーマップが初期化された!という場合は、USBケーブルを差すときに左上のキーを押してしまっていたということがほとんどです。
こうなってしまったら元には戻せないので、保存したキーマップを使って戻してください。
個人的経験に基づく設定の煮詰め方
近い内に30%キーボードを使いこなすための記事を書こうと思います。
もしかしたらBeThirtyガイドブックという本にしちゃうかもしれません。
Vial用ファームウェアの作成方法について
これも近い内に書こうと思います。
ランキング参加中
面白かったり、期待していただけましたらポチッとお願いします!
おわりに
Vialについて出来る限り詳しく解説してみましたが、いかがでしたでしょうか。
30%サイズの使用に必要な微調整がファームウェアの書き換えなしに試行錯誤し放題とは、便利な時代になりました。
本記事の記載内容に対して変更や更新要望等あれば遠慮なく私のDiscordまでどうぞ。
salicylic-acid3.hatenablog.com
本記事はO39Be + 3Dプリンタケースで書きました。