【GoForty R47Goで沼る40%キーボード】キーマップふりかえりメモ～なぜお前はそこにいるのか？～

# はじめに
自分にとって理想のキーマップとは何かを日々模索してきました。最近はキーマップの構成が安定してきたので、改めて自身のキーマップについて振り返ってみようと思います。

### キーボード利用におけるPCの主な用途
・ブラウザを中心としたPC（Windows）の操作と日本語入力（Google日本語入力）

### キーマップ作成における優先事項
・学習コストが低いこと
・可能な範囲で他の40%キーボードとキーマップが共通化できること
・修飾キーは両端に配置する（小指が頑張る）
・レイヤーキーは最下段に配置する（親指が頑張る）

## レイヤー0
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/0b3e22e8-f4f3-7c5a-d436-c6cc28515855.png)

### アルファベット
QWETY配列はすでに呪いであり、別な配列に移行しようにも移行コストが大きすぎるためそのまま。
コンマ（,）やピリオド（.）、スラッシュ（/）もそのまま※とした。

スラッシュ（/）を一時的に別なレイヤーに移動させてみましたが、あまり効果がなかったので元に戻しました。スラッシュは日本語入力時になか点（・）の役割を果たし、自分の使用頻度を鑑みるとひとまずレイヤー0のままがベストと判断しました。

### ハイフン（-）
日本語入力において使用頻度が高いので消去法ながらも打ちやすい位置としてLキーの隣に配置。

### TabとESC
左上をTabにするか、ESCにするかで少々悩むもAlt+Tabなど修飾キーとの組み合わせが多いTabの方を優先し、ESCは右上に行ってもらった。

### 左Ctrlと左Shift
CtrlとShiftは常に左手で使う癖がもう抜けないので定番位置で確定。

### どうしても親指で打ちたいキー（Space、Enter、BS）
左親指でのSpaceは確定（もう癖で抜けない）なので、EnterとBSは右親指さんに頑張ってもらう。

### 英数とかな
MacのJIS配列のように左右に配置したかったがLang1（かな）がかなり遠くなってしまうので泣く泣く別レイヤーに。使用頻度的にLang2（英数）をレイヤー0に残した。

### 最下段真ん中の左Alt
他の40%キーボードとの共通化を前提とすると、ここの場所はおまけとして考えたほうがいいと思っている。Alt+Tabを多用するのでとりあえずAltを配置。MacだったらCommand（Win）キーあたりがしっくりくる。（キー配置としては真ん中にあるけど、主に左手で押す感じ）

### 右Winと右Alt
修飾キーは左右に配置したかったので消去法的に残ったところに配置。

### 未定義なキー
これといった用途が思いつかないのと他の40%キーボードとの共通化を考えると無理に割り当てるより未定義のほうがいいかな、という判断。

## レイヤー1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/284be6e2-6751-ed23-4a2a-fe5f7c088d96.png)

### 左側のテンキーもどき
業務上、右手でマウス操作をしながら数字を入力したいことが多いため、左側をテンキーっぽくしている。
数字の並びはいくつか流派があると思うが、左上から1、2、3と続くようなものにした。一応、何種類か試したうえでしっくり来るものを選んだつもり。
四則演算の記号なども自分にとって覚えやすい配置にしつつ、小数点（ピリオド）は使用頻度的に妥協し、余ったところに配置。

### 矢印キー
vimで培ったHJKL移動は活かしたいと思いこの配置に。矢印キーを横一列で定義できるのはメリットですね。

### アットマーク（@）
チャットでメンションをする際に多用するので、矢印キーと同じ並びに配置。レイヤー0ほど効率的ではないが、ホームポジションのままサクッと押せるので重宝している。

### 括弧
US配列の9と0が括弧（(、)）になるが、似た場所に配置。

### エクスクラメーション（！）とクエスチョン（？）
文末で使うことが多いので、レイヤー0の , と . の同じ位置に配置。

### バックスラッシュ（＼）
レイヤー0のスラッシュ（/）の位置に配置。

### 2つの記号（;、'）
US配列の ; と ' の並びをそのまま拝借して配置。

### 3つの記号（#、$、%）
US配列の3、4、5の並びをそのまま拝借して配置。（消去法的な配置）

## レイヤー2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/f6f87249-8963-364b-a8f1-f8c8c05d8a4b.png)

### Home、Page Down、Page Up、End
レイヤー1の矢印キーの構成をそのまま活かして学習コストを削減。
↓と↑の位置にはPage DownとPage Up、←と→の位置にはHomeとEndを配置。

### アンド（&）キー
レイヤー1でアットマーク（@）だった場所には「ア」ンド（&）を配置。「ア」で始まるもの同士なので簡単に覚えられるハズ！

### 波括弧（{、}）と角括弧（[、]）
レイヤー1にある括弧（(、)）と似た雰囲気の波括弧（{、}）、レイヤー0の山括弧（<、>）と似た雰囲気の角括弧（[、]）をそれぞれ同じ位置に配置。
（曲線的か括弧か、直線的な括弧か、で分けてみた）

### 3つの記号（:、"、|）
レイヤー1で設定した3つの記号のShiftedキーとしてそのまま配置。

### 3つの記号（`、~、^）
残り物の記号をそれとなく配置。（余ったので適当に配置）

### 左側のLang1（かな）、BS、Del
親指でレイヤーキーを押したときに押しやすいのは個人的にはDキー、Fキー、Gキーの3つ。マウス操作中にBSやDelキーを押したい時があるので、FキーとGキーにBSとDelを配置。
残ったDキー部分にはLang1を設定。
Lang1の場所はいろいろ試行錯誤してみた。左の親指でレイヤーキーを押しつつ、右手でLang1を押す場合※に比べ、左手のみで完結したほうが打ちやすかったのでこんな配置になりました。
※レイヤー2の最下段のDelをLang1にしたりとか。

### 最下段のDel
レイヤー0でBSだった位置にDelを配置。

### 残りのショートカットぽいやつ
レイヤー2は意識的に左側空けています。これは右手によるマウス操作時に左手でショートカットを押すためです。
業務上何気にWin+Shift+s（画面キャプチャー）を多用するので重宝しています。


## レイヤー3
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/bf9325c8-1817-b189-1da4-e445877e7d68.png)
Winキーを使ったショートカットを登録しています。

## レイヤー4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/99220888-2a45-3eeb-1cbe-632325cc0497.png)
ファンクションキーはあんまり使いませんが、全く使わないわけではないのでひとまず並べてみた感じです。

# まとめ
最初は学習コストの低いキーマップを目指しましたが、使い込んでいくうちにマウス操作時であっても左手も活用したいという欲求が上がり今の構成に落ち着いています。要件的にKeyballが最適解な気もしますが、トラックボールは人差し指派なのでKeyballへの浮気は当面先の話になると思っています。（興味はある）

# おまけ
今回のキーマップはある程度の汎用性を持たせているので、Corne v4 Chocolateにも適用しています。
実際のキーマップはこんな感じになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/401e4581-bd59-c64a-0edf-c1e24eada9e2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/6905a90b-64d7-dc3e-10b7-fafb3cfc812c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/f6577ab8-9358-2712-49a2-eb9e1cc94fe3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/937f21ae-ec13-261b-8fe6-4ccdc8084322.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309191/6a5f0cb1-f2d5-e27d-5199-d084ae6bb537.png)

Layer5はLED関連をまとめているだけなので割愛。