分割キーボード使いに贈る - 脳に直結する？！記号入力方法の紹介

Qiita初投稿です。

皆さん、自作キーボード/キーマッピング楽しんでいますでしょうか。
最近では「マ○コの知らない世界」でも自作キーボードが紹介されたりと、興味を持つ方が増えてきているのではないかと思います。

# 自己紹介/キーボード歴について

元々キーボードには興味があって、RAZER BLACKWIDOW(青軸)を家で、Majestouch2(茶軸)を会社で使用していました。
後にHHKBも手に入れますが、静電容量無接点方式よりメカニカルスイッチの方が自分は好みでした。

沼にハマるきっかけは2016年に前職の同僚に唆されてErgodoxEZを購入したことから始まります。
実は購入直後はあまりErgodoxEZを使わずに積んでたのですが、いざ使ってみると通常のキーボードに戻れなくなるほどの魅力がありました

その2年後に「自作キーボードのキットがコミケで出るよ。めっちゃ楽しそうじゃない？」ってコミケ前日に唆されて行く予定の無かった夏コミに参加してMint60を買ってから本格的にハマり、積みキが増えて行っている状態です。
なお、唆したのは2年前にErgodoxEZを進めてきた同僚と同一人物です。

ハード側はあまり得意ではないので、ソフト側で面白いことができないかなと考えた結果、
天下一キーボードわいわい会(天キー)ではCorneのOLEDで遊べるスタンドアロンタイピングゲームを展示したりしました。

# 自作キーボードの魅力
さて、自作キーボードの魅力としては

- キーボード毎に異なるキー配置
- キーマッピングの変更
- おしゃれに彩ることができる(外層/キーキャップ/LED)
- 好きな打鍵感にすることができる(キースイッチ)

といった点が上げられると思います。
今回はこの中の「`キーマッピング`」についてお話しします。

## キーマッピングとは
市販品ですと、Aキーを押したら「a」のキーコードが送られ、「Shift+A」を押したら「A」のキーコードが送られます。
この端末に送るキーコードを自由に書き換えることができるのが、自作キーボードのキーマッピングとなります。
マッピングがOS上ではなく、ファームウェア上での書き換えになるため、どの端末に繋いでも同じように使えるのが特徴です。
また、いわゆるFnキーのようなキーも設定可能で、10個以上のレイヤーを設定することが可能です。
同時押し・連続押し・長押しなども判定でき、同じキーでも20種類以上の役割を持たせることも可能です。
(流石に混乱するので、やる人はいないと思いますが)

# 本題 - 脳に直結する記号入力とは
皆さんは記号を入力するとき、どのようなプロセスを経ていますでしょうか。

例えば「`@`」を入力するとします。
JISキーボードの場合、
1 「@」のキーを押そう
2 「@」のキーはPの隣だから右手を少し動かしてタイプしよう
3 「@」がタイプされる
USキーボードの場合
1 「@」のキーを押そう
2 「@」のキーはShift+2だからShiftを押そう
3 「@」のキーはShift+2だから2を押そう
4 「@」がタイプされる

どちらにしても2の部分で一瞬キー入力のことを考えなければなりません。
もちろん熟練の感覚で入力できる人もいると思いますが、変換プロセスが入っていることには変わりありません。
また、どちらも正直打ちやすい位置には存在していません。USの場合は大きく手を動かす必要があります。
そのためTypoの可能性も増えますね。

## 提唱するキーマップ
これが下記の表になります。
Raiseキーは親指で押せる位置にあるFnキーと考えてください。[^1]

| 記号 | 提唱するキー | 元のキー(JIS) | 元のキー(US) | 提唱理由 |
|:-----|-----:|-----:|-----:|:-----|
| @ |  Raise + a | @ |  Shift + 2 | [a]t mark |
| ! |  Raise + e | Shift + 1 | Shift + 1 | [e]xclamation |
| " |  Raise + w | Shift + 2 | Shift + ' | [w] quotation |
| # |  Raise + h | Shift + 3 | Shift + 3 | [h]ash |
| $ |  Raise + d | Shift + 4 | Shift + 4 | [d]ollar |
| % |  Raise + p | Shift + 5 | Shift + 5 | [p]ercent |
| & |  Raise + n | Shift + 6 | Shift + 7 | a[n]d |
| ' |  Raise + q | Shift + 7 | ' | [q]uotation |
| ￥ |  Raise + y | ￥ | 無し | [y]en |
| \ |  Raise + b | \ | \ | [b]ack slash |
| ; |  Raise + s | ; | ; | [s]emi colon |
| : |  Raise + c | : | Shift + ; | [c]olon |

ポイントは記号の読み方とキーをマッピングすることです。
自分は入力を行う場合、脳内で声に出す感覚で変換が走ります。
つまり「`echo $v;`」は脳内で「`えこー どる ぶい せみころん`」となり、
英語表記なら「`echo dollar v semicolon`」になります。
するとdollarの頭文字であるdの方が先に頭をよぎるわけです。
「Shift + 4」より優れていると思いませんか？
「&」だけは正直強引に設定していますが、@が元の位置で良い場合は「a」に設定するとしっくりくるかもしれませんね。

## それ以外の記号は？

上記キーマップで、押しやすいのにマッピングされていないキーのまとまりがあります。
それが「`u`」「`i`」「`j`」「`k`」「`m`」「`,`」の6つです。[^2]
標題とは異なり脳に直結はしませんが、括弧をマッピングすることで記号入力が快適になりました。
(そもそも3種類の括弧という存在自体が脳に直結はしない気がします)

| 記号 | 提唱するキー | 元のキー(JIS) | 元のキー(US) |
|:-----|-----:|-----:|-----:|
| [ |  Raise + j | [ | [ |
| ] |  Raise + k | ] | ] |
| ( |  Raise + u | Shift + 8 | Shift + 9 |
| ) |  Raise + i | Shift + 9 | Shift + 0 |
| { |  Raise + m | Shift + [ | Shift + [ |
| } |  Raise + , | Shift + ] | Shift + ] |

こちらに関しては純粋に良く使う割に、変な位置に存在していたキーがホームポジションで押せる点が大きなメリットかと思います。
また、格子型配列では位置が分かりやすくなるため、特に力を発揮するのではないでしょうか。

# 最後に
これが正解だ！というキーマップは、個人個人で変わってくると思います。
自分の考える最強のキーマップを考える際に、少しでも参考になったら嬉しいです。

[^1]: レイヤー切り替えのキーとして、Raise/Lowerがよく使われる名前ですのでRaiseを採用しました。
[^2]: qwertyの場合。