はじめに
私が最後にWindowsを使ったのは10年前の学生時代で、使っていたのはLenovo Y470-Pでした。このノートパソコンには設計上の欠陥があり、一度ディスプレイを閉じた際に部品が焼損してしまい、最終的にはマザーボードを交換する羽目になりました。

卒業後すぐに2015年製の15インチMacbook Proを購入し、その後数年でマシンは変わりましたが、ずっとAppleのエコシステムにいたため、Windowsの使用体験は10年前のまま止まっていました:エコシステムの分断、ソフトウェアの使いにくさ、デザインの醜さ(これは今も変わらない)、そして不合理なインタラクションデザイン。
618セールで中高スペックのPCを組み立てました。14700KF、5070Ti、Crucialの64GB 6400MHzメモリと2TB SSDを搭載し、今では手放せません:高性能なWindowsマシンはこんなに滑らかだったのかと。システムデザイン言語は相変わらず不合理ですが、ソフトウェアの起動速度や優れたアプリのデザイン言語(例えばWindows版Apple Musicなど)はとても良いです。もちろん最も重要なのは、Windowsを購入した理由がゲーム(80%)とプラットフォーム固有のコードであるC#を書くため(20%)だということです。
効率的な入力の本質
長期間(9年間)MacでHHKBを使用してきたため、MacのHHKBキーマッピングをWindowsにも適用したいと考えています。これは習慣的な理由だけでなく、以下の考慮事項によるものです:
-
行頭移動、行末移動、右削除などのテキスト編集で頻繁に使う機能は、Windowsでは専用キー(Home、End、Delなど)を押す必要があり、修飾キー+キーの組み合わせでは実現できません。しかしMacではシステムレベルでEmacsキーバインドがサポートされており、Control+Aで行頭、Control+Eで行末、Control+Dで右削除が簡単に実現できます。
-
上下左右のカーソル移動も同様で、Windowsでは専用の方向キーを使いますが、MacではControl+B/F/N/Pで実現できます。
なぜWindowsの単独キーではなく、Macの修飾キー+ショートカットの組み合わせを好むのか疑問に思うかもしれません。
この疑問の答えこそが、私がHHKBの60%配列を特に気に入っている理由です:手のひらを大きく動かさずにすべての操作が完了でき、入力効率を保証できるからです。
プログラマーの世界では、マウスを使える場面でキーボードを使わないと刑に処されます!
例えば、Windowsで高速に入力中に、前に書いた部分に誤字があることに気づき、数文字削除する必要がある場合:
-
右手をアルファベット領域から離し、人差し指で右下の方向キーを探す(87キー以上のキーボードなら探す必要はないが)
-
方向キーを押してカーソルを移動
-
右手を方向キーから離し、Backspace位置に移動
-
削除キー(Backspace)を押す
MacのHHKB配列なら、左手だけで同じ操作が可能です:
-
左手小指でControl+Bを押してカーソル移動
-
右手小指でBackspaceを押すか、左手小指でControl+H/D(左/右削除)を押す
これだけです。手をホームポジションから離す必要がありません。
修正後も、Windowsでは右手を再び動かしてEndキーを押す必要がありますが、Macでは左手でControl+Eを押すだけで済みます。
苦労するバッククォート ` の入力
HHKBを気に入っているもう一つの理由は、フロントエンド開発者としてバッククォート(チルダのキー)を頻繁に使うからです。一般的な60%キーボードではこのキーはESCに配置され、修飾キー組み合わせで入力します。しかしHHKBではこのキーを独立させて右上に配置し、Deleteキーを下に、|キーを上に移動することで実現しています(通常のBackspaceが2つの1uキーに分割された形です)。


苦労するControlキーの入力
一般的なキーボード配列で入力効率に影響するもう一つの設計は、Controlキーが左下にあることです。Control+キーを押すとき、手首は必ず左に曲がり、手のひらは右に移動します。手のひらを動かす必要のある入力方法はエレガントではなく、効率に影響します。

ただし、ネット上には小指の下の手のひら部分で左下のCtrlを押そうとする試みもありますが、これは不合理です:

私は極端に、口を開閉して発音する言語はエレガントではないと考えています。エレガントな言語の発音は口を大きく開閉する必要がなく、舌と喉の協調だけで明確に発音できるべきです。そのため日本語が最もエレガントな言語だと考えています——これは同時に日本語の表現力、特に強い感情を表す罵倒語の面で弱いことにもつながっています。
余計なCapsLockキー
長時間にわたって頻繁に大文字を入力する人はほとんどいないと思うので、一般的なキーボード配列でCapsLockキーを左手小指という重要な位置に配置するのは全く理にかなっていない。

以上のことから、HHKBの配列が最も完璧だと考えています。その対称美だけでなく、入力効率の高さも理由です。また、Macのショートカットキー、少なくともテキスト操作の効率性においてはWindowsを上回っています。
そこで、次にMacのキー配置をWindowsに再現する方法を共有します。これにより、両OSで同じ手の筋肉記憶を使って効率的に編集できるようになります。

HHKBで最も批判されがちな方向キーについてですが、基本的に方向キーでカーソルを移動できる場所ではEmacsのショートカットが使えます。ただし……Pythonなどの一部のターミナルではControl-DがCLI終了になってしまったり、Remote SSH接続時のLinuxホストでは問題が発生します。これは確かに厄介ですが、良いターミナルを使うことで多少回避可能です。Warpを検討してみてください。このターミナルはテキストエディタのようにコマンドを入力できるため、Emacsショートカットでコマンド入力が可能です。言葉ではわかりにくいかもしれませんが、試せば通常のターミナルとの違いがわかるでしょう。
キーボード要件
マルチレイヤーキーマッピングをサポートしたキーボードが必要です。つまりFNキー+他のキーの組み合わせが可能なものです。マクロ機能はあってもなくても構いません。6層までのマッピングをサポートするキーボードもあります(デュアルシステム切り替えで各システム3層)。私は新しく購入したNuphy Air75 V3を使用しています。HHKBではなくこれを選んだ理由は、WindowsでゲームをするためFキー(F1~F12)が必須で、75キーが私の許容できる最小サイズだからです。
砲車をミスったら即座に?マークを送信する —— Faker

FNキーマッピングでEcmacsテキスト編集を実現
以下のテキスト編集機能を実装します(記載形式はWindowsキー → Macショートカット):
- 行頭に移動:Home → Control + A
- 行末に移動:End → Control + E
- 下に移動:↓ → Control + N(Next)
- 上に移動:↑ → Control + P(Previous)
- 左に移動:← → Control + B(Back)
- 右に移動:→ → Control + F(Front)
- 右削除:Del → Control + D(Delete)
- 左削除:Backspace → Control + H(Hが削除を表すのは歴史的経緯によるものです。興味があれば調べてみてください)
個人的にはMacでのコピー&ペーストにControl+C/VではなくCmd+C/Vを使う設計が好みです(ただしマッピングはしていません)。おそらくEcmacsが歴史的にコピー&ペーストをサポートしておらず、テキスト編集特有のショートカットでもないため、Macではコピー&ペーストの修飾キーをCMDに設定したのでしょう。
したがって、WindowsでMacのHHKBと同じキー配置を実現するにはCapsLockをFNレイヤーに変更する必要があります(私はFN6に設定しました)。その後、各キーを個別にマッピングします:

FN6レイヤーで各キーをWindowsの対応機能にマッピングします:

アルファベット領域のキー変更
HHKBではEnterキーの上にDeleteキーBackspaceがあり、|キーではありません。当初はBackspaceと|キーを入れ替えていましたが、不思議なことに手が75キー配列に適応してしまい、Deleteを押すつもりで常に上の|キーを押してしまうようになりました。HHKBに切り替えると下の列を強制的に押さなければならず、非常にストレスを感じたため、両方ともBackSpaceに変更し、ほとんど使わない|キーをF13の位置に移動しました。

次に、ControlとAltの位置を交換しました。これにより、MacでのCMD+C/V/T/Wなどの操作とWindowsでのControl+C/V/T/Wなどの操作で同じ指の動きが可能になります。
最後に、WinキーとAltを交換(Winキーをキーボード左下に配置)することで、WindowsとMacでAlt(Opt)の位置を統一しました。

これで、スペースキーの左側のキー(WindowsではCtrl、MacではCMD)を押した後の操作が完全に同じになります。Ctrl/Cmd+Cでコピー、Ctrl/Cmd+Vでペースト、Ctrl/Cmd+Tで新規タブ、Ctrl/Cmd+Shift+Tで閉じたタブを復元など。
その他のキー変更
すでにHomeとEndのショートカットキーがあるため、キーボードの最右端にあるHomeとEndは不要です。そこで私は2つの操作を行いました。Homeキーをよく使うショートカットに変更し、Win + Vに設定しました。このショートカットはWindowsではクリップボード履歴を開き、MacではCmd + Opt + CにマッピングしてAlfredのクリップボード履歴ウィンドウを開くようにしています。
HomeキーはM1マクロにマッピングし、コピー履歴を開きます。EndキーはWinLockに変更し、左下のWinキーを誤って押すのを防ぎます。現在はゲームプレイ時と同様にWinキーをロックし、慣れてから再度有効にする予定です。



美中不足
WindowsではAlt + Tabをマッピングできません。このキーの重要な役割はアプリケーションウィンドウの切り替えです。上記の設定後、この機能はスペースキーの左隣2番目のキー + Tabキーで実行されます。
しかし、Macでアプリケーションを切り替える場合はCmd + Tabを使用します。
したがって、私の設定ではアプリケーション切り替えキーのみが両システムでシステムレベルでマッピング不可となっていますが、他のキーはすべて同じ筋肉記憶で操作可能で、WindowsとMacのショートカット位置の違いを意識する必要はありません。
後書き
自分に合ったものが最善です。どのキー配置が優れているか議論する必要もありません。習慣の力は強力で、一度慣れてしまえばそれが最高の効率をもたらします。
Happy Hackingをお祈りします!

人生の重要な選択に直面したとき、最善の方法を誰かが教えてくれて、貴重な時間を無駄にせずに済めばと、私はよく願っています。だからこそ、自分の経験を踏まえて頻繁にブログを書き、広大なインターネットのこの小さな片隅に、私にとって一度きりの人生経験を記録し、助けを求める人々の力になれればと思っています。