見出し画像

自作キーボード:やさしいVial対応のしかた


はじめに

以前、「やさしいファームウェアの作り方」という記事を書かせていただきました。
知識不足のため、最低限の情報しか記載できず、キーの設定変更に煩雑さを感じた方もいらっしゃったかと思います。
しかし、Vialというキー設定ツールを使えば、作成したファームウェアを対応させることで、簡単にキー設定を変更できます。
この記事では、Vialへの移植方法をやさしく解説していきたいと思います。

対象としている方

  • QMKでファームウェアを作成済み

  • エンジニアではない

  • プログラミングが得意ではない

  • 一体型のキーボードを作成した

  • キーボードが光らない

  • ロータリーエンコーダーなどは搭載していない

  • Macを使用している(Windowsでも通じる部分はあるかと思います)

  • ターミナルなど文字だけの画面が怖い

必要なもの・使用するもの

  • Webブラウザ(Chrome系が望ましい)

  • ターミナル(最初からMacにインストールされている)

  • テキストエディター(MicrosoftのVisual Studio Codeがお勧め)

大まかな流れ

  1. 専用のjsonファイルを作成する

  2. 環境構築を行う

  3. 必要なファイルを作成する

  4. ファームウェアをコンパイルする

専用のjsonファイルを作成する

レイアウトの作成

Keyboard Layout Editorに遷移し、キーレイアウトを作成して下さい。
レイアウトが完成したら、RowとColの値を入力します。
詳細は、やさしいファームウェアの作り方の該当箇所を参照してください。

完成図

RowとColの値を入力したら、Raw dataタブ内の「Download JSONボタン」を押下し、jsonファイルをダウンロードします。

jsonファイルの作成

次に、テキストエディターを開き、新しいページを作成して下記の文言をコピペして下さい。

{
    "lighting": "none",
    "matrix": {
        "rows": 0,
        "cols": 0
    },
    "layouts": {
        "labels":
        "keymap":
    }
}

ペーストしたら、"keymap": のコロンのところで改行を行い、先ほどダウンロードしたjsonファイルの中身を全て貼り付け、"labels": を削除します。

"labels": にも使用用途がありますが、今回は使用しません。
詳しい説明に関しては、公式サイトを参照して下さい。

"keymap": のところで改行して貼り付ける

"matrix": { の修正

キーレイアウトをペーストしたら、"matrix": { の値を修正します。

例:
"rows": 0, → "rows": 4,
"cols": 0 → "cols": 12

この部分
作成したキーボードの行数を数えて入力
修正後

修正が終わったら、「vial.json」という名前でデスクトップに保存して下さい。

vial.jsonファイルの確認

作成した「vial.json」ファイルの内容が期待通りになっているか確認します。
まずは公式サイトからVialのソフトウェアをダウンロードします。
ダウンロードしたVialを開くと、セキュリティ警告が表示されます。以下の手順でセキュリティ設定を変更してください。

  1. システム設定を開きます

  2. プライバシーとセキュリティを選択します

  3. セキュリティの項目にある「このまま開く」ボタンを押下します

  4. Vialを再度開きます

このまま開くボタンを押下する

Vialが開いたら、画面左上のFile内にある、「Load dummy JSON...」を押下します。

Load dummy JSON...を押下

先ほどデスクトップに保存した「vial.jsonファイル」を読み込み、Keyboard Layout Editorで作成したキーレイアウトが表示されれば、vial.jsonファイルの完成です。

表示されないキーがある場合、RowとColの書き方が間違っています。
下記のように、カンマではなく、ピリオドになっている可能性が高いです。
正:"0,0",
誤:"0.0",

キーレイアウトが期待通り表示されると、ちょっと嬉しい

環境構築を行う

下記のコマンドをターミナルで実行し、GitHub上にあるvial-qmkのデータを、自分のMacの中にコピーします(多分この理解であっているはず…?)。
大量の文字が流れていきますが、これは正常な動作です。しばらく待って、すべての文字が流れ終わるまで待ちます。

git clone https://github.com/vial-kb/vial-qmk

文字が止まったら、画面左上の移動→ホームを押下し、ホームフォルダに遷移し、vial-qmkフォルダが作成されていることを確認します。

移動→ホーム

必要なファイルを作成する

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をペースト

もしレイヤーの記述をしていない場合は、やさしいファームウェアの作り方の該当箇所を見ながら必要な分だけ記述しておいて下さい。

ここまでの作業が終わっていれば、vialフォルダの中身はこうなります

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}
#define VIAL_KEYBOARD_UIDをコピペする

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}

下の画像で赤く囲ったキーがロック解除のキーになります。

ロック解除のキー

ここまでの作業が終わると、config.hの中身は下の画像のようになるはずです。

config.hの中身

これでVialへの移植作業は完了です。


ファームウェアをコンパイルする

まずは、ターミナルで下記のコマンドを実行し、vial-qmkフォルダに移動します。

cd vial-qmk

次に、下記コマンドを実行し、ファームウェアをコンパイルします。
「xxxx」の部分は作成したキーボードの名前に変えて下さい

make xxxx:vial

例:

make test001:vial

コンパイルが完了すると、vial-qmkフォルダの中に「xxxx_vial.hex」というファイルが作成されています。

ファームウェアの書き込み方法はQMKの時と変わりませんので、この記事では省略させて頂きます。
忘れてしまった方は、やさしいファームウェアの作り方をご覧ください。

Vial対応したファームウェア

コンパイル時にエラーになりそうな所

The firmware is too large!と表示される

これはファームウェアの容量が大きい場合に表示されるエラーです。
vialフォルダ内のrules.mkファイルに、下記の文言を追記して下さい。容量の削減が行えます。

LTO_ENABLE = yes

おわりに

Vialの移植、お疲れ様でした!
今回も、この記事を書きながら移植作業をしていましたが、私の環境では問題なく書き込みまで完了しました。

ファームウェアの作成に比べたら、Vialの移植は意外と簡単だったと思います。
今回も分からない人目線で、誰でも作成できるように分かりやすく書きましたので、最低限の作成方法のみ記載しており、LEDの点灯などについては、公式サイトを参照して下さい。

また、私の知識不足により、質問への回答は難しいことをご了承ください。

この記事はAkashaを使用して書きました。

この記事が気に入ったらサポートをしてみませんか?