
## キーマップの更新内容
[[Keyboardio]] の [[Atreus]] キーボードのキーマップをアップデートしました。[[📗240204_AtreusのキーマップV2|前回の記事(V2)]] からの変更点とその意図について記録。
前回記事から半年弱経ちましたが、 [[📗240204_AtreusのキーマップV2#キーマップのWWH|キーマップに対する基本的な姿勢]] は、あまり変わっていません。
先日ふと60%キーボードを取り出して打ってみましたが、親指まわりの非効率にガマンができなくて、すぐに [[Atreus]] に戻ってしまいました。
## なにを目指すキーマップにするのか(Why)
下記の「かなり強い要望」に変化はありませんでした。
- 英数・かなキーをつかいたい
- Emacsのカーソル移動系コマンドをつかいたい
- `ESC` を気軽につかいたい
- 数字がテンキー並びだとすごく打ちやすい
加えて「要らなさそう」には変化がありました。
- 矢印キーは重要ではない ⇒ やっぱりほしい
- ファンクションキーはなくてもよさそう ⇒ これは変化なし
> [!smile] 良くも悪くも、この間の変更の目玉は、BASEレイヤーへの矢印キー追加でした
採用するテクニック(プラグイン)は取捨選択がありました。
- 1回押しと複数回押しでの入力切り替え ⇒ ごく一部の利用に限定
- 短押しと長押しでのキー切り替え([Qukeysプラグイン利用](https://qiita.com/hann-solo/items/4186afda422d28650ed7)) ⇒ 引き続き利用
- `ESC` の短押し/長押しを、`ESC`/ `Q` に ⇒ 廃止
- `Z` の短押し/長押しを、`SHIFT`/ `Z` に ⇒ 廃止
- `A+S` を `Ctrl-a` に ⇒ 継続
マッスルメモリの制約も、変化がありませんでした。
- ピンク枠:親指ホームポジションと、ひとつ内側の区別があいまい。とくに右手
- オレンジ枠:一番センターのキーは見ないと打てない

<span class="mxt-caption"> ▲ 努力も大切ですが、あきらめも肝心です</span>
## どのようなキーマップにするのか(What)
大きな論点としては、
- Emacsのカーソル移動系コマンドの専用レイヤーをつくる
- レイヤー構成は、BASE, SYMBOL, NUMPAD, EMACS の4つにする
- レイヤー切り替えは、Space, Enter, A, D, かな に割り当てる
- 矢印キーはBASEレイヤーの右下に入れる
もう少し細かな論点は、
- 短押しと長押しで出力を変える機能は、レイヤー切替と英数・かなに限定する
- 数字は、横一列に並べるのと、テンキーのように並べるのと、両方入れる
- ファンクションキーは、必要を感じるまで、含めない
> [!tip] ファンクションキーは、いつか必要になりそうだとおもいつつ、半年弱が経ってしまいました
## キーマップ
以下に、現在のキーマップを示します。
```
/* BASE
* +----------------------------------+ +----------------------------------+
* | ESC/Q| W | E | R | T | | Y | U | I | O | P |
* | A/(3)| S | D | F | G +-------------+ H | J | K | L | ; |
* | Z/SHF| X | C | V | B | XXX | BS | N | M | , | . | / |
* |LShift| XXX | LAlt |英LGui| LCtrl|Spc(2)|Ent(1)|かRGui| かTAB| - | ' | ` |
* +-----------------------------------------------------------------------------------+
*/
/* SYMBOL
* +----------------------------------+ +----------------------------------+
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
* | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
* | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | Up | XXX | \ |
* | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Left | Down | Right| = |
* +-----------------------------------------------------------------------------------+
*/
/* NUMPAD
* +----------------------------------+ +----------------------------------+
* | ___ | ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
* | /(3)| ___ | ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
* | ___ | ___ | ___ | ___ | ___ | ___ | ___ | + | 1 | 2 | 3 | / |
* | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | 0 | , | . | * |
* +-----------------------------------------------------------------------------------+
*/
/* EMACS
* +----------------------------------+ +----------------------------------+
* | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
* | XXX | C-a | DEL | Right| ESC +-------------+ BS | Enter| C-k | XXX | XXX |
* | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | XXX | XXX |
* | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX |
* +-----------------------------------------------------------------------------------+
*/
```
inoファイルはこちらに置いておきます:[Atreus.ino · GitHub](https://gist.github.com/hnsol/edaf16fe5d4d679d980561923e048cad)
> [!caution] Disclaimer
> 公開されているinoファイルが少ないので、ご参考になるかとおもい掲載します。
> この記事の趣旨とは異なる設定ファイルに進化している可能性もあります。その節は平に御海容ください。
### キーマップ補足
#### 1. BASEレイヤー
- **標準的な英語キーボード配列**に加え、以下のカスタムキー設定が含まれる:
- `A`キーでEMACSレイヤーへのトグル
- `D`キーでNUMPADレイヤーへのトグル
- `Space`キーでNUMPADアクティベーションと英数モード
- `Enter`キーにRight Shift割り当て
- `かな`キーでSYMBOLレイヤーへのトグル
#### 2. SYMBOLレイヤー
- **記号入力に特化**しており、以下のキーが含まれる:
- 基本的な記号(! @ # $ % ^ & * ( ) - =)
- 括弧([ ] { } ( ))
- タップダンスアクションで括弧ペアの入力が可能
#### 3. NUMPADレイヤー
- **数字入力とナビゲーション**に特化したレイヤー:
- キーパッド形式での数字入力(0-9)
- 基本的な計算記号(+ - * / =)
- 明るさと音量調整キーの追加
#### 4. EMACSレイヤー
- **Emacsショートカットのサポート**:
- C-Esc, C-a, C-eなどのEmacsキー
- Emacsに準拠したキー(Tab、Backspace、Enter)
#### 5. その他の特徴
- **Qukeys設定**:
- 複数のキーにQukey設定があり、特定のキーの短押しと長押しで異なるアクションを実行
- Qukeysのオーバーラップ閾値を60に設定し、タイピングのレスポンス改善
- (参考:[KaleidoscopeのQukeysプラグインの設定 - Qiita](https://qiita.com/hann-solo/items/4186afda422d28650ed7))
## 残課題
- Qukeysの閾値の設定が、収束しそうで収束しません
- たまに記号キー(たとえばbacktick)の場所を忘れて、打てなくて困ることがあります
- `Ctrl` を `A` ではなく、`Ctrlキー` を押すようになるといいのですが
- `Q` の位置を時折忘れて `ESC` を打ってしまいます
> [!smile] カスタマイズを重ねて練度があがり、ずいぶん手に馴染んでいるとおもいます
## まとめ
タイプミスを減らすことを目指しているなかで、複雑な機能の利用は減っていきました。
40%キーボードにおいて、キーの押し方で出力を変える(Atreusの場合はQukeys)のは、必須機能ではありますが、多用すればするほどミスをする(あるいはいつか忘れる)デメリットもあります。
---
## 参考リンク
- [Advanced customization sketch for Keyboardio Atreus, featuring layered keymaps, macros and qukeys functions. · GitHub](https://gist.github.com/hnsol/edaf16fe5d4d679d980561923e048cad)
- [KaleidoscopeのQukeysプラグインの設定 - Qiita](https://qiita.com/hann-solo/items/4186afda422d28650ed7)
- [自キ活始めてからのキーマップの試行について 〜60%キーボードから40%キーマップを目指した結果〜](https://zenn.dev/tatsutanicov/articles/286f3d0f262f59)
- [40%でも大丈夫!数字キーすらないキーボードのキーマップとは? - NENZOP](https://www.nenzop.net/entry/keyboard)