Win/Mac/JIS/US互換考察
お久しぶりです。最近自作キーボード熱が落ち着いております。
こだわりぬいて作ったShoebill43TGで満足してしまっている事が原因です。キースイッチもLofree Ghostで満足しております。
そんな訳でほぼほぼ満足しているShoebill43TGですが、改善したいポイントとして、
・Win/Mac間でのレイヤー切り替えの手間
があります。今回はこちらについて調査結果だけまとめていきます。
Win/Mac間でのレイヤー切り替え
ShoebillではWin/Mac間でのキーボードの認識の違いに対応するため、7レイヤーを使用しています。内訳はWin用の3レイヤーとMac用の3レイヤー、共通の設定調整用の1レイヤーとなります。
正確にはWin/Mac用というよりJIS/US用となっています。
このWinモードとMacモードの行き来という考え方は、Keychron K11 Proを参考にしています。KeychronではWin/Macそれぞれ2レイヤーが割り当たっていますが私はさらに1レイヤーずつ追加しております。
KeychronではスライドスイッチでWin/Macのモードを切り替えますが、Shoebillではロータリーエンコーダの押し込みで対応します。下図のDF(3)やDF(0)が該当します。
2つのレイヤーを見ていただければ分かると思いますが、特に括弧の配置を両者で揃えています。つまり、JIS/USの記号の違いを複数レイヤーを用意する事で克服しています。
さて、JIS/USの記号の違いに関しては、私の理想としては、JISキーボードとして認識された場合も記号の配置はUSと同じ状態を維持する事です。人によっては逆の方が好みという方もいらっしゃるでしょう。
JISキーボードでUS配列を再現する
この点に関しては、こちらによくまとめられた記事があります。
https://gist.github.com/s-show/b9d5c768b37691d07cedf502a844fc37
要するにこちらのキーコードを使えばいいです。
https://github.com/koktoh/jtu_custom_keycodes
逆にUSキーボードでJISライクに入力したいときはこちらを使えばよいです。
https://github.com/m47ch4n/qmk-translate-ansi-to-jis/tree/main
ですが、WinとMacを行き来する私のようなユーザからすると、自動でキーコードが切り替わって欲しいと思ってしまいます。
Win/Macの検知
QMKにはOS検出機能があるので、こちらを使用すれば接続先のOSを知ることができます。
これでOSに応じてデフォルトレイヤーの切り替えやキーコードの切り替えを行えばいいわけです。
以上までが調査結果ですが、中々これをファームウェアに反映させたりライブラリ化したりするに至っておりません。スイッチでのレイヤー切り替えで事足りていますので・・・。
さいごに
この記事はShoebill43TGで書きました。