HHKB US配列 キーマップ 自分なりの最適解 Windows11/macOS Sonoma14.5/iPad ios17.5.1

HHKB

はじめに

5月末にHHKB Professional HYBRID Type-S(墨・無刻印)を入手し、1ヶ月程度さわりまくり、一旦落ち着いたキーマップ設定です。

もともと会社PCはWindows、自宅利用はMac、移動中はiPad or iPhoneを利用しており、最近Mac上のVMwareで試験勉強の為のLinux環境を複数構築したことから、\(バックスラッシュ)や`(バックコート)、~(チルダ)を多用するのに便利なUS配列キーボード(人生初)を購入。

  • 折角打鍵感が神なキーボードなので全ての環境で使えるようにしたい!
  • US配列にも早く慣れたい!
  • Emacsのショートカットをどのデバイスでも使えると更に便利やん!

というのがこの挑戦のはじまり。

使ったツール

HHKBのディップスイッチの設定については、PFU社ドキュメントをご参照ください

Mac Mode

Mac Modeでは、スペースキー左に[英数]、右に[かな]を配置。
これによりMac本体の操作性をそのままにiPadの日本語入力/英数入力の切替も踏襲。

英数キーの左にコマンドキー⌘を配置し、macOSの設定>キーボード>キーボードショートカット>修飾キーから⌘キーと⌃キーを入れ替えることで、Windowsショートカットと同じ操作感でMacショートカットが使える

Mac側では⌃キーを使うショートカットがほぼEmacsと同じなので、カーソル系の操作はこれでなれようと思う

いまは、Enterの真上はBSを割り当て、BSの上にDelを割り当てているのは、従来の操作感を維持しつつ、Emacsライクな操作にも慣れることができれば、かの和田先生が仰るEnterの真上にDelを割り当てできる境地に達することが出来るかな(いつになるやら。。)

続いてFnキーとの組合せはこちら

Fnキーとの組合せでは、Windows Modeと同じキー(Emacsライク)になるようにしている。
これはモード切替忘れの際にキータッチミスを極力減らしたいので同じにしている。

Windows Mode

Windows Modeでは、スペースキー両端をAlt、その外側左にFnキー、外側右にWindowsキーを配置
Windows側では、AutoHotKeyを使い、スペースキー両端のAltキー単押しを左Alt→英数、右Alt→かなにそれぞれ変換、他のキーと合わせて使う場合は、Altキーとして利用できるようにしている。

仕事上、Excelを利用することが多く、セル内改行することも多いため、Altキーは使えるようにしておきつつ、プレゼン等複数のモニタのモード切替もWindowsキー+Pなどで切り替えることも多いので右側にWindowsキーを作ってます。

Fnキーを左下に持ってきたのは、Mac Mode時のCtrlキーの場所と同じにするためと、Windows単体でEmacsのショートカットが使えなかったので、Fnキーで代替することにしました。

あと、Mac Mode専用と謳われているメディアキーについてもWindows Modeで割り当てし会社のWindowsマシン上で上手く動作しています。Web会議での音量調整やミュート切替で重宝します。

また両モードのFnキー側のEscキーにCtrlを割り当てています。これはデバイスの切替をしやすくするために割り当てました。

どのモードをどのデバイスで使っているか

以下の表の通り

OSHHKBモード
Windows 10/11Windows Mode
※Mac Modeでも使える
macOS sonoma 14.5Windows Mode
※Mac Modeでも当然使える
iOS 17.5.1
iPad/iPhone
Mac Mode
※Windows Modeでも使えるがIMEの切替がCtrl+Spaceでしかできなくなるため、結構不便

Windows側では、AutoHotKeyを使い、スペースキー両端のAltキー単押しを英数、かなにそれぞれ変換
Mac側では、Karabiner-Elementsを使い、下記のように設定にすることで、Excelのセル内改行でよく使うAlt+EnterなどにAlt+同時押しキーのショートカットが使えるようにしている為、Windows/macOSともにWindows Modeを利用している。

{
    "description": "[RDP] RDPアプリ以外では、オプションキーを単体で押したときに、英数・かなキーを送信する。(左オプションキーは英数、右オプションキーはかな) (rev 3)",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com\\.2X\\.Client\\.Mac$",
                        "^com\\.microsoft\\.rdc\\.macos$"
                    ],
                    "type": "frontmost_application_unless"
                }
            ],
            "from": {
                "key_code": "left_option",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "parameters": {
                "basic.to_if_held_down_threshold_milliseconds": 100
            },
            "to": [
                {
                    "key_code": "left_option",
                    "lazy": true
                }
            ],
            "to_if_alone": [
                {
                    "key_code": "japanese_eisuu"
                }
            ],
            "to_if_held_down": [
                {
                    "key_code": "left_option"
                }
            ],
            "type": "basic"
        },
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com\\.2X\\.Client\\.Mac$",
                        "^com\\.microsoft\\.rdc\\.macos$"
                    ],
                    "type": "frontmost_application_unless"
                }
            ],
            "from": {
                "key_code": "right_option",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "parameters": {
                "basic.to_if_held_down_threshold_milliseconds": 100
            },
            "to": [
                {
                    "key_code": "right_option",
                    "lazy": true
                }
            ],
            "to_if_alone": [
                {
                    "key_code": "japanese_kana"
                }
            ],
            "to_if_held_down": [
                {
                    "key_code": "right_option"
                }
            ],
            "type": "basic"
        }
    ]
}

但しmacOSで、Windows Modeを利用する場合、EmacsのショートカットキーはFnキーを併用することで擬似的な入力はできるものの、C-k(カーソル以降の1行削除)は出来ない為、ときどきMacモードに切り替えて利用します。反対にMac Modeでそのままモード切替を忘れて、Windowsを利用する場合も極力入力ミスを減らすため、AutoHotKeyでAltの設定以外に、英数・かなのキーコードがきてもIMEの切替ができるように設定しています。
※別途IME.ahkを下記テキストファイルと同じ場所において実行ファイル生成してください。

#Include IME.ahk
; カーソルがメニューに移動する挙動を無効にする
*~LAlt::Send {Blind}{vk07}
*~RAlt::Send {Blind}{vk07}

; 左Altキーが単独で押された場合、IMEをオフにする
~LAlt Up::
if (A_PriorKey = "LAlt") {
    IME_SET(0)
}
Return

; 右Altキーが単独で押された場合、IMEをオンにする
~RAlt Up::
if (A_PriorKey = "RAlt") {
    IME_SET(1)
}
Return

;以下はMacモードからWindowsモードへの切替忘れ救済策
;かな(Mac) ⇒ 変換
sc1f2::
Send, {vk1csc070}
return

;英数(Mac) ⇒ 無変換
sc1f1::
Send, {vk1dsc07b}
return

結果、とっても快適に入力できるようになりました。

まとめ

一旦は、このキーマップで落ち着き、実際の仕事(Windows機)、本ブログ(Mac/時々Linux)も、違和感なく利用できています。また気づいた点とかがあれば、本記事に追記するか、別に投稿するようにします。もっとこうしたら良いというご意見等頂けると嬉しいです。

コメント

タイトルとURLをコピーしました