![見出し画像](https://assets.st-note.com/production/uploads/images/136559845/rectangle_large_type_2_4b348f131409338924334ec87a39682e.png?width=800)
自作キーボード:やさしいVial対応のしかた
はじめに
以前、「やさしいファームウェアの作り方」という記事を書かせていただきました。
知識不足のため、最低限の情報しか記載できず、キーの設定変更に煩雑さを感じた方もいらっしゃったかと思います。
しかし、Vialというキー設定ツールを使えば、作成したファームウェアを対応させることで、簡単にキー設定を変更できます。
この記事では、Vialへの移植方法をやさしく解説していきたいと思います。
対象としている方
QMKでファームウェアを作成済み
エンジニアではない
プログラミングが得意ではない
一体型のキーボードを作成した
キーボードが光らない
ロータリーエンコーダーなどは搭載していない
Macを使用している(Windowsでも通じる部分はあるかと思います)
ターミナルなど文字だけの画面が怖い
必要なもの・使用するもの
Webブラウザ(Chrome系が望ましい)
ターミナル(最初からMacにインストールされている)
テキストエディター(MicrosoftのVisual Studio Codeがお勧め)
大まかな流れ
専用のjsonファイルを作成する
環境構築を行う
必要なファイルを作成する
ファームウェアをコンパイルする
専用のjsonファイルを作成する
レイアウトの作成
Keyboard Layout Editorに遷移し、キーレイアウトを作成して下さい。
レイアウトが完成したら、RowとColの値を入力します。
詳細は、やさしいファームウェアの作り方の該当箇所を参照してください。
![](https://assets.st-note.com/img/1712267360934-IX0c26EKCf.png?width=800)
RowとColの値を入力したら、Raw dataタブ内の「Download JSONボタン」を押下し、jsonファイルをダウンロードします。
jsonファイルの作成
次に、テキストエディターを開き、新しいページを作成して下記の文言をコピペして下さい。
{
"lighting": "none",
"matrix": {
"rows": 0,
"cols": 0
},
"layouts": {
"labels":
"keymap":
}
}
ペーストしたら、"keymap": のコロンのところで改行を行い、先ほどダウンロードしたjsonファイルの中身を全て貼り付け、"labels": を削除します。
"labels": にも使用用途がありますが、今回は使用しません。
詳しい説明に関しては、公式サイトを参照して下さい。
![](https://assets.st-note.com/img/1712259243209-qTOALLLNWu.png)
"matrix": { の修正
キーレイアウトをペーストしたら、"matrix": { の値を修正します。
例:
"rows": 0, → "rows": 4,
"cols": 0 → "cols": 12
![](https://assets.st-note.com/img/1712096132783-HMzpxCgNce.png)
![](https://assets.st-note.com/img/1712267584937-eVH9meMhEo.png?width=800)
![](https://assets.st-note.com/img/1712259318910-v4rVDz2xPF.png)
修正が終わったら、「vial.json」という名前でデスクトップに保存して下さい。
vial.jsonファイルの確認
作成した「vial.json」ファイルの内容が期待通りになっているか確認します。
まずは公式サイトからVialのソフトウェアをダウンロードします。
ダウンロードしたVialを開くと、セキュリティ警告が表示されます。以下の手順でセキュリティ設定を変更してください。
システム設定を開きます
プライバシーとセキュリティを選択します
セキュリティの項目にある「このまま開く」ボタンを押下します
Vialを再度開きます
![](https://assets.st-note.com/img/1712097219801-WtOskch3zV.png?width=800)
Vialが開いたら、画面左上のFile内にある、「Load dummy JSON...」を押下します。
![](https://assets.st-note.com/img/1712098618915-iX4kvsrLnA.png?width=800)
先ほどデスクトップに保存した「vial.jsonファイル」を読み込み、Keyboard Layout Editorで作成したキーレイアウトが表示されれば、vial.jsonファイルの完成です。
表示されないキーがある場合、RowとColの書き方が間違っています。
下記のように、カンマではなく、ピリオドになっている可能性が高いです。
正:"0,0",
誤:"0.0",
![](https://assets.st-note.com/img/1712098751315-t7vbzb51H1.png?width=800)
環境構築を行う
下記のコマンドをターミナルで実行し、GitHub上にあるvial-qmkのデータを、自分のMacの中にコピーします(多分この理解であっているはず…?)。
大量の文字が流れていきますが、これは正常な動作です。しばらく待って、すべての文字が流れ終わるまで待ちます。
git clone https://github.com/vial-kb/vial-qmk
文字が止まったら、画面左上の移動→ホームを押下し、ホームフォルダに遷移し、vial-qmkフォルダが作成されていることを確認します。
![](https://assets.st-note.com/img/1712100355787-WnY5DuodEa.png?width=800)
必要なファイルを作成する
vialフォルダを作成する
QMKフォルダ内にあるVial対応したいファームウェアのフォルダを、vial-qmkフォルダ内のkeyboardsフォルダの中にコピペします。
例:
qmk_firmware/keyboards/test001
test001フォルダをコピーし
↓
vial-qmk/keyboards/test001
ペースト
次にvial-qmkフォルダ→data→templatesの中にある、keyboardフォルダをコピーして、先ほどコピペしたファームウェアのフォルダ内にあるkeymapsフォルダの中にペーストし、フォルダ名をkeyboardからvialに変更して下さい。
例:
vial-qmk/data/templates/keyboard
keyboardフォルダをコピー
↓
vial-qmk/keyboards/test001/keymaps/keyboard
ペーストして
↓
vial-qmk/keyboards/test001/keymaps/vial
名前を変更
このvialフォルダの中に、先ほど作成したvial.jsonファイルを入れ、元から入っているinfo.jsonファイルを削除します。
次に、ファームウェアのフォルダ→keymaps→default内にあるkeymap.cファイルを、vialフォルダ内にコピペします。
例:
vial-qmk/keyboards/test001/keymaps/default/keymap.c
keymap.cをコピー
↓
vial-qmk/keyboards/test001/keymaps/vial/keymap.c
vialフォルダにkeymap.cをペースト
もしレイヤーの記述をしていない場合は、やさしいファームウェアの作り方の該当箇所を見ながら必要な分だけ記述しておいて下さい。
![](https://assets.st-note.com/img/1712260666925-VeHYbhxWFK.png?width=800)
rules.mkファイルの編集
rules.mkファイルを開き、下記を記入して保存します。
VIA_ENABLE = yes
VIAL_ENABLE = yes
キーボード ID を生成して追加する
ターミナルで下記のコマンドを実行し、vial-qmkフォルダに移動します。
cd vial-qmk
移動したら、下記のコマンドを実行し、キーボードIDを取得します。
python3 util/vial_generate_keyboard_uid.py
下記のような文言が表示されるので、vialフォルダ内のconfig.hを開き、ターミナルに表示された文言をコピペします。
#define VIAL_KEYBOARD_UID {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX}
![](https://assets.st-note.com/img/1712263587850-6TRO5GWPo9.png?width=800)
config.hは別の場所にもあるので、開き間違えに注意して下さい。
例:
vial-qmk/keyboards/test001/keymaps/vial/config.h
安全なロック解除の組み合わせを設定する
悪意のあるホストコンピュータが、ユーザーの知らないうちに重要なセキュリティ設定を変更することを防ぐために、キーの組み合わせが必要になります。
下記の文言をconfig.hにコピペして下さい。
「x」の部分は、任意のRowとColの値に書き換えて下さい。
#define VIAL_UNLOCK_COMBO_ROWS { x, x }
#define VIAL_UNLOCK_COMBO_COLS { x, x }
例えば、下記の様にxを書き換えると
#define VIAL_UNLOCK_COMBO_ROWS {0, 1}
#define VIAL_UNLOCK_COMBO_COLS {0, 1}
下の画像で赤く囲ったキーがロック解除のキーになります。
![](https://assets.st-note.com/img/1712264872152-KmU7yhyXPA.png?width=800)
ここまでの作業が終わると、config.hの中身は下の画像のようになるはずです。
![](https://assets.st-note.com/img/1712265037784-yl4fSXnbev.png?width=800)
これでVialへの移植作業は完了です。
ファームウェアをコンパイルする
まずは、ターミナルで下記のコマンドを実行し、vial-qmkフォルダに移動します。
cd vial-qmk
次に、下記コマンドを実行し、ファームウェアをコンパイルします。
「xxxx」の部分は作成したキーボードの名前に変えて下さい
make xxxx:vial
例:
make test001:vial
コンパイルが完了すると、vial-qmkフォルダの中に「xxxx_vial.hex」というファイルが作成されています。
ファームウェアの書き込み方法はQMKの時と変わりませんので、この記事では省略させて頂きます。
忘れてしまった方は、やさしいファームウェアの作り方をご覧ください。
![](https://assets.st-note.com/img/1712266117931-W6ByHOcvo9.png)
コンパイル時にエラーになりそうな所
The firmware is too large!と表示される
これはファームウェアの容量が大きい場合に表示されるエラーです。
vialフォルダ内のrules.mkファイルに、下記の文言を追記して下さい。容量の削減が行えます。
LTO_ENABLE = yes
おわりに
Vialの移植、お疲れ様でした!
今回も、この記事を書きながら移植作業をしていましたが、私の環境では問題なく書き込みまで完了しました。
ファームウェアの作成に比べたら、Vialの移植は意外と簡単だったと思います。
今回も分からない人目線で、誰でも作成できるように分かりやすく書きましたので、最低限の作成方法のみ記載しており、LEDの点灯などについては、公式サイトを参照して下さい。
また、私の知識不足により、質問への回答は難しいことをご了承ください。
この記事はAkashaを使用して書きました。
この記事が気に入ったらサポートをしてみませんか?