突然自作キーボードにハマりHelixとHelix Picoを作った話 その3： キーレイアウト編

[ブログ](https://aoirohn.hatenablog.com/entry/2018/12/02/202544)からの転載です

--- 

Helix Picoのキーボードレイアウトの話

Helixを作った話は[その1](https://qiita.com/aoirohn/items/fa8e967e6c764fd38248)
Helix Picoを作った話は[その2](https://qiita.com/aoirohn/items/d4374ace4169aa993028)へ

---
# 背景

Helix Picoを作って使い始めたはいいが、せっかく自作キーボードを作ったのだから親指の位置にEnter, Backspaceを入れたかった。

Helix Picoの[デフォルトレイアウト](https://github.com/qmk/qmk_firmware/blob/master/keyboards/helix/pico/keymaps/default/readme_jp.md)は一般的キーボードに合わせた作りになっており、あまりやんちゃしていないので、自分で作ることにした。

# 作ったレイアウト

https://github.com/aoirohn/qmk_firmware/tree/aoirohn_helixpico/keyboards/helix/pico/keymaps/aoirohn

せっかくだからHelix Picoについてたキー配列カードを参考に印刷用のレイアウト画像も作った

Qwertyはこんな感じ
![key.001.jpeg](https://qiita-image-store.s3.amazonaws.com/0/256100/309323f5-1f61-0e31-8901-319cc4900904.jpeg)
![key.002.jpeg](https://qiita-image-store.s3.amazonaws.com/0/256100/0be51fcf-5a06-6dfd-d12e-bed1707753da.jpeg)



他のレイアウト

- Eucalyn
    - [Mac](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201927.jpg)
    - [Windows](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201932.jpg)
- Colemak
    - [Mac](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201938.jpg)
    - [Windows](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201943.jpg)
- Dvorak
    - [Mac](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201948.jpg)
    - [Windows](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aoirohn/20181202/20181202201953.jpg)


# 考えたこと

- いつもMacでやっている通りCtrlとEscapeはUS配列のCaps Lockの位置に置きたい
- 親指でEnter, Backspace, Command, 英数, かなを押したい
- あわよくばRaise, Lowerキーも親指で押したい
- Tab, Deleteも親指に入れられればいいな
- 右手に単体の矢印キーを置きたい
- でもあわよくばホームポジションから右手を動かさずにQwertyのHJKLでカーソル動かしたい


# 細かい話

## Modifierキー
- Esc/Ctrlは単体で押すとEsc, 長押しするとCtrlになる
- MacのEISU/⌘ は単体で押すと英数、長押しでコマンド。KANA/⌘は「かな」とコマンド
- MacのHENK/Alt は単体で押すと変換、長押しでAlt。MHEN/Altは無変換とAlt
- Tab/Lowerは単体で押すとTab, 長押しでLower切り替え
- Enter/Raiseは単体で押すとEnter, 長押しでRaise切り替え

## IME切り替え

WindowsでIMEを切り替えるには<code>Alt + `</code>を入力しなければならない。
デフォルト配列等では独自のキーを定義してWindowsとMacで違うキーコードを入力できるようにしているが、QMKで長押し等でキーを切り替える<a href="https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md">Layer SwitchingやModifiersの機能</a>では独自キーが使えない？ようだったのでWindowsとMacのレイヤーを分けた。

WindowsではIME切り替えキーの代わりに変換、無変換キーのコードが押されるようになっている。
IMEの設定で変換にIME ON, 無変換にIME OFFを入れることでMac同様の切り替えができる。（ただし、OS側でキー設定をしなくても同じように使えるという利点はなくなってしまっている）

## Space, Backspace

SpaceキーとBackspaceキーには長押ししたときにキー配列を割り当てないようにしている。
他の人のレイアウトを見ていると親指にSpace, Backspaceを配置しているものが多いのだが、長押しに他のキーを割り当てると、Space, Backspaceを長押ししたときに連続入力ができない。個人的にこの２つのキーは連続入力したいことが多いので、長押し機能は入れないようにした。

Raise, LowerレイヤーのSpaceキー位置にはShift+Spaceを入れた。あんまりやっている人はいないが、変換時に変換候補の選択を戻るのに便利。
これはおすすめしたい。

## 矢印キー
右手だけでカーソル操作できるように単体の矢印キーを右手右下位置に置いたが、LowerレイヤーのHJKLでもカーソル移動ができるようにした。やはりホームポジションでVim同様にカーソル移動できるのは便利。
(もしDovorakやEucalyn配列にしてもvimでホームポジションでカーソル移動できる)

## Menuキー

Windows用にレイアウトにMenuキーを入れたのだが、Macには該当するキーがないので入れるキーに困った。
特に入れるキーもなかったので最終的にCtrl + ⌘にした。一応Ctrl + ⌘ + Spaceで絵文字入力が簡単にできる。

# まとめ

右手は矢印キーを入れたことでキーに余裕がないのに対し、左手はキーが有り余って入れるキーに困ってしまった。

まだ納得行って無い部分も多いがある程度満足できるレイアウトが作れた。とりあえずはこれで使って行きたい。