見出し画像

Planckであそぼ。②(Vial編)

はじめに

一日で一番手に触れているものはキーボードという思い込みから、不便さを克服することにより得られる快楽を毎日満喫するために小さなキーボードの導入を思い立ち、2022年12月にClaw44の購入を決意。猛烈なトレーニングによりColumn Staggered 40%キーボードにも慣れてきて、外出先でも使えるように持ち運び用として2023年3月にPlanck v7のGBに参加。プログラミングと自作キーボードの知識ゼロから始めた自作キーボード素人によるPlanckカスタマイズの奮闘記を綴っていきたいと思います。

PlanckでVialの楽しみ方

猫山王はVial教団の熱狂的な信者であり、Vial友の会の会員としてVialの普及に尽力していることはご存じのことと思います。また、史上最凶のキーマップ変更ツールのVialの素晴らしさについては「Claw44であそぼ。⑧(Vial編)」を参考にされたし。Planck v7はパワフルなARM/STM32マイクロコントローラで武装(Dropの商品ページでも"armed with a powerful ARM/STM32 chip"と紹介されている)しており、これがVial化での強力なアドバンテージとなっている。つまり、一般的なMCUのATmega32U4であれば僅少容量による容量オーバーエラーのノーコンパイルのアリ地獄に陥るためRP2040への換装(「Claw44であそぼ。⑦(RP2040編)」参照)がVial化の前提となるが、パワフルなARM/STM32マイクロコントローラであれば容量オーバーエラーのノーコンパイルのアリ地獄とは無縁の世界で穏やかに修行することができる。すなわち、Planck v7ではパワフルなARM/STM32マイクロコントローラによる武装の恩恵により、ハード的な対応を必要とせずにFirmwareを書き換えるだけでVial化が完了してしまうという自作キーボード素人にはありがたい親切設計といえる。これは自作キーボードの修行僧にとって神的存在であるJack Humbert 氏の先見の明である。
しかも、Vialのリポジトリをクローンすればvial.jsonファイルを含め、Planck v7のVial対応したFirmwareのソースコード一式がコピーマンされ、それをコンパイルすればVial対応のFirmwareが完成するというもはやデフォルトでVial対応しているといっても過言ではないレベルである。いつものように猫山王のフォルダー構成とgithubのURLととものフォルダー構成を貼っておく。

1.Vial化しよう
PlanckのVial化の方法は、「Claw44であそぼ。⑧(Vial編)」の手順に従って、(2.Vialのリポジトリをクローンしよう)でクローンしたvial-qmkのリポジトリ内のPlanck  v7のファイルを活用することで対応できるが、猫山王はQMK Firmwareのファイルをお引越しすることで対応した。この辺りは好みの問題であろう。クローンしたvial-qmkのリポジトリ内のファイルを活用する方法であっても「Claw44であそぼ。⑧(Vial編)」の手順の(5.rules.mkファイルの内容を書き換えよう)、と(7.config.hファイルの内容を書き換えよう)は対応が必要である。
ここで、Planck v7をお使いの同志の修行僧は、猫山王のPlanck v7用に作成したvial.jsonファイルを添付しておくのでご活用ください。

復習もかねてQMK Firmwareのファイルをお引越しした場合のVial対応を再掲しておく。
2.rules.mkファイルの内容を書き換えよう
猫山王のvial.jsonファイルを活用いただくことで、あとはファイルの書き換えだけの楽勝ムードの消化試合である。rules.mkファイルでVial化のために追加が必須な呪文と推奨される呪文は以下である。簡単な日本語訳も記載しておく。個別機能を召喚する呪文については、使う使わないはさておき容量を気にせず全部モリモリ幕の内弁当仕様がPlanck v7でも利用可能である。

//必須の呪文
LTO_ENABLE = yes //Scotto氏は推している
VIA_ENABLE = yes
VIAL_ENABLE = yes
QMK_SETTINGS = yes //VialのGUI上で上級修行僧としてマニアックな設定を可能とし、タップダンスのディープな設定を可能とするためにも必須

//推奨の呪文 QMK_SETTINGS = yesにして個別機能の有効化が必要
TAP_DANCE_ENABLE = yes
COMBO_ENABLE = yes
KEY_OVERRIDE_ENABLE = yes
EXTRAKEY_ENABLE = yes
MAGIC_ENABLE = yes
GRAVE_ESC_ENABLE = yes
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes

//エンコーダ、七色発行体も利用可能なので、お好みでどうぞ
ENCODER_MAP_ENABLE = yes
RGBLIGHT_ENABLE = yes

3.keymap.cファイルの内容を書き換えよう
keymap.cファイルについては、書き換えるというよりはタップダンスとコンボの呪文の削除である。タップダンスやコンボについては、このままだとVial用のFirmwareとしてのコンパイル時にノーコンパイルのアリ地獄にはまってしまう。一方で、VialのQMK_SETTINGSの機能を用いてGUI上でいとも簡単に設定・変更ができるので、keymap.cでの記述はなくても何ら問題とならない。その代わり、rules.mkファイルでTAP_DANCE_ENABLEやCOMBO_ENABLEの召喚呪文は忘れず記載しておく必要がある。

4.config.hファイルの内容を書き換えよう
Vial用のFirmwareを作成するためには、config.hファイルに①キーボード固有のIDの追加、②キーボードをアンロックするためのキーコンビネーションの呪文を追加する必要がある。①キーボード固有のIDの追加については、QMK MSYSを起動して以下のコマンドを入力・エンターしてQMK MSYS上でvial-qmkフォルダに移動する。

cd vial-qmk

ほんでもって、間髪入れずに以下のコマンドを入力・エンターすると
#define以下修行僧のキーボードIDが表示されるので、そのままconfig.hファイル内にコピペすれば良い。ここで、XXは任意の英数字としている。

python3 util/vial_generate_keyboard_uid.py

#define VIAL_KEYBOARD_UID {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX}

copy

②キーボードをアンロックするためのキーコンビネーションとして、2つのキーのコンビネーションの呪文を追加する必要がある。

#define VIAL_UNLOCK_COMBO_ROWS {X, X}
#define VIAL_UNLOCK_COMBO_COLS {X, X}

それぞれ、キーマトリクスの {X, X}で表され(Xは設定のためのキーマトリックスの数字)、猫山王は左上の2つのキーコンビネーションとして定義している。Vialの公式サイトによるとセキュリティ上設定が必要な機能なのだが、猫山王はVialでのMatrix Tester(キー入力のテスト)でしか使ったことがなく、他のシチュエーションでは一切使ったことがないため使い方もよく分かっていない。使い道についてご存じの修行僧は是非教えて下さい。

上記をまとめるとVial化のために、config.hに以下の呪文を追加することになる。

#pragma once

/* define VIAL用 XXは任意の英数字としている*/
#define VIAL_KEYBOARD_UID {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 1}

5.さあ、コンパイルしよう
ここまでくれば最後はQMK MSYSでのコンパイル。呪文のコンパイルの成功は、新興宗教Vial教団の夢のキーマップ変更ツールの通行手形の入手を意味します。Vial教団のコンパイルのお作法コマンドを記載しておきます。ここで、[keyboard_name]はVialのソースコードが格納されている任意のフォルダー名で、Planckであればplanck/rev7が考えられる。

cd vial-qmk
make [keyboard_name]:vial 

無事にコンパイルが完了すれば、QMK Tool Boxなどを利用してPlanckの裏面のリセットボタンをポチポチっと押してFirmwareをキーボードに搭載してwebまたはアプリ版に接続すると新興宗教Vial教団の漆黒のGUIがお出迎えしてくれる。ちなみに、PlanckはENCODER_MAP_ENABLEに対応していないので、下記のVial教団の漆黒のGUIのロータリーエンコーダのところはダミーで、実際にはVialのGUI上でのクルクル回転殺法のキーマップ変更はできない。

6.おまけ
猫山王のVial対応のソースコードとコンパイルのお作法コマンド
cd vial-qmk
make planck/rev7_vial_v2:vial

実際にVial化してみて

猫山王はVial教団の熱狂的信者で、Vial友の会の会員を公言しているだけあって、Vial化したキーボードの使用感は当然に最高である。Vialを一度でも利用してしまうと、他のキーマップのツールには戻れないといっても過言ではない。そのくらい最高なのである。Planck v7の場合はパワフルなARM/STM32マイクロコントローラによる武装のおかげで、Firmwareを書き換えるだけでVial化できてしまうのでこれを機会にVialを是非試して欲しい。猫山王のPlanckのVialのスクリーンショットをご覧いただくと、レイヤーが"29"あることにお気づきいただけるであろう。PlanckでVIAを利用した場合のレイヤー数の限界値は"8"であるのに対して、Vialでは最大数は"29"にまで増殖することが可能である。つまり、アルファベットを1レイヤー1つ配置してもまだレイヤーが余るという人類の英知を超えた天文学的数値のレイヤー数を手に入れることができる。重度のレイヤー中毒の猫山王にとってみれば、Vial化はひと粒で2度、3度美味しい最高の秘薬である。ちなみにレイヤー数の増やし方は「Claw44であそぼ。②(レイヤー数拡大編)」を参照されたし。config.hファイルに下記の呪文を追加して、keymap.cファイルのenum layer_number、キーマップの定義のためのレイヤー名称、ロータリーエンコーダの設定のレイヤー名称をそれぞれ更新すればよい。

#define DYNAMIC_KEYMAP_LAYER_COUNT 29
#define LAYER_STATE_32BIT

PlanckのVial化のハードルはそれほど高くないので、Vial友の会の会員を夢見る修行僧にとって一助となれば幸いです。
自作キーボードは敷居が高いと思われている方にとって、一日で一番手に触れているものはキーボードということで、不便さを克服することにより得られる快楽の世界への入門のための勇気づけとなれば幸いです。

おまけ

猫山王のPlanck v7のキーマップ。お酒の肴にどうぞ。

次回

自作キーボードの修行には終わりはないものの、猫山王の経験不足で次の奮闘記は特に何も考えていない。奮闘記を毎週お楽しみにされていた修行僧の方には申し訳ない。これまで、猫山王の奮闘記を参考に修羅の国で修行され、またご自身のテーマで修業された修行僧の方はある程度のカスタマイズは独力で解決できるレベルにまで到達しているのかもしれない。
今後は不定期に思いついたテーマを配信していきたい思います。


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