task #517
masaya_abe さんが2日前に更新
## やりたいこと
効率的でスタイリッシュなキーバインドで打鍵したい
## qwerty配列がこの世の基準
↓の画像が普通のキー配列で,これは元々タイプライターの配列とのこと.

タイプライターの技術的な限界から打鍵速度を落として,アームの衝突を防ぐ事を最優先に考慮した配列だという.
要するに,左の小指から右の小指までまんべんなく使うようにバインドされており,
頻出のキーや良くある組み合わせの考慮は優先されていない.
## 現代の代替配列
↓のような配列がある

dvorak配列というらしい
これは英語ベースであるが,より頻出のキーや,英単語の構造的な特徴を考慮している.
しかし日本はもちろん海外でも流行っていない.
他にも,日本語向けのモノやよりモダンなのもあるが,やはり人口は少なくかなりオタク領域.
## 代替配列が流行らない理由
代替配列が流行らない理由は以下が主と思われる
* キーバインドを変更するという発想がPCオタクになった後の発想
* この課題を認識する時には既にデフォルト配列をマスターしている
* 出先や客のpcを操作する場合等業務上の課題
* ショートカットキーのバインドをどうするか問題
要するに「PCオタク知識」,「再学習コストの許容」,「付随する課題への解決策」がセットで必要となる.
上記を考慮した時に「まあ,このままでいいや」となる.
## 大西配列が熱いらしい

https://o24.works/layout/
特に日本語のローマ字打ちに配慮している.
母音aiueoキーを左手で打ち,子音を右手で打つことで左右交互打鍵とし
かつzxcvの多用ショートカットは変えない.
下記の設計過程も納得感あり面白い
https://note.com/illlilllililill/n/n3b51f4aaf086
また,下記の動画を見ると変態配列使いたさげより上がる
https://www.youtube.com/watch?v=iKSnUOVDimM
## とりあえずやってみる
AUTO HOT KEYでバインドを大西配列に差替えてしばらく使ってみる
必要に応じて更にバインド変えるかもしれない
1週間程度で所感を纏める
```
;大西配列
-::/
q::[
w::]
[::q
]::'
'::l
e::u
r::,
t::.
y::f
u::w
i::r
o::y
a::e
s::i
d::a
f::o
g::-
h::k
j::t
k::n
l::s
sc027::h
b::sc027
n::g
m::d
,::m
.::j
/::b
```
※以下は必須昔からずっと使っている
```
#If !GetKeyState("Alt", "P") ; Altキーを押しながらの場合は通常通り動作させる
~LAlt::
Run, ahk_class imejp.imjp_003 ; IMEの英数に切り替え
Return
~RAlt::
Run, ahk_class imejp.imjp_001 ; IMEのかなに切り替え
Return
#If
```
## バインド変更
タイピングは明確に遅くなったが、2週間もすれば割と覚えられた。
配置もいろいろ考えていたが、特にaiueoの配置。
なんだかんだでauを中指がかぶっているのが気になった。指は5本あるのだから
つまり親指を使えばよい。
日本語ローマ字打ちで,aが再頻出とのことで,親指に持ってくるとして,「いうえお」はどうするか
頻出度を反映するなら,小指から「ういえお」の順だが,試してみるとzu(ず)がかなり打ちずらい.
そのため,「いうえお」は左からそのまま「いうえお」にする.結果的に覚えやすい配置でもある.
この場合,「zi」(じ)は,「ji」で打てば良い.
また,G,Dあたりは上に持って行きたい。人によるだろうが、指曲げるより伸ばす方が楽だから。
あと記号とQL。どうせならよく使う記号は左手に寄せ,QLは右に持って行きたい。

上記は61キーなのでキー数が多くないがこれをベースにレイアウトを再考する.
## キーボードを自作する
前述の通り親指でAを押すことを考えたが,そもそも親指はニート過ぎる.
他の指と比べ遥かに仕事が少ない.大概の場合[space]専用の指みたいになっている.
親指ニートを卒業させることと
* 出先や客のpcを操作する場合等業務上の課題
この課題をクリアする最も良い方法は「自作キーボード」と思われる。
→ムダにデカい[space]キーを廃止できる
→ファームウェアレベルでバインドが適用済みなのでキーボード持ってけばAHKとか不要
→いざとなったらAHKの実行ファイルをクラウドとかに上げとけば大概は対応可能
→単純にかっこいい
左右分離キーボード作る
https://github.com/abstracthat/dactyl-manuform?tab=readme-ov-file
layout0

layout1

## ファームウェアを作る
ファームウェアをビルドするのにコンパイル環境用意するのめんどくさい
~~と思っていたけど下記サイトで生成できる。神。
https://config.qmk.fm/~~
このサービスで作成したファームウェアだと左右のシリアル接続ができなかった.
下記を使って最速で環境を用意できたのでこれでコンパイルすることにした.
https://msys.qmk.fm/
ファームウェアできたら後は下記ツールでボードつないで書き込めばOK
https://qmk.fm/
## 組み立てる
### ボディシェル
シェルはJLCに外注した.
左右x2(自宅用,職場用)で20$+送料18$位だった.他にも外注も含め合計 60$位.

### キースイッチ
まず,自宅用を作ってみる.
在庫のキースイッチをはめた.
小指は35g位の軽量スイッチ(ピンク)
基本は40g位のスイッチ(水色)
中央は重さ不明の銀軸高速スイッチ(黒銀) ゲームやることもあるので
それ以外は45g位の赤軸スイッチ(赤色)
力の入りやすさと対応するよう小指などは軽くなるように心掛けた.

### キーキャップ
キーキャップは最近お気に入りの木目調を再利用した.

### 配線
最近の自作キーボード界隈では,PCBから自作するのがトップメタみたいだが,
単純に全てはんだ付けで対応した.
今回の曲面キーボード用のPCBつくるには,フレキシブルPCBじゃないといけないので割高なうえに
曲面にフィットするように寸法調整が一撃でうまくいかない確信がある.
また,PCBわざわざ作るならキースイッチホットスワップ出来るようにしたくなる.
その場合,
・PCB30$位 (1回ミスして60$)
・PCB納期で+2週間遅れ
・ホットスワップ端子150個 3500円
単純に金も手間も時間もかかる.
もう買ったほうが良くね?となる.
なので,極めてシンプルなオール手動はんだ付けで対応した.

職場用も同様に
 「あとで写真入れる」
### コネクタ類
3dモデルは何も考えずに選定したが,コネクタ周りの思想が古いようだった.
左右繋げるケーブルは何故か電話線を想定してるらしいデカい四角だったりする.
調達が微妙にめんどうだったがどうにかした.


### 完成
最終的なキー配置は↓の配置にした
大きな変更として、ゲーム用は配列(qwerty)を追加した。

職場要は銀軸赤軸は使わず小指だけピンクのスイッチでそれ以外は水色スイッチで統一した.