leopardgeckoのブログ

Macの関連事項など

Planckキーボードのキーマップ。

はじめに

Planckはファームウェアの書き換えでキーマップを変更できますが、設定ファイルはC言語で書かれているために単にキーを入れ替えるだけではなくある程度複雑な動作も可能になります。

色々試してみましたので、それらの機能をフィーチャーしたキーマップファイルを公開してみます。

ここからダウンロードしてください。

主な特徴

1)デフォルトレイヤーはMac用。ほぼ普通のQWERTY配列のまま。LowerキーとRaiseキーは英数・かなキーとしても使える。このレイヤーはiPadiPhoneなどiOS機にも使える。

2)Windows用のデフォルトレイヤーも用意。Adjustレイヤーから適宜切り替え可能。PlanckはWindowsではJIS配列のキーボードとして認識されるが、レジストリを書き換えたりせずにそのままの状態でMacと同じUS配列のキーボードとして使える設定にした。LowerキーとRaiseキーは無変換・変換キーとしても使える。

3)Lowerは主に数字入力とファンクションキーのレイヤー。テンキー様の配列もあり。

4)Raiseは主に記号入力とメディアキーのレイヤー。

5)移動とマウス操作用のFunctionレイヤーを追加。ポインターの移動速度は三段階で調節可能。Escキーの長押しでFunctionレイヤーがonになる。

6)LowerとRaiseはFunctionレイヤーからロックできる。Lowerをロックすればテンキーとして使えるので数値入力が楽。

7)LED対応。LowerとRaiseをオンにすればLEDが光り、それぞれのレイヤーで光るパターンが違う。

8)サウンド対応。レイヤーをロック・ロック解除したりAdjustキーを押したりするとそれぞれ対応した音が鳴る。

9)マクロ出力(一つのキーで文字列を出力できる)。

 

 LEDとサウンドの動作はこんな感じです。

解説(?)

配列はすでに皆さんお好きなようにカスタマイズしているでしょうから、配列はともかくとして機能の部分で参考になるところがあればと思い公開してみました。zip形式での配布になったのは、keymap.cだけでは機能が再現できないため、config.hとrules.mkも含める必要があったからです。

私が知る限りPlanckの説明としての主な新出事項は、WindowsでJIS配列として認識された場合にUS配列として使える方法だろうと思います。キーマップの単純な置き換えでも一応は使えるのですが、それのみではシフトキーを押しながら「;」や「'」をタップした時の記号の置き換えはできません。そこでその二つのキーに特殊な処置を加えました。

(実はこの二つのキーに限らずシフトキーの動作も含めて全てのキーを一括してJISからUSに変換できる方法もあるのですが、Planckでは数字や記号を別のレイヤーで入力するやり方が一般的なためシフトキーの操作を考慮する必要性があまりないのでここでは省略します。PreonicやGH60などの独立した数字キーがあるキーボードでJISをUSに変換したい方がもしおられたらご一報ください)

マウスキーを使っている人はあまりいないようですが、補助的な使い方には良いかもしれません。スクロールホイールはちょっとスクロールしたい時や横スクロールをしたい時など意外と使えます。

様々な条件によって動作が変わるようになっています。ここがQMK Firmwareの醍醐味だろうと思います。例えばデフォルトのレイヤーの違い、レイヤーがロックされているかどうかの違い、シフトキーが押されているかどうかの違いなどを判定してそれに対応した動作になります。その辺りは個人的に結構苦労しました。

タップダンス(二回タップで動作が変わるなど)も試してみたのですが、タップの判定が結構シビアで使いにくいと感じたのであえてここでは触れません。

最後に

何せド素人が書いたソースコードですからとんでもない間違いがあるかもしれませんが、何かの参考になれば幸いです。