見出し画像

Claw44であそぼ。⑫(Vial/Combo編)

はじめに

一日で一番手に触れているものはキーボードという思い込みから、不便さを克服することにより得られる快楽を毎日満喫するために小さなキーボードの導入を思い立ち、2022年12月にClaw44の購入を決意。プログラミングと自作キーボードの知識ゼロから始めた自作キーボード素人によるClaw44カスタマイズの奮闘記を綴っていきたいと思います。

VialのComboとは

猫山王はVial教団の熱狂的な信者であり、Vial友の会の会員としてVialの普及に尽力していることはご存知のことであろう。Claw44にVialを導入して以来タップダンサーとコンボの使い手としての両方の活動に注力している。そもそもコンボとはどのようなものなのか、タップダンスとの違いから解説していく。
コンボは旧ソ連の格闘技であるサンボをその源流とした正統進化版で、2つ以上のキーを同時又は予め設定した順序で一瞬の隙をついて瞬く間にキー押したときの挙動を自由自在にコントロールできる護身術として発展し、コンボ柔術がその正式名称である。例えば「H」と「J」を同時に押すと「←(カーソルキー)」になるというのをイメージしていただければ良いだろう。一方で、タップダンスはひとつのキーに対して、タップ(短押し)、ホールド(長押し)などそれぞれの挙動を設定することである。猫山王のようなキーボード初心者にとって30%キーボードは、タップダンスやレイヤーを駆使したとしてもストレスのないキー入力の実現は困難で、不便さを克服することにより得られる快楽を得るキーマップの実現は不可能と考ている修行僧も多い。コンボ柔術を習得することでメインレイヤーにおけるキー入力の自由度が格段に増え、不便さを克服することにより得られる快楽を毎日満喫することができる。ここにコンボ柔術を習得する意義があるといえよう。この護身術の習得には、迷子になったら公式サイトを合言葉に、以下の公式サイトの該当ページを熟読することをお勧めする。

英語の説明も非常に簡単で基本的にはGUI上で操作ができるので猫山王の詳細解説は不要と思うが、Vialのコンボの素晴らしさをお伝えしてVialの布教活動に役立てられればと思う。

VialでのComboの楽しみ方

VialのコンボはGUI上で設定ができる他に類を見ない親切機能を搭載しているが、FirmwareをVial対応すれば即利用可能という訳ではない。「Claw44であそぼ。⑧(Vial編)」でVialのコンボの機能の有効化について記載している。

1.rules.mkファイルの内容を書き換えよう
Vialでコンボの機能を有効にするためには、keymaps/vialフォルダ下のrules.mkファイルに「Claw44であそぼ。⑧(Vial編)」に記載の必須呪文に加えて、推奨呪文のうちコンボに関する以下の記載が必要である。

COMBO_ENABLE = yes

2.さあ、コンパイルしよう
Vial対応済みのソースコードであれば上記の呪文を追記してQMK MSYSでのコンパイルで準備完了。Vial友の会のコンパイルのお作法として、Vial友の会の会員のみが使用を許されたコンパイル用のコマンドを記載しておく。ここで、[keyboard_name]はVialのソースコードが格納されている任意のフォルダー名で、Claw44であればdailycraft/claw44が考えられる。

cd vial-qmk
make [keyboard_name]:vial 

3.Comboを設定しよう
ここからはGUI上でのコンボの設定が如何に簡単にできるかを力説していく。webブラウザーまたは専用アプリでVialにアクセスして、Combosタブをクリック。設定可能なコンボの数だけ数字タブが並んでいるのがお分かりいただけるだろう。デフォルトは8つで最大32まで増やすことができる。猫山王のClaw44は最大の32の設定ができる重度のMAXコンボ中毒症候群のグレーシー柔術仕様にしてある。ここで無邪気にコンボの設定数を増やし過ぎて容量が心配で不安で夜も眠れない小心者の修行僧や任意の数を設定したい修行僧は、config.hに以下の呪文を追加することでコンボの設定数を思いのままにコントロールできる。この辺りはタップダンスと非常に似ている。

#define VIAL_COMBO_ENTRIES XX // XXは任意の数字

話を元に戻して、猫山王の設定を参考に設定画面を見ながら解説していく。

数字の1のタブをクリックするとコンボの設定画面に移動する。タップダンスの場合は0からスタートしているがコンボの場合は自然数の1からのスタートとなっているのは、ひょっとするとタップダンスは数字のゼロを発見したインドにルーツがあるのではと妄想してしまう。上から順番に各項目の日本語訳を記載しておく。

Key 1~Key 4 ←同時に押すキーを指定
Output key    ←上記で指定したキーを同時に押したときの挙動

各項目をクリックして、それぞれの項目でアサインしたいキーを指定すれば良い、それだけである。Key 1~Key 4とOutput keyのアサインについてはAnyキーやタップダンスで設定したキーもアサインでき、何の制約もなく思い通りのキーがアサインできる相変わらずの無双っぷりである。タップダンスにせよコンボにせよVialでの設定の制約のなさは正に無双状態であり、つくづく驚かされる。時代はVialなのだろうか?Output keyにタップダンスで設定したキーをアサインした場合は、同時に押すキーをタップ、ホールドすることになる。ひとつのキーだけでタップダンスしている方が良いのではないか疑惑があるが、これはこれで大きなメリットがあると猫山王は信じている。
ひらがなでQを使うことは皆無とは言え、アルファーキーの一部をメインレイヤー以外のレイヤーに配置するような変態修行僧の特殊な状況を除いて、通常はすべてのアルファキーをメインレイヤーに配置することになるであろう。例えば、10uの30%のキーボードであれば、最上段はQ~Pのアルファーキーで埋まってしまい、中段、最下段においても大部分がアルファーキーで埋まることになる。また、アルファーキーは普通はタップで入力するもので、ダブルタップやホールドでアルファーキーを入力する超絶変態仕様の特異点的なキーマップは当然に除く。そうなると、かな入力変換やカーソルキーをコンボとタップダンスのスーパーコンビネーションで対応することで、アルファーキーの入力はひとつのキーとして、それ以外はすべて複数キーの同時押しといった具合に入力パターンの区別がつけられ、レイヤー切り替えなしにメインレイヤーでスコスコ入力できる夢のキーマップが完成する。

4.さらに高度なComboの設定をしよう
keymaps/vialフォルダ下のrules.mkファイルに「Claw44であそぼ。⑧(Vial編)」に記載の必須呪文の以下の記載を加えることで、コンボ柔術界の上級修行層が好むより高度なコンボの設定もGUI上で可能となる。

QMK_SETTINGS = yes

webブラウザーまたは専用アプリでVialにアクセスして、QMK Settingsタブをクリック、Comboタブをクリックするとすると同時押しと判定する時間を自由自在に設定できる。ゆっくりと締め上げるスタイルを好む修行僧であれば、このTime out periodをデフォルトの50msよりも長くすれば、技の判定までの時間に余裕を持たすことができる。Time out periodを変更する場合には、右下のSaveをクリックするのを忘れないようにしなければならない。

コンボ柔術界の上級修行僧はさらなる裏コマンドを用いていたりする。それは、「コンボは2つ以上のキーを同時又は予め設定した順序で一瞬の隙をついて瞬く間にキー押したときの挙動」と解説したように、上記のTime out period内に複数のキーを予め設定した順序で押すことでOutput keyの挙動を変えることができる。例えば、「H」「J」の順序で押した場合は「←(カーソルキー)」、「J」「H」の順序で押した場合は「→(カーソルキー)」とすることができる。この裏技を可能とするにはCombosタブのKey 1が最初のキー、Key 2がその次といった形で、Key 1~Key 4を順番通りにアサインする必要があるのに加えて、keymaps/vialフォルダ下のconfig.hファイルに下記の呪文の追加が必須である。

#define COMBO_MUST_PRESS_IN_ORDER

いうなれば、この裏呪文の追加をしなければ、Key 1、Key 2をどのように設定しようが「H」「J」、「J」「H」のいずれの順序で押したとしてもOutput keyの挙動に変化は起こらない。この裏技を使うことで、2つのキーであれば2通りの挙動、3つのキーであれば6通りの挙動、Key 1~Key 4の4つのキーを使う場合には場合の数としては実に24通りの挙動とすることができる。24通りともなれば、非現実的で実用性が皆無のようにも思えるが、コンボ柔術界の免許皆伝のマイスターともなればきっと使い分けているのだろうと信じてやまない。ちなみに猫山王はコンボ柔術界では白帯なので、#define COMBO_MUST_PRESS_IN_ORDER の使用は許されていない。

コンボ柔術のイメージや裏技のイメージについては、「QMK Vial's combo is pretty cool」と題したKolloon氏のE-learningが非常に分かりやすく参考になる。

実際にVialでComboを利用してみて

QMK Firmwareであれば、コンボ柔術にしてもタップダンスにしても毎回呪文を更新してその都度コンパイルの嵐の修行が必要となる。一方で、キーボード初心者にとっては全く馴染みがなく平和なキーボードライフを送っていると巡り合うことすらないコンボ柔術であるが、VialではGUI上で完結でき、猫山王のようなキーボード初心者であってもいとも簡単にコンボ柔術の技を使うことができる。コンボ柔術を使うことでClaw44のメインレイヤーであれば44通りであった入力が、2キー同時押しのコンボを設定することで純増させることができる。つまりTabキー、Backspaceキー、DeleteやレアキャラのEscキー、さらにはカーソルキー、数字キー、記号キー、Fnキーなどもコンボ柔術で対応してメインレイヤーのみで入力を完結できる可能性を秘めている。猫山王はコンボ柔術については、いまだ試行錯誤段階ではあるものの、2つのキーの同時押しであれば上下左右隣合うキーの間をひとつの指でポチッと押すことで2つのキーをひとつの指で同時に押すことができるというスーパーテクニックを発見した。Vialではコンボ柔術は簡単に設定できるので、是非試してほしいテクニックである。そういう意味で言うと、コンボ柔術は狭ピッチやカラムスタッガード、オーソリニア(格子配列)のキーボードとの相性が非常に良いといえる。現在猫山王のコンボの技はカーソルキー(「H」「J」=「←」、「U」「J」=「↑」、「K」「J」=「→」、「M」「J」=「↓」)やマウスのホイールスクロール、ボリュームコントロールくらいしか使っていないが、コンボ柔術を習得することでメインレイヤーでの操作性が格段に向上し、多重レイヤー切り替えでも適応することが困難な憧れの30%キーボードへの道も見えてきつつあると感じている。すなわちコンボ柔術は重度のレイヤー依存患者へ救いの手を差し伸べ、レイヤー依存症の更生プログラムとなりえる救世主メシアといえる。いつかはQAZを目標に引き続き精進していく所存である。コンボ柔術の活用方法をご存知の修行僧の方がいらっしゃれば是非教えてください。いずれは飛び込み大パンチ・アッパー昇竜拳級の技を使いこなしてみたいものである。ちなみに猫山王はストⅡでスクリューパイルドライバーすら一度も出せたことはない。
猫山王はコンボについてはVial友の会の会員になってからのお手軽コンボとしてしか利用できていないので、QMK Firmwareでのコンボのすべての機能は把握できていない。とはいえ、QMK FirmwareであればVialのコンボのようにキー数が4つまでではなく無限に設定できたり、順番についても各コンボの設定ごとに有効化できたりするのかなーとか想像してみたりしている。コンボ柔術会のマイスターや上級修行僧からするとVialのコンボはタップダンス同様に万能ではなく、おこちゃま仕様に映ってしまうのかもしれない。とはいえ、猫山王のようなキーボード初心者にとって全く馴染みがなく平和なキーボードライフを送っていると巡り合うことすらなかったコンボ柔術をお気軽に試すことができ、日常使用として十分に耐えうる仕様を提供いただいているVial教祖様のご加護に感謝している。
今回はVialでのコンボについて、コンボとは何たるものかをその歴史から紐解いて力説してみた。キーボード初心者にとって全く馴染みのないコンボではあるが、コンボの活用方法とVialでの操作性についてより具体的にイメージいただき、Vial教団へ入信の後押しとなりコンボ柔術を護身術として学びたい修行僧にとって一助となれば幸いです。
自作キーボードは敷居が高いと思われている方にとって、一日で一番手に触れているものはキーボードということで、不便さを克服することにより得られる快楽の世界への入門のための勇気づけとなれば幸いです。

Source code

猫山王のClaw44のVial対応の最新のソースコード。唯一無二の最強のファームウェアを目指して、日々修行を続けてはその都度更新しているので、奮闘記と一部内容が異なる場合があります。お酒の肴にどうぞ。

いいなと思ったら応援しよう!