自作キーボード温泉街の歩き方

自作キーボードの世界は温泉に例えられます。自作キーボードの温泉街の楽しい歩き方を紹介します。

『Keyboard Quantizer』について語るよ!

 こんにちは。自キ温泉ガイドのサリチル酸です。

 f:id:Salicylic_acid3:20181119233252p:plain

今回はPC入力機器用ガジェット『Keyboard Quantizer』について語ろうと思います。

はじめに

BLE Micro Proを開発したせきごん氏(@_gonnoc)が開発したKeyboard QuantizerというPC入力機器用ガジェットはご存知でしょうか?

このガジェットは市販のキーボードやマウスのUSBケーブルとPCの間に取り付けることで、キー入力内容を変更してPCに伝えることが出来ます。

簡単に言うと、市販のキーボードやマウスの全てのキーを変更可能にし、QMKファームウェアを利用できるようにするガジェットです。

これを活用するとPCのソフトウェアでキーボードの変更をしていても、他のPCでは設定を継承出来ないといった不便に対して対処することが出来ます。

注意事項

本キットは私が設計したものでは有りませんので、私はKeyboard Quantizerの組み立て方やファームウェアについての質問には答えられません。

また、本記事の中で行う工夫や改造は全て私自身の責任において実施しております。

同様の工夫や改造を行ったとしても同じ結果や感想となることを保証できませんのでご注意ください。

入手について

こちらから入手できます。

Keyboard Quantizer (未組立版)shop.yushakobo.jp

booth.pm

組み立てについて

こちらを参照してください。

github.com

未組立版はUSBコネクタを2つハンダ付けする必要がありますが難易度は高くないです。

ハンダ付けに自信がない場合はBoothには組立済バージョンがあります。(が、入荷頻度が同等とは限りません。。)

使い方について

ファームウェアの書き込み

QMK Toolboxを起動し、Keyboard QuantizerのVIA用のファームウェアを選択し、「Keyboard Quantizerに機器を接続しないまま単体で」PCに接続します。

f:id:Salicylic_acid3:20210331020359p:plain

そしてFlashボタンを押してファームウェアを書き込みます。

※Auto-Flashは使用しないほうがいいです。書き込みが終わってもまたすぐBootLoaderに入ってしまい、何度も書き込みに行ってしまいます。

PCに接続する

ファームウェアの書き込みが終わったら一旦Keyboard Quantizerを抜き、USB機器を接続してからPCに再度挿します。

Remapに接続する

f:id:Salicylic_acid3:20210331021359p:plain

Remapの使い方はこちらを参照してください。

salicylic-acid3.hatenablog.com

打鍵動画

私がかつて愛用していた東プレRealforce91Uにいつも使用しているキーマップを乗せることが出来ました。

文字入力画面が見えないので分かりづらいですが、エンターキーやバックスペースキーを親指キーに割り当てています。

Tips:マウスの接続

このガジェットの名前には『Keyboard』とありますが、マウスにも使えます。f:id:Salicylic_acid3:20210331030651p:plain

むしろマウスに使った時の威力が絶大なので、持っている方は是非試してみてほしいです。

特に便利な機能は以下の2点です。

1.レイヤー機能

2.ジェスチャー機能

例えば、5ボタンマウスのボタンで長押しをしない「進む」「戻る」ボタンにQMKファームウェアのレイヤー機能を割り当てることが出来ます。

私はOrbit Fusionというトラックボールを使用しています。

Kensington Orbit Fusion ワイヤレストラックボールK72362JP

Kensington Orbit Fusion ワイヤレストラックボールK72362JP

このトラックボールには概ね満足していますが、小さい不満がいくつか有りました。

その不満の一つにボタンが少ないこと、ジェスチャー機能が設定出来ない事がありました。

そこでKeyboard Quantizerを使用すると「進む」「戻る」ボタンを長押ししている時にジェスチャー機能がOnとなり、マウスカーソルの動きに合わせて「Ctrl+Z」、「Ctrl+Y」、「Ctrl+W」、「Ctrl+Shift+T」が機能するように設定しました。

また、「進む」「戻る」ボタンを押しながら右クリックを押すと「Ctrl+Z」が機能するようにしました。

まだ試行錯誤中ですが、非常に便利です。

ファームウェアについて

せきごん氏のビルドガイドには「マウスの挙動を変えたい場合にはQMKファームウェアを書き換える必要があります」とあり、コンパイル済みのファームウェアは公開されておりません。

是非一回試してもらいたいと思い、私が設定したファームウェアを公開します。

ですが、他のマウスでの動作は保証しませんので注意してください。

drive.google.com

ファームウェアの設定のポイント

TAPPING_TERM

\keyboard_quantizer\config.h

単押しと長押しの機能の切り替え時間を定義できます。

マウスにおいてはジェスチャー機能の動作に影響が多く出ます。

標準では200が設定されていますが、200だとジェスチャー機能が上手く動いてくれず、100だと単押しを認識してくれなかったので調整に苦労しました。

#define TAPPING_TERM 150

keymaps

\keyboard_quantizer\keymaps\keymap.c

マウスのボタン動作を定義できます。

QMKファームウェアのキーコードを使用して記載します。

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = {{KC_BTN1, KC_BTN2, KC_BTN3, LT(1,KC_BTN4), LT(1,KC_BTN5), LCTL(KC_C), LCTL(KC_V), MO(1)}},
  [1] = {{KC_BTN1, LCTL(KC_Z), KC_BTN3, _______, _______, _______, _______, _______}},
};

process_gesture

\keyboard_quantizer\keymaps\keymap.c

case1から下、左、上、右にマウスカーソルを動かした時の動作になります。

標準ではtap_codeで定義されていますが、tap_codeではモデファイアキーとの組み合わせができないので、tap_code16を使用しています。

void process_gesture(uint8_t gesture_id) {

   switch (gesture_id) {
      case 1:
         tap_code16(LCTL(KC_W));
         break;
      case 2:
         tap_code16(LCTL(KC_Z));
         break;
      case 3:
         tap_code16(LCTL(LSFT(KC_T)));
         break;
      case 4:
         tap_code16(LCTL(KC_Y));
         break;
      default:
         break;
   }
}

GESTURE_MOVE_THRESHOLD

\keyboard_quantizer\keymaps\keymap.c

ジェスチャー機能が動作するために必要なマウスカーソルの移動量です。

#define GESTURE_MOVE_THRESHOLD 20

おわりに

いかがでしたでしょうか。

マウスにも使用できて非常に便利&面白いガジェットなので是非使ってみてください。

冒頭でも書きましたが、私はKeyboard Quantizerのサポートはできませんので不具合や質問は購入店までどうぞ。

※記事の記載ミス等は私のDiscordにて指摘いただけますと幸いです。

salicylic-acid3.hatenablog.com

本記事はNaked64SFv3で書きました。