おぼえておきたい

記憶力がないのでおぼえておきたいことを書いています。

Keychron Q2レビュー4 キーマップ沼を覗く

はじめに

Keychron Q2はQMK/VIA対応のキーボードであるため、ユーザー側でかなり自由にキーマップを変更できます。

キーボード側にキーマップを書き込むため、異なるハードであっても基本的に同じように動きます。そのため、ソフトウェア的なリマップツールが存在しないiPadChromebookのようなデバイスであってもリマップが有効になります。

私はカスタムキーボード初心者なので、まずは一般的なUS-ANSI配列に極力準拠したものを目指しました。

Keychronの推奨はVIAですが、今回はVIAではなくVIA互換webサービスであるREMAPを使用しました。インストール不要で簡単に扱えるので素晴らしいです。

f:id:Ten_meteor:20220310221848p:plain

f:id:Ten_meteor:20220310221909p:plain

f:id:Ten_meteor:20220310221859p:plain

f:id:Ten_meteor:20220310221903p:plain

Keychron公式ページにあるjsonファイルを読み込ませることでキーマップを編集可能になります。

まだまだキーマップは試行錯誤しながらアップデート中です。

Layers

Keychron Q2が初期から設定されているレイヤーは0~4の5つです。多くの場合は足りるでしょう。

キーの数が少なくなった分、Keychron Q1やQ3よりも1レイヤー増えています。また、Q1 はデフォルトレイヤーがMacが0と1、Windowsが2と3でしたが、それぞれ0と2、1と3に変更になっています。

Layer 0: macOS default

f:id:Ten_meteor:20220310222152p:plain

Macモードのデフォルトレイヤー。背面のスイッチをMacにすることで切り替わります。

Mac及びiPadと接続する場合に使用し、US配列としてシステムに認識させる前提でキーマップを設定しますAppleバイスはキーボードの論理配列がUSであってもLang1, 2キーを日本語入力中の英数かなキーとして認識できます。

デフォルトマップから変更した点は

  1. Caps Lockキーの位置にもCommadを設定。
  2. Left Commandの短押しにLang 1 (英数)、Right Commandの短押しにLang 2 (かな)を設定。長押し時はCommandのまま。
  3. Fn1は使用しないため、Optionを設定。
  4. Space長押しにレイヤー4への移動を設定。

くらいで、ほとんどデフォルトのままです。

キーボード側にキーマップを書き込んでいるため「Kalabiner」も「英かな」も不要な上、iPadOSでも全く同じように動作します。

Layer 1: Windows default

f:id:Ten_meteor:20220310222300p:plain

Windowsモードのデフォルトレイヤー。背面スイッチをWindowsにします。ChromeOS、Androidにおいてもこのレイヤーのほうが良いです。

変換/無変換キーを使うために物理的にはUS配列ですがソフトウェア上JP配列として認識させる前提でキーマップを作成します。これらのOSでは英数かな切り替えに変換/無変換キーを使用できますが、論理US配列では変換/無変換が存在しないため認識しません。

  1. 配列が異なるため、同じキーコードでも異なる文字となってしまう記号キーを中心に印字通りのUSの配列で使用できるように変更。
  2. 1の結果Shiftキーがまともに使えなくなるため、左Shiftをレイヤー3へ移動(MO(3))とし、Shift配列用のレイヤーをまるごと作成。
  3. 左右Altキーの短押しに変換/無変換を設定し、必要に応じてソフトウェア的に変換/無変換キーにIMEオンオフを割り当て。
  4. Caps lockの位置にCtrlを設定。
  5. Fn1は使用しないためCtrlを設定。

ちなみにChromeOSではCaps Lockの位置にEverythingキーがありますが、これはWindows/Commandキーとキーコードが同じなのでこの配列だと位置がずれます。強引に何とかするのであればChromeOS用にレイヤーを用意したほうが良いかもしれないです。

Layer 2: 空き vacant

もともとmacOS用のメディアコントロール用のレイヤーでしたが、使わないので削除した結果、空きレイヤーになってしまいました。

(普段は外部スピーカーを繋いでおり音量はスピーカー側でしか制御できず、外部モニターの明るさはモニター側でしか制御できないので重要度が低いです。)

layer 3: Shift

f:id:Ten_meteor:20220310222459p:plain

もともとWindows用のメディアコントロールレイヤーですが、使わないので全部まるごと書き換えます。

物理US配列を論理JPキーボードとして認識させることで生じるズレを、Shiftに相当するキーコードをレイヤーをまるごと設定して強引に解決します。

数字列、記号列はJP配列で認識させると全く違う並びになってしまうのでほとんど新規で振っています。

欠点として、左Shiftキーは本来のShiftとしての役割を持ってません。左Shift+アローキーはそのように設定しているため効きますが、左Shift+マウスクリックは認識しません。これはもうどうしようもない。

 

Layer 4: Function and Arrow

f:id:Ten_meteor:20220310222559p:plain

レイヤー移動はSpace長押し。

Fキーとアローキー、キーボードLEDの設定キーを配置します。まだ物を置く余地が多いです。

実験的に、誤爆しづらい右の方にアプリケーション終了のAlt+F4、Ctrl+Alt+Del、System PowerDownを置いています。たまに使います。

アローキーをホームポジションに設定することでわざわざ右下のアローキーを使うことが非常に少なくなりました。実は60%で足りてしまう事がわかりました。が、アローキーの見た目が好きなので、視覚的に65%のほうが好きです。

改善の余地

  • Layer 2と4ががら空き状態なので、まだ多くのキーやマクロを仕組むことができます。特に数字レイヤーを実装した場合、40%キーボードへの道を進むこともできます。
  • Shiftキー周りの実装がそんなにスマートではありません。結果として本来のShiftとShiftレイヤー遷移キーを意識して使い分けるシーンが多く発生してしまっています。

 

この記事はKeychron Q2+Durock T1で書きました。