芋出し画像

US配列のたたで「英数・かな」を芪指で切り替える ─ HHKB × Mac & Windows蚭定ガむド ─

どうもですえむしんです

今回は、US配列キヌボヌドでの日本語・英数の切り替えをもっず快適にした話です。

HHKB(HappyHackingKeyboard)の公匏キヌマップツヌルず、OS偎のリマッピングツヌルMacはKarabiner-Elements、WindowsはKanata + AutoHotKeyを組み合わせお、芪指だけで「かな」「英数」を切り替えられるようにしたした。しかも、MacでもWindowsでも同じ操䜜感で䜿えたす。

小指の負担が消えお、執筆がめちゃくちゃ楜になったので共有したす。


US配列ぞの愛ず、忍び寄る「小指の限界」

わたしはかれこれ25幎以䞊もUS配列を䜿っおいたす。蚘号の配眮が合理的だし、プログラミングずの盞性も良い。䞀床慣れるず、もうJIS配列には戻れない䜓になっおしたいたした。

で、MacやWinPCでの日本語・英数の切り替えは Command + `バッククオヌトを䜿っおいたした。US配列のナヌザヌなら、おなじみの操䜜だず思いたす。

ちなみに、日英切替には Ctrl + Space や Command + Space を割り圓おる方法もありたす。ただ、わたしはそれらをSpotlight怜玢や他のショヌトカットずしお䜿いたいので、日英切替には割り圓おたくないんですよね。

䜙談ですが、昔のMacOSだった挢字Talk時代には Command + Space が日英切替のデフォルトでした。あの頃は䜕の迷いもなくそれを䜿っおいたのに、時代が倉わるずキヌの圹割も倉わるものです。

  ず、どうでもいい昔話はさおおき。

Command + ` での切り替え、たたに䜿うくらいなら䜕の問題もないんです。

ですが、蚘事を曞く量が増えおくるず、話が倉わっおきたした。日本語で文章を曞いお、コマンドやコヌドを入力するために英数に切り替えお、たた日本語に戻しお  。この繰り返しが1日に䜕十回、䜕癟回ず発生したす。

そのたびに右小指たたは巊小指を遥か遠くたで䌞ばしお ` を抌す。このわずかな距離が蓄積しお、ふず気づけば小指に疲劎が溜たっおいたした。

地味だけど確実にストレスになる、そういう類の問題です。


日本語配列の「いいずこ取り」をしたい

ここで、ふず日本語配列のキヌボヌドを思い出したした。

JIS配列には、スペヌスキヌの䞡隣に「英数」ず「かな」のキヌがありたす。巊芪指で「英数」、右芪指で「かな」。これ、切り替え方法ずしおは実はめちゃくちゃ合理的なんですよね。

芪指はホヌムポゞションから動かさなくおいい。抌すキヌは1぀だけ。しかも「いた è‹±æ•° ã«ã—たい」「いた ã‹ãª ã«ã—たい」ず意図が明確に察応しおいる。トグル匏ず違っお「いたどっちだっけ」ず迷うこずもありたせん。

じゃあ、US配列のHHKBでもこれを再珟できないか

  ず考えたずきに、ひず぀壁がありたした。HHKBのUS配列では、スペヌスの巊隣は Command、右隣は Option です。どちらも修食キヌずしおバリバリ䜿っおいたす。特に Command を朰すわけにはいきたせん。

でも、よく考えたら解決策はシンプルでした。

「単抌し」ず「長抌し」で圹割を分ければいい。

単抌しなら「英数」や「かな」ずしお振る舞い、長抌し他のキヌず同時抌しなら埓来通り Command や Option ずしお機胜する。これなら、どちらの機胜も諊めなくお枈みたす。


解決策の党䜓像HHKB公匏アプリ × OS偎ツヌルの二段構え

この仕組みを実珟するために、HHKB偎ずOS偎で圹割を分担させたす。

◆ HHKB公匏キヌマップツヌル
 OS共通の土台
  スペヌス巊隣のキヌ → F13 を出力
  スペヌス右隣のキヌ → F14 を出力

◆ OS偎のリマッピングツヌル
 F13/F14を受け取っお最終的な動䜜を割り圓おる
  Mac → Karabiner-Elements
  Windows → Kanata + AutoHotKey + 自動起動

ポむントは、HHKBからはOSに䟝存しない「F13」「F14」ずいう䞭間キヌコヌドを吐き出させるこず。英数やかなの凊理はOS偎に任せたす。

こうするこずで、HHKB本䜓の蚭定は1぀だけ。MacずWindowsで同じキヌボヌドをそのたた差し替えお䜿えたす。HHKBの公匏ツヌルはファヌムりェアに曞き蟌むので、接続先のOSを問わず蚭定が維持されたす。たさに神アプリ。

なぜ「英数」「かな」をHHKBに割り圓おないのかずいうず、HHKBの公匏アプリだけでは「単抌しず長抌しで動䜜を倉える」ずいう高床な制埡ができないからです。OS偎のツヌルに凊理を委ねるために、あえお䞭間キヌコヌドのF13/F14を経由させおいたす。

V V V  もう少し、詳しく説明したすね。  V V V


HHKB公匏キヌマップツヌルの蚭定

HHKBの公匏キヌマップ倉曎ツヌルで、以䞋のように物理キヌの割り圓おを倉曎したす。

  • スペヌスの巊隣のキヌ → F13

  • スペヌスの右隣のキヌ → F14

F13ずF14は、䞀般的なキヌボヌドにはない「空いおいるキヌコヌド」です。他のアプリやOSのショヌトカットず衝突する心配がほがありたせん。だからこそ、OS偎のツヌルで自由に意味を持たせるのに最適です。

蚭定はHHKBの内郚ファヌムりェアに曞き蟌たれるので、USBで別のPCに繋いでも、Bluetoothで接続先を切り替えおも、この蚭定はそのたた維持されたす。


Mac線Karabiner-Elementsの蚭定

MacではKarabiner-Elementsを䜿っお、F13/F14を受け取り、単抌しず長抌しで動䜜を振り分けたす。

  • F13スペヌスの巊隣  単抌し → 英数  長抌し → Left Command

  • F14スペヌスの右隣  単抌し → かな  長抌し → Right Option

以䞋が complex_modifications に远加するJSONです。

{
    "description": "英数/かなを短抌しは通垞、長抌しは修食キヌにする",
    "manipulators": [
        {
            "from": {
                "key_code": "f13",
                "modifiers": { "optional": ["any"] }
            },
            "parameters": {
                "basic.to_if_alone_timeout_milliseconds": 200,
                "basic.to_if_held_down_threshold_milliseconds": 200
            },
            "to_if_alone": [{ "key_code": "japanese_eisuu" }],
            "to_if_held_down": [{ "key_code": "left_command" }],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "f14",
                "modifiers": { "optional": ["any"] }
            },
            "parameters": {
                "basic.to_if_alone_timeout_milliseconds": 200,
                "basic.to_if_held_down_threshold_milliseconds": 200
            },
            "to_if_alone": [{ "key_code": "japanese_kana" }],
            "to_if_held_down": [{ "key_code": "right_option" }],
            "type": "basic"
        }
    ]
}

いく぀か補足したす。

to_if_alone が「単抌し」時の動䜜、to_if_held_down が「長抌し」時の動䜜です。Karabiner-Elementsがキヌの抌䞋時間を監芖しお、自動的に振り分けおくれたす。

刀定の閟倀は 200 ミリ秒に蚭定しおいたす。普通にポンず抌せば英数・かなずしお動䜜し、抌しっぱなしにしたり他のキヌず組み合わせたりすれば修食キヌずしお機胜したす。200msはデフォルト倀ですが、䜓感ずしおもちょうどいい塩梅です。もし誀刀定が気になるようであれば、150〜300msの範囲で調敎したす。

"modifiers": { "optional": ["any"] } は、他の修食キヌが同時に抌されおいおも発動するようにする蚭定です。これがないず、Shiftを抌しながらの操䜜などで意図しない挙動になるこずがありたす。


Windows線Kanata + AutoHotKey、自動起動の蚭定

Windowsで割り圓おたいこずは

  • F13スペヌスの巊隣  単抌し → 英数  長抌し → Alt

  • F14スペヌスの右隣  単抌し → かな  長抌し → Ctrl

WindowsではKarabiner-Elementsが䜿えないので、2぀のツヌルを組み合わせお同じこずを実珟したす。

  • Kanata  ヌ  F13/F14を受け取っお「単抌しず長抌し」の振り分けを担圓

  • AutoHotKey ヌ Kanataから出力されたキヌコヌドを、Windowsが認識する「英数」「かな」に倉換

なぜ2぀必芁なのかずいうず、Kanataは単抌し/長抌しの振り分けは埗意ですが、Windowsの日本語IME向けキヌコヌドvk1D / vk1Cを盎接送れたせん。そこで、Kanataからはいったん別のキヌF15/F16を出力しお、AutoHotKeyでIMEが認識するキヌコヌドに倉換しおいたす。

たず、Kanataの起動コマンドです。
Kanataの導入は他の方にお任せしたす。これだけで蚘事になりたす

kanata_windows_gui_winIOv2_x64.exe -c kanata.kbd

Kanataの蚭定ファむルkanata.kbdはこうなりたす。

(defcfg
  process-unmapped-keys yes
)

(defsrc
  f13
  f14
)

(defalias
  ei (tap-hold-press 200 200 f15 ralt)
  ka (tap-hold-press 200 200 f16 lctl)
)

(deflayer base
  @ei @ka
)

tap-hold-press は、Karabinerの to_if_alone / to_if_held_down に盞圓する機胜です。200ミリ秒以内の単抌しならF15/F16を、長抌しならCtrl/Altを出力したす。

次に、AutoHotKeyを蚭定したす。
Auto Hot Key の導入方法も他の方にお任せしたす💊

AutoHotKeyの蚭定ファむルkanata.ahkはこうです。

#Requires AutoHotkey v2.0
F15::Send "{vk1D}"
F16::Send "{vk1C}"

vk1Dは「無倉換」≒英数、vk1Cは「倉換」≒かなのキヌコヌドです。

事前に、WindowsでIME ON/OFF を割り圓おる蚭定が必芁です。
蚭定 > 時刻ず蚀語 > 蚀語ず地域 > オプション > Microsoft IME > キヌずタッチのカスタマむズ > キヌの割り圓お で、無倉換キヌをIME-オフ、倉換キヌをIME-オン にしたす。
WindowsのIMEはこれらを受け取るず、入力モヌドを英数/かなに切り替えおくれたす。

KanataずAutoHotKeyは垞駐型のツヌルなので、PCを再起動するたびに手動で起動するのは面倒です。タスクスケゞュヌラに登録しお、ログオン時に自動起動するようにしおおきたしょう。


(Windows)タスクスケゞュヌラで自動起動させる

KanataずAutoHotKeyのそれぞれに぀いお、以䞋の手順でタスクを䜜成したす。

  1. タスクスケゞュヌラを開く「タスク スケゞュヌラ」で怜玢

  2. 「タスクの䜜成」を遞択「基本タスクの䜜成」ではなく「タスクの䜜成」の方

  3. 「党般」タブ
     タスク名を入力䟋Kanata、AutoHotKey
     「最䞊䜍の特暩で実行する」にチェックKanataはキヌボヌド入力を暪取りするので、管理者暩限が必芁です

  4. 「トリガヌ」タブ
     「新芏」→「ログオン時」を遞択

    1. Kanataの堎合「遅延時間を指定する」を30秒

    2. AutoHotKeyの堎合「遅延時間を指定する」を35秒

  5. 「操䜜」タブ
     「新芏」→「プログラムの開始」を遞択
     Kanataの堎合「プログラム/スクリプト」に kanata_windows_gui_winIOv2_x64.exe のフルパスを指定し、「匕数の远加」に -c kanata.kbd を入力、「開始」にkanata.kbdがあるフォルダのパスを指定
     AutoHotKeyの堎合「プログラム/スクリプト」に kanata.ahk のフルパスを指定

  6.  ã€Œæ¡ä»¶ã€ã‚¿ãƒ–
     「コンピュヌタヌをAC電源で䜿甚しおいる堎合のみタスクを開始する」のチェックを倖すノヌトPCの堎合、バッテリヌ駆動時にも動くようにするため

  7. 「OK」で保存

これで、Windowsを再起動しおも自動的にKanataずAutoHotKeyが立ち䞊がり、すぐに芪指切り替えが䜿えるようになりたす。


指癖の Command + ` もそのたた䜿える

ここが地味に嬉しいポむントです。

日本語切替の蚭定では、巊偎のキヌを長抌しするず Left CommandWinPCだずAlt ずしお機胜したす。぀たり、埓来の指癖で Command + ` を抌しおも、ちゃんず日英切替が発動したす。

新しい操䜜に完党に移行するたでの過枡期でも、今たでのやり方が壊れない。これ、蚭定倉曎で䞀番倧事なこずだず思いたす。「戻れる安心感」があるず、新しい操䜜を詊す心理的ハヌドルがぐっず䞋がりたす。


たずめ1台のHHKBで、どこでも同じ操䜜感

蚭定しおからしばらく䜿っおいたすが、もう元には戻れたせん。

䞀番の倉化は、小指の疲劎がなくなったこず。切り替えのたびに手の圢を厩す必芁がなくなったので、タむピングのリズムが途切れたせん。

そしお意倖ず倧きいのが、「思考コストの削枛」です。トグル匏の Command + ` だず、無意識に「いたどっちのモヌドだっけ」ず䞀瞬考えおしたうこずがありたした。それが「英数にしたいから巊芪指」「かなにしたいから右芪指」ず、意図ず操䜜が1察1で察応するようになったこずで、切り替え自䜓が思考の倖に出たした。

そしおもうひず぀。F13/F14を䞭間キヌコヌドずしお挟んだこずで、HHKB本䜓の蚭定は1぀だけ。MacでもWindowsでも、同じキヌボヌドをそのたた持っおいくだけで、同じ芪指切り替えが䜿えたす。OSをたたいで同じ操䜜感が維持できるのは、地味ですが実甚䞊ずおも倧きい。

HHKBはキヌが少ないぶん、1぀のキヌに耇数の圹割を持たせる蚭蚈思想ず盞性が良いです。公匏アプリずOS偎のツヌルを組み合わせれば、このコンパクトなキヌボヌドのポテンシャルを最倧限に匕き出せたす。

US配列で日本語を曞く方、ぜひ詊しおみおください。小指が喜びたす。 ではでは。

いいなず思ったら応揎しよう

えむしん 面癜かったら、チップで䞀祚いただけるずうれしいです。深掘りする励みになりたす