🎱

僕のKeyball44のキーマップのその後を紹介します

に公開

僕のKeyball44のキーマップを紹介します のあと、Keyball44 のキーマップを育ててきたので紹介します。

前提

  • Keyball44をWindowsとmacOSで使っています
  • レイヤをひとつ増やして5レイヤ構成にしています

デフォルトレイヤ(レイヤ0)

変更なしです。QWERTY配列を維持しています。左右の端の列と下段にモディファイア、レイヤ切り替えを配置しています。

レイヤ1

CapsLock を移動

"," と "." をレイヤ1で透過にしていたのと同様に、 "/" も透過させることで、数字入力のためにレイヤ1を有効にしたままで「YYYY/MM/DD」形式の年月日を入力できるようにしました。右手側の "/" の位置にあった CapsLock (KC_CAPS) は左手側の "Z" の位置に移動しました。

Home と End

S(KC_HOME)S(KC_END) を2キー分右に移動、KC_ENDを右手側から左手側に移動して、左手親指で LT(1,) を押しつつ人差し指で押せるようにしました。

Ctrl+Alt のキー割り当て

Windows で Ctrl+Alt+Del や Ctrl+Alt+Home (リモートデスクトップでタイトルバーを出す) を使うのに、Del、Homeがレイヤ1にあるため4キーを使う必要があったのですが、同じくレイヤ1に RCTL(KC_RALT) を割り当てることで3キーで行けるようにしました。よく使う機能で使うキー数を減らすのはよさそうですが、この割り当てをしてまだ日が浅いので経過観察が必要です。

'" と \| を移動

元々 "N" と "M" のところに割り当てていた KC_QUOTKC_BSLS を左上、右上の端に移動しました。これらのキーはプログラミングやシェルの操作で割と使いますが、端に配置することで迷わず押せるようになりました。キーキャップも合わせて再配置しています。

レイヤ2

レイヤ1の数字と記号にShiftを付加したものをレイヤ2の同じ位置に配置するという方針に沿って、レイヤ1への追従で S(KC_QUOT)S(KC_BSLS) が左上、右上に来ています。キーキャップの印字も合わせてあるので迷いません。

レイヤ2にも Shift+Home、Shift+End を割り当てていたのはこの記事を書いてて思い出しました。レイヤ1の方とどちらが使いやすいか比較していたのだと思いますが、こちらはあまり使わなくなっていました。選択範囲の変更で使う想定で、Shift+矢印と合わせて使うことが多そうと考えると、Shift+矢印も割り当てつつレイヤ2にまとめた方がいいかもと思ったので次やってみよう。

レイヤ3

音量操作のキーを変更

macOSだけでなくWindowsでも音量操作ができるよう、 KC_VOLUKC_VOLDKC_MUTE を使うようにしました(変更前は KC_KB_VOLUME_UPKC_KB_VOLUME_DOWNKC_KB_MUTE でした)。

IME切り替え用キーの調整

右親指のUser 0はIMEの切り替え用にしており、OSによって発行するキーコードを切り替えています。当初使っていた実装だとWindowsでリモートデスクトップ経由の場合に切り替えできないことがあったのと、macOSでもうまく切り替えできない場合があったので少し調整しました。

keymap.c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case QK_USER_0:
            switch (detected_host_os()) {
            case OS_WINDOWS:
                if (record->event.pressed) {
                    register_code16(KC_RALT);
                    wait_ms(10);
                    tap_code16(KC_GRV);
                    unregister_code16(KC_RALT);
                }
                return false;
            case OS_MACOS:
                if (record->event.pressed) {
                    register_code16(KC_LGUI);
                    wait_ms(10);
                    tap_code16(KC_SPC);
                    unregister_code16(KC_LGUI);
                }
                return false;
            }
            break;
    }
    return true;
}
  • WindowsならAlt+`に、macOSならCmd+Space※になるようにprocess_record_user()で処理している
  • ※前の入力ソースを選択。macOSのデフォルトではCtrl+Spaceだが、Emacsのset-mark-commandと被るのでOS設定を変えている
  • macOSのデフォルトのショートカットCtrl+Spaceのままであれば KC_LGUI としている所を KC_LCTL とすればよいはず

マウスホイール左右

Keyballを縦に回して横スクロールする のオチに書いたように「Shiftを押しながらトラックボール操作」で横スクロールすることを覚えたため、マウスキーの KC_WH_LKC_WH_R は割り当ててはいるものの使わなくなっています。

レイヤ4

QK_BOOT を割り当て、ファーム書き換え時のリセットボタンをキー操作で代替できるようにしました。

Keyballを縦に回して横スクロールする の通りレイヤ4でトラックボールを回すと横スクロールするようにしていますが、「Shiftを押しながらトラックボール操作」の方をもっぱら使っており、レイヤ4でのトラックボール操作は使わなくなっていました。

所感

キーマップを設定しそれに指を慣らすのと、やりやすい指の動きに合わせてキーマップを設定しなおすのをいったりきたりしてキーマップを育ててきました。
こうして現状を整理すると、空きスペースや使わなくなっていたところを見付けてさらなる育成の余地がうまれました。まだまだ続きます。

Discussion