初代 Advantage Kinesis + Windows + VS Code 環境におけるキーレイアウト 2022年版
今年に入って、自分の開発環境のソフト面をまるっと見直した。 長年使っていた macOS + iTerm + Vim(CUI) から、Windows(WSL 2) + VS Code になった。
ハード面は変わっていない。初代 Kinesis Advantage + Kensington Slimblade だ。この組み合わせでかれこれ8年以上使っている。
使うソフトが変われば、最適なキーバインディングも変わるものだ。Kinesis Advantage はハードウェアで key remap が出来る。今回の利用ソフトの変更で、ハード + ソフトの両面からのアップデートが必要になった。
ようやく、そのセッティングが落ち着いたのでメモしておく。
Kinesis Advantage の remapping
生成元 Google Sheets は こちら。コピペ改変ご自由に。
以上の画像の通りにしている。以下詳細。
- CapsLock -> ESC は、僕に Kinesis Advantage を教えてくれた先輩から受け継いでる秘伝のタレ。Vimmer にはめっちゃ便利。と思ってたけど、Vim でない時でも ESC は楽に届いた方が便利なので、ずっとここ。
- 親指周りが特徴的というか、基本的にここしか変えていない。こうなった経緯を書いておく。
- {Left/Right}Alt の単押しで、英語・日本語の切り替えをしたい
- が、初代 Advantage Kinesis の Windows モードは Left Alt しかない!
- Left と Right があるのは PC モードと mac モードだけ。mac モードは差分が大きいので、PC モードをベースに remap している
- 僕は Alt をこの画像の位置に置きたく、そうすると Windows キーは隅に置きたい
- 普通に Kinesis Advantage に手を置いたとき、親指が簡単に届く位置が画像の Alt の位置なのだ。良く使うキーは届きやすい位置においておきたい。
- PageUp/PageDown の2つは AutoHotKey にて Windows キーにする
- Vim を使っているなら、デフォルトで親指に配置されている装飾キー以外のキー、つまり PageUp/PageDown/Home/End の役割は、ノーマルモードでのアルファベットのキーにアサインされているので適当につぶしていた。Vim 以外においてもこれらの4つのキーは全く使わなかった。が、VS Code ではもちろんノーマルモードはない(僕は Vim Plugin を入れない事にし、なるべく VSCode デフォルトのキーバインディングでやっていく事にした)し、Windows では emacs キーバインディングも効かないので、良く Ctrl+a/Ctrl+e を使っている僕としては、行頭・行末への移動に1キーを使うのは合理的と判断し Home/End を残すことにした
- 左が行頭、右が行末で視覚的にもわかりやすくて気に入っている
- PageUp/PageDown は優先度的に潰すしかなかった
- …が、方眼紙 spread sheet でレイアウトを作っていた過程で気付いたけど、もしかして
|
キー2つあるよな…これに割り当てられる可能性があるかもしれない…?考えておこう…
- …が、方眼紙 spread sheet でレイアウトを作っていた過程で気付いたけど、もしかして
AutoHotKey
使っているスクリプトはここにある。
見ればわかるが GitHub - karakaram/alt-ime-ahk を fork して改造している。
以下詳細。
{Left|Right}Alt
=> 英語・日本語切り替え
これは mac 時代から必須であった。このスクリプトの作者に本当に感謝である。 基本的にはそのまま使わせていただいている。
Page{Up|Down}
=> {Left|Right}Windows
Kinesis Advantage の remap で書いたように、隅においやった Page{Up|Down}
を {Left|Right}Windows
に変換している。
これで、キーボード的には [Left, Right] ✕ [Ctrl, Alt, Windows]
が揃ったことになる。これが良いんだ。
スクリプトのショートカットをスタートアップに入れておけば、ログイン時に自動起動する。
VS Code
Ctrl + `
=> Ctrl + Shift + `
初代 Kinesis Advantage は英語配列なので、Windows では Ctrl+` が Henkan にされてしまう問題がある。というわけで、ターミナルを開けない問題がある! こればかりはどうしようもないらしいので、shift を追加している。
・・・あれ、今この記事を書いてて、Henkan を Ctrl + ` にする AutoHotKey 書けば良いのでは、と思った…やってみるか…
キーバインディングに関しては、残りはすべてデフォルトのままだ。
達成した要件
結果的に達成している要件をまとめる。
- 左右に Alt(Meta) と Ctrl がある
- 僕は2つ同時押しのショートカットは、必ず両手で押したい、という信念がある。手や腕への負担を減らしたくてエルゴノミクスキーボード使ってるなら、極力、自分でコントロールできる範囲の肉体的負荷も分散したいと思っているわけだ。ハードウェアと自分のフィジカル面を合わせて最適化していきたい。
- エディタのキーバインディングはなるべく変えない
- 日本語・英語の切り替えを Alt 単押しで実現
- Ctrl + Space は潰さない
- Home/End を潰さない
諦めたこと
- PageUp/PageDown を潰した
- これは致し方なく。ページ内の上下の移動は左右の移動に対して重要じゃない事が多いので諦めた。上下の移動は検索で代替すれば良い。
- Vim 時代は、この辺は Normal Mode で移動するので気にしなくて良かった
- モードのような概念がない場合、キーの数が大事になるんだなぁ
おわりに
キーの数には制約がある中で、最適な配列を考えるのはなかなか難しいが、ようやく落ち着いたの良かった。Vim は良く考えられたソフトだ・・・ また今回、初めて AutoHotKey を触ったけど、無限の可能性を感じた。
しかしながら、この記事を書きながらまだまだ良く出来る可能性がある気がしてきたので、少しずつ変化させていこうと思う。