Colemakへの移行
(pta2002.com)- Colemak-DHへの移行は、速度向上よりも、誤ったタッチタイピングの癖と指の痛みを減らすための選択であり、Workmanの代わりに採用された
- keybr.comで1日約20分ずつ4日間練習して配列を覚え、速度は22wpmから45wpmに上がったが、95%の精度では修正の負担が大きかった
- 5日目からmacOSにColemak-DHを導入して実務で使い始めると、ショートカット、Shift、記号、Vim、コマンド、パスワードといった文字以外の入力で摩擦が表面化した
- 7〜8日目にはフルタイム使用へ移行して65wpmに到達し、monkeytypeでの練習と反対側のShiftの使用によって記号と大文字入力が改善した
- 約2週間後には85wpmまで回復し、Colemakは手をホームロウに保ちやすいため、数日の生産性低下を受け入れられるなら試す価値がある
移行の背景と目標
- 以前のQWERTYでもタイピングテストでは簡単に100wpmに到達しており、速度そのものはボトルネックではなかった
- きちんとしたタッチタイピングを身につけられておらず、左手に過度に依存し、右手はほとんど小指しか使わない癖が積み重なっていた
- 長時間のタイピング後に指の痛みが生じ、この癖が反復運動損傷(RSI)につながる可能性があると考えた
- 正しい指の配置を何度も強制的に使おうとしたが、結局は以前の姿勢に戻ってしまった
- QWERTYより良い配列を探す中で、過去に試したWorkmanではなくColemak-DHを選んだ
- Colemak-DHはColemakの派生形であり、Workmanのいくつかの欠点を避けた、より良い配列だと紹介する資料が再挑戦のきっかけになった
初期学習: 0日目から1〜4日目
-
keybr.comで配列を覚える
- 最初から完全に移行して仕事ができなくなる状況を避けるため、keybr.comから始めた
- keybr.comはホームロウから始め、既存の文字で十分な精度に達すると次の文字を開放する方式で、配列を段階的に教えてくれる
- 配列エミュレーション機能のおかげで、コンピュータにColemak-DHをインストールしなくても練習できた
- 下部には正しい指が色分けで表示されたキーボードが出るので、配列を暗記する前の参考として役立った
- 1日約20分ずつ4日間練習してすべての文字を開放し、進みは遅かったが配列感覚をつかむのに役立った
-
速度と精度の変化
- 0日目のタイピング速度は22wpmだった
- 1〜4日目のあいだは基本キーボードをQWERTYのままにして、keybrのレッスンだけを進めた
- 1〜4日目終了時点の速度は45wpmまで上がった
- 精度は約**95%**で、これは20文字に1文字間違える水準のため、修正が増えて速度にも大きく影響した
5日目: 実際のColemak-DH使用開始
-
macOSへの導入
- 業務用デバイスはMacBook Proで、macOSには標準のColemak配列はあるが、DH modは標準では提供されていない
- ColemakModsの配列ファイルをHomebrewで導入した
brew install --cask colemak-dh # Install Colemak-DH- インストール後、設定に配列を表示させるにはログアウトして再ログインする必要があった
- QWERTYも残したまま、globeキーまたはCtrl+Spaceで2つの配列を切り替えられるように設定した
- 業務用ノートPCであり、Appleのキーキャップは簡単に外せる設計には見えなかったため、キーキャップは入れ替えなかった
-
初日の使用感
- 5日目のタイピング速度は50wpmだった
- QWERTYの筋肉記憶が深く染みついており、脳が新しい配列に切り替わるまで時間がかかった
- 文字入力そのものはその日の終わり頃には比較的問題なくなったが、修正が多く全体の速度はまだ遅かった
- 実際のキーボード使用には文字入力以外にもショートカット、修飾キー、記号、Vim操作、コマンドやパスワードといった要素が多いことが明らかになった
移行中に表面化した主な摩擦
-
キーボードショートカット
- コピー、貼り付け、元に戻すといったショートカットは、予想より大きな問題ではなかった
- 数回試すうちに大半は適応できたが、URL選択(Cmd+L)をしようとして新しいブラウザウィンドウ(Cmd+N)を開いてしまうことが繰り返し起きた
- ショートカットは位置ベースよりもニーモニックベースであることが多く、数日で慣れられるだろうと考えた
-
Shiftと修飾キー
- 文字キーでは正しい指を使い始めたことで、Shiftはほぼ右Shiftしか使ってこなかったことが明らかになった
- 右手側の大文字を入力するとき、右小指がShiftに固定されると正しい指配置を保ちにくい
- 配列を指の位置で覚えていたため、大文字入力では小文字よりもタイプミスが大幅に増えた
- オンラインでsticky keysの利用提案も見たが、ひとまず文字を打つ手とは反対側のShiftを意識的に使う方法で練習した
-
記号とポルトガル語入力
- 代替キーボード配列は通常、記号キーをあまり動かさず、Colemak-DHも概ねそうだが、導入したColemak配列はUS配列ベースだった
- もともと慣れていた入力はポルトガル語キーボード配列だったため、文字位置は同じでも記号位置はすべて異なっていた
- 未設定のLinux環境やPCからMacへ移るときに記号位置の違いへ慣れた経験はあったが、移行初期は記号の正確さが約**10%**に感じられるほど難しかった
- 正しいポルトガル語表記に必要なアクセントやçの入力が欠けていたため、ポルトガル語の記号キーを持つカスタムColemak-DH配列も検討した
- Brazilian Portuguese配列は見つけたが、Macで動く形式へ移す方法はわからなかった
-
Vim
- Vimキーバインドをさまざまな場所で使っており、文章作成にもNeovimを使っている
hjklキーはQWERTYのホームロウ上にあるため選ばれた組み合わせだが、Colemakでは散らばっており使い勝手が大きく悪化した- 当面は矢印キーを使ったが、満足はできなかった
hjklを再バインドするとColemakではmneiになるが、eとiはそれぞれ単語末尾や挿入モードのように頻用されるニーモニックベースのバインドなので移しにくいと考えた- Colemak.orgが提案する“Extend” layerを、後で試す対象として考えた
-
筋肉記憶と特殊入力
- 通常のテキスト入力精度は約**98%**まで上がったが、コマンドライン入力のように筋肉記憶へ依存していた入力は精度が非常に低かった
cdの代わりにds、jjの代わりにnnを入力してしまうようなミスが起きた- パスワードは入力内容を見られず、実際の文字より筋肉記憶に大きく依存していたため、タイプミスがさらにひどかった
- パスワード入力はしばらくQWERTYへ切り替えて処理した
- スマートフォンはQWERTYのままにした
- スマートフォン入力は自動修正やスワイプ入力に依存しており、コンピュータのタイピングとはまったく異なる筋肉記憶なので問題はなかった
- モバイルでColemakを使っても、親指だけで入力する環境の人間工学上の問題は解決しないと考えた
7〜8日目: 全面使用と安定化
- 7〜8日目のタイピング速度は65wpmだった
- この時点が、QWERTYへ戻らずColemakをフルタイムで使った最初の区間だった
- 速度と精度がともに改善し、もう大きくつまずくことはなくなった
- QWERTY時代よりはまだ遅かったが、平均的なユーザーの範囲には入っており、主な問題も「間違えて打つこと」から「遅く打つこと」へ変わった
- 記号入力とShiftの使用も改善した
- monkeytypeの「punctuation」設定で記号入力を練習した
- monkeytypeでは反対側のShift使用を強制する方法もあり、その習慣を身につけるのに役立った
- アクセントはOption/AltGrで入力できるため、ひとまず配列は変更せずこのまま維持することにした
2週間後の成果と結論
- 約2週間後、タイピング速度は85wpmに到達した
- 毎日約10wpmずつ改善しており、元の速度に近づいていると感じた
- 依然として最も難しい部分は、修飾キーを押しているあいだの正確さだった
- 修飾キーを押すと手の位置が少しずつずれ、ホームロウの小さな突起を再び探して指を元の位置へ戻す必要があった
- Colemakは手を実際にホームロウに保てるという点で、QWERTYより優れたキーボード配列だと体感された
- ポルトガル語入力に最適化されているわけではないが、QWERTYより悪くはなく、コンピュータでは主に英語を使うため十分だと考えた
- 速度の変化: {l:22,45,50,65,85}
-
Extend layerの使用
- Extend layerはCaps Lockとほかのキーを同時に押して、ページを戻る、矢印キー入力、ページスクロールといった操作を行う方式である
- 多くの作業でキーボードから手を離さなくてよくなるため便利だった
- VimもExtend layerを通じて大半を適応できた
- Extend layerはColemakなしでも適用できるため、関連文書を読んでみる価値がある
-
最終判断
- 数日の生産性低下を受け入れられ、1日中タイピングする人なら試す価値がある
- まだ改善途中ではあるが、元のタイピング速度をまもなく上回れそうだと考えている
1件のコメント
Lobste.rsの意見
冗談はさておき、レイアウトの変更はタッチタイピングの改善を強制する良いきっかけにはなるが、かなり急進的なので誰にでも勧められるものではない。
どこでもVimキーバインドを使う立場としては、
hjklはQWERTYのホームローに合わせて選ばれたキーなのに、Colemakでは散らばっていてかなりつらい。Dvorakはまだjkが左手、hlが右手で順序も合っているので少しマシ。バインド変更は滑りやすい坂で、Vim以外のソフトウェアでもVimモードをサポートしているものが多く、基本の移動/操作キーに意味がある場合が多い合計34キーのキーボードにも変えたが、タッチタイピングには本当に良い一方で、実際にはさらに遅くなった可能性が高い。ただ、自分の仕事ではWPMはほとんど問題にならない
Vimを初めて学んだときは、
hjklを再マッピングしたいと思うほど詳しくもなかったし、当時はコンサル会社でペアプログラミングをたくさんしていた。結局Colemakでのhjklの位置をそのまま覚えてしまい、今ではQWERTYでVimをどう使うのか分からない 😬Ctrl-AやCtrl-PはColemakでもQWERTYと同じくらい手をひねらせるし、Emacsは特に致命的だった。当時の解決策はKinesisに変えることで、親指でより多くのキー、とくにCtrlやAltを押せるようになり助けになった。今は普通のキーボードに戻ったが、人間工学と休憩に気を配ることで故障を管理できている
ノートPCのQWERTYキーボードでタイピングしていて反復性緊張障害が出始めたのでDvorakへ変え、その後Kinesis Freestyleの分離型キーボードを買った。数年間は助けになったが、さまざまなキーバインドのつらい指のもつれや、スマートフォン利用のようなキーボード外の要因のせいか、また少しずつ症状が出てきた。
今はMoErgo Glove80を使っていて、とても気に入っている。Glorious Engrammer(https://sunaku.github.io/moergo-glove80-keyboard.html)をフラッシュし、同じ作者のEnthiumレイアウトを使っている。机に向かっているときのタイピングは今では非常に快適で、机を離れたときはQWERTYをまたゆっくり覚え直して使っている。
新しいレイアウトを学ぶのは遅いが、元記事で触れられていたkeybr.comのようなオンラインツールはかなり役立つ。ページを開いて、打ちたいだけ打てば、時間による進歩や停滞を確認できる。
Glove80を買う前、反復性緊張障害で苦しんでいた間は、音声でコンピュータを操作できる優れたソフトウェアであるTalonも使い始め、有料課金もした。今はタイピング補助手段としてより限定的に使っている。
みんなも体を大事にしてほしい
たとえばカラムスタッガードキーボードに変えると、指の左右移動、とくに通常のタイピング中の人差し指の移動が減り、負担が軽くなることがある。ただし、こうしたキーボードではQWERTYはかなり相性が悪く、交互打鍵が足りず、よく使う
TとNが人差し指の斜め移動を必要とする位置にあるためだ。こうしたキーボードでは、その斜め位置の負担を減らすレイアウトのほうがはるかに適しており、たとえばColemak-DHはその位置にbvjkを置くことで、非常に頻度の高い文字を避けている最初の実用的な解決策は、kmonadでCapsをBks/Ctlのデュアルファンクション、EnterをEnt/Ctlのデュアルファンクションにすることだった。2つ目は、補助キーの大半を親指に置いたAtreusキーボードを使うこと、そして3つ目で最近の解決策は、AtreusをMiryokuレイアウトに変えてホームロー補助キーと親指レイヤーを使うこと、ほかのキーボードではkanataでMiryoku-liteを適用してホームロー補助キーとSpaceの代替レイヤー1つを使うことだ
少し時間はかかったが、必要な努力はかなり少なく、一度に完全移行しなければならなかったら絶対に切り替えられなかったと思う。全体として変えてよかったし、指の負担は目に見えて減った
grp:switchxkbオプションを使って、右Altを親指で押している間だけ一時的にQWERTYへ切り替えている。とても快適で、習得もしやすかった。同じようにWASDを探すゲームなどでは
grp:shifts_toggleでQWERTYをトグルしている。切り替えてよかったと思うレイアウト変更後に速くなったと感じるのは、レイアウト自体の違いではなく、キーキャップに書かれた文字と実際のレイアウトが一致しないせいでキーを見ないよう強制されるからだと0.8くらいの確信で思っている。
実際に自分のタイピング速度を改善したのは、理論を学ぶこと、つまり手の位置や全ての指を使うといった基本であり、その数年後にはキーキャップを不透明な粘着テープで覆ってキーを見えなくしたことだった
速度向上が目的なら、レイアウトを変える前にキーキャップを不透明なシールで隠すか、かっこいい無刻印キーボードを買ってみるほうを勧める
ただしQWERTYではその習慣は身につかず、レイアウトを変えたことで正しい位置を使うこととキーキャップを見ないことが自動的にセットで身についた。しかも少しだけ人間工学的なレイアウトという利点も得られた
速度は測っていないが、体感ではColemakとQWERTYは同じくらい。Colemakのほうが人間工学的だと言われているし、もう習得しているのでそのまま使い続けている。
ただ、新しく学ぶ人にはColemakは勧められない。自分はスウェーデン人で、最もよく一緒に仕事をするのもスウェーデンの開発者たちだが、彼らにはColemakより英語QWERTYを学ぶよう勧める。スウェーデン語QWERTYはプログラミング時の特殊キーがかなり使いづらい。Colemakと英語QWERTYを比べるなら、英語QWERTYは10%の投資で90%の利益を得る90/10の法則に近い
ノートPCでは約2年間 canary キーボード配列を使っていて、その前は Programmer's Dvorak を使っていた。Androidでは @natkr の flickboard を使っているが、これは一般的なキーボードではない。
こうした代替配列を簡単に使えるようにしてくれるのは home-row-mods や kmonad のようなプログラムで、これらがなければEmacsは使えなかったと思う。
代替配列に変えれば快適な旅が始まり、超サイヤ人級の速度が出ると思っているなら勧めない。少なくとも自分はそうならなかったが、自分にとっては価値があった
最近Kinesis Advantageを買ってとても気に入っているが、Vimでプログラミングするのはかなりひどい。あらゆる種類の括弧を右手の4・5指で入力しなければならない。この問題を解決するProgrammer's Dvorak配列があると聞いた。
個人的には、よく取り組むプログラミングプロジェクトを対象にn-gram統計を取った。使うプログラミング言語の組み合わせは人それぞれ違うので、その結果をもとに記号レイヤーを設計した。
たとえばユニグラム頻度はどの記号をホームロウに置くべきかを示してくれるし、頻出バイグラムも考慮して、同じ指の連続入力を避けたり、できるだけ指のロールになるよう配置した
記号やプログラミングには確かに向いているが、標準のDvorakキーボードを覚えるより、再配置された記号に慣れるほうが時間がかかった。Moonlanderにはテンキーのレイヤーも用意しているが、数字が順番どおりに並んでいない状態には絶対に慣れられなかったと思う。数字の並びが技術的には完全なランダムではないのは分かるが、一文で説明できるようなパターンでもないので頭に入らなかった
もともと速いタッチタイピストで、IBM Selectricで学んで約100 WPMほどだったが、反復運動障害に悩まされていて、Colemakがかなり役立った。以前の速度を完全には取り戻せず、今は85 WPMほどだが十分速いのであまり気にしていない。
より最適化されたキーボード配列があるのは確かだが、Colemakは今ではどこでも使え、ほかのものより破壊的変更が少なく、優れた80%解だ
以前はスペイン語QWERTYキーボードで速度は出ていたが、タッチタイピングはできなかった。Colemakではタッチタイピングできるが、まだ自分の基準ではかなり遅く、ミスも多い。本気で何かをしなければならないときに、より集中するためQWERTYのノートPCに戻ってしまうのも助けになっていない。
諦めることを真剣に考えている。むしろ米国QWERTYでタッチタイピングを学ぶほうがよかったのかもしれない。スペイン語QWERTYととても似ていて、記号の位置もより良い気がする。新しいシステムへ行くたびに発生する設定の負担も望んでいない