SSD Nodes Learn 🎉 VPS $5.50/月〜
ガイド Matt Connor著者 Matt Connor

ColemakとDvorakとQWERTYはどれを選ぶ?

Colemak、Dvorak、QWERTYの違いを比較します。各配列の目的、タイピング速度の根拠が弱い理由、私物でない端末で切り替える負担を具体的に解説します。

短い結論

ほとんどの人にとって、Colemak、Dvorak、QWERTY のどれを選ぶかという問いへの答えは地味です。QWERTY を使い続けてください。移行のコストは数週間にわたる作業速度の低下として現れますが、得られる効果は小さく、測定も困難だからです。移行する場合は、Colemak のほうが負担が少なくなります。30 個ある英字・句読点キーのうち 13 個が QWERTY とまったく同じ位置にあり、コピーと貼り付けのキーもそのまま維持されるためです。Dvorak はより大きな変更を伴いますが、最も広くサポートされています。主要なオペレーティングシステムでは、数十年にわたって提供されているためです。どちらの配列も、それだけでタイピング速度を上げるものではありません。変わるのは指を動かす距離と、長時間作業した終わりに感じる負担です。

このページでは選択について説明します。すでに選択を決めていて、コマンドを確認したい場合は、Linux 用 Colemak セットアップガイドに進んでください。

各レイアウトが想定していた目的

QWERTY は、1870年代の Sholes and Glidden typewriter に由来し、その目的は機械的な制約への対応でした。この機械では、各キーを押すと、金属製の活字アームがバスケットから上がって紙を打ちました。近接した2本のアームを短い間隔で動かすと、衝突して詰まることがありました。頻出する文字の組み合わせを離して配置することで、詰まりを減らしました。QWERTY はタイピストの入力速度を落とすために設計されたという一般的な説は、この経緯を歪めたものです。歴史学者は、この配列の一部が Morse code を書き取る telegraph operators の作業にも由来することを明らかにしています。重要なのは次の点です。このレイアウトは 1878 年の機械構造によって固定され、その後、数十年にわたる訓練によって定着しました。可動部のない keyboard 向けに調整された部分はありません。

Dvorak は、August Dvorak と William Dealey が 1936 年に考案した代替レイアウトです。その設計方針は、レイアウト自体から読み取れます。左手側のホーム段には5つの母音 AOEUI がすべて並び、右手側のホーム段には頻出する英語の子音 DHTNS が並びます。そのため、一般的な単語では左右の手を交互に使い、力の強い指が大半の入力を担当します。また、3つのレイアウトの中で変更の影響が大幅に大きくなります。QWERTY と同じ位置に残るキーは A と M の2つだけだからです。

Colemak は Shai Coleman が 2006 年に公開したレイアウトです。その設計上の制約は、切り替えに伴う負担そのものでした。左側のホーム段は A R S T D、右側は H N E I O となっており、頻出する英語の文字を指の下に配置しながら、それ以外のキーはできるだけ動かしていません。最下段では、QWERTY と同じ位置に Z X C V B を残しています。Colemak では Caps Lock を Backspace に割り当て直すこともできます。これはどのレイアウトでも導入できる別の習慣であり、まったく使わないこともできます。

Colemak と Dvorak と QWERTY の比較: 実際に移動するキーの数

3 段の文字キー列を数えます。ここには 26 個の英字キーと 4 個の句読点キーがあります。次に、各配列を QWERTY とキーごとに比較します。ショートカット列では、Z、X、C、V のうち QWERTY と同じ位置に残るキーの数を数えます。これら 4 つのキーは、ほとんどのシステムで undo、cut、copy、paste に使われます。

ChartKeys that move from QWERTY, out of 30, and shortcut keys kept in place
The data behind this chart
[
  {
    "label": "QWERTY",
    "keys_moved_from_qwerty": 0,
    "shortcut_keys_kept": 4
  },
  {
    "label": "Colemak",
    "keys_moved_from_qwerty": 17,
    "shortcut_keys_kept": 4
  },
  {
    "label": "Dvorak",
    "keys_moved_from_qwerty": 28,
    "shortcut_keys_kept": 0
  }
]

Colemak では 17 個のキーが移動します。Dvorak では 28 個のキーが移動します。この差が、両者の実用上の違いのすべてです。移動したキーごとに、手が以前の位置へ伸びる中で、1 つの習慣を覚え直す必要があります。そのため、この数はつらい期間がどの程度続くかを大まかに示します。どの配列が優れているかは示しません。

編集用ショートカットは想定した位置にありますか?

Colemak では Z、X、C、V が QWERTY と同じ位置にあるため、Ctrl+Z、Ctrl+X、Ctrl+C、Ctrl+V は同じ手の同じ指で操作できます。Dvorak では、これらのうち 0 だけが維持されます。Dvorak では、C は QWERTY の I の位置、V は QWERTY のピリオドキーの位置、X は QWERTY の B の下、Z は QWERTY のスラッシュキーの位置にあります。コピーと貼り付けでは両手を使う必要があります。

これはワードプロセッサーよりもターミナルで大きな問題になります。実行中のコマンドを中断する Ctrl+C や標準入力を閉じる Ctrl+D は、サーバー管理者が 1 日に何百回も押す操作です。Dvorak では、どちらも右手側に移動します。C は QWERTY の I キーの位置に、D は QWERTY の H キーの位置にあります。macOS には、Command キーを押している間だけ QWERTY に戻すバリアントがあります。Linux には Ctrl キー向けの標準的な同等機能がないため、Dvorak ではショートカットが移動し、その位置にとどまります。

Vim と less は h、j、k、l でカーソルを移動します。これらの文字が選ばれたのは、QWERTY で右手の下にあるためです。どちらの代替配列でも、この前提が崩れます。Colemak では、物理的な QWERTY の h、j、k、l キーに印字されている文字は h、n、e、i です。通常は、移動操作をこの 4 文字に再割り当てします。Dvorak では、同じ 4 つの物理キーが d、h、t、n を入力します。どちらの方法も vimrc に数行追加するだけで設定できますが、標準設定の別のマシンを使うと、その対応は機能しなくなります。

タイピング速度に関する根拠が弱い理由

主張の一部は算術であり、議論の余地がありません。配列と文章が決まっていれば、指が移動する総距離と、1 本の指で連続して 2 文字を入力する回数を計算できます。通常の英語の文章では、どちらの数値も QWERTY より Dvorak と Colemak のほうが小さく、レイアウト解析ツールもその方向性で一致します。ただし、これらの結果は計算に使用した文章に依存します。あなたのソースコード、使用する言語、変数名は、その文章ではありません。

議論が分かれるのは、算術上の差が速度につながるかどうかです。Dvorak に関する最も強い主張は、第二次世界大戦中に United States Navy が実施し、再訓練による大きな向上を報告した研究に基づいています。ただし、この研究は August Dvorak 自身の監督下で実施されたため、独立した根拠ではありません。1956 年、Earle Strong は General Services Administration 向けに再訓練を管理比較した研究を実施し、Dvorak への再訓練は、QWERTY のタイピストに同じ時間だけ追加練習をさせる場合を上回らないと結論付けました。1990 年には、経済学者の Stan Liebowitz と Stephen Margolis が、The Fable of the Keys という論文でこれらの批判をまとめました。しかし、この論文も議論の対象になっています。実際の主題がキーボードではなく、市場のロックインだからです。90 年が経過した現在も、代替配列によって入力速度が向上することを示す、大規模で十分に管理された試験はありません。

速度に関する主張に注意すべき理由は、ほかにもあります。QWERTY では、1 分あたり 150 語を大きく超える速度で入力した人もいます。入力速度が 60 語または 70 語であれば、制限要因は配列ではありません。

快適性やけがについては、さらに難しい問題で、根拠もいっそう少なくなります。配列を変更した後に手の痛みが軽くなったと報告する人はいます。その経験を軽視すべきではありません。ただし、配列を変更する人は通常、複数の要素を同時に変えます。新しいキーボード、異なる机の高さ、休憩の増加、数週間にわたる意識的に遅い入力が同じ月に始まり、そのどれが原因でもおかしくありません。痛みが変更の理由なら、まず姿勢と作業量を見直してください。これらの要因のほうが根拠があり、費用もかからないためです。

切り替えに伴う実際の負担

最初の数日間は、1 分あたり 15 語前後の初心者のような速度で入力することになります。レイアウトが意識をほとんど占有しなくなるまでには、2〜4 週間かかります。以前の速度に戻るまでには、毎日使っても通常 1〜3 か月かかります。これは実際に切り替えた人の報告であり、調査結果ではありません。そのため、確約ではなく目安として考えてください。

多くの人が意外に感じるのは、干渉の影響です。手が覚えるのは「Colemak」という名前ではありません。各キーに対応する 1 つの入力先を覚えます。そのため、時間帯ごとに 2 つのレイアウトを交互に使うと、どちらの対応関係も定着しにくくなります。緊急の作業で QWERTY に戻り、その後また切り替える方法は、学習に最も時間がかかります。効果的な方法は 2 つあります。1 回だけ切り替えて、つらい 1 週間を受け入れる方法です。もう 1 つは、物理キーボードごとにレイアウトを固定する方法です。1 台のキーボードでは常に 1 つのレイアウトだけを使うため、環境によって手が読み込む対応関係を判断できます。

切り替えを諦める人の多くは、その落ち込みの時期に諦めます。レイアウトが自分に合わなかったからではなく、その週が忙しかったからです。そのため、切り替える時期が全体で最も重要な判断になります。余裕のある週に始めてください。締め切りの 1 週間前には始めないでください。また、オンコールを担当する週にも始めないでください。

通常、QWERTY の入力スキルは失われません。多くの人は、数日使えば元に戻ると報告しています。ただし、最初は以前より遅く、入力ミスも発生します。この点を知っておく価値があります。QWERTY を失うことを最も恐れる人が多い一方で、実際には最も起こりにくい部分だからです。

クライアントとサーバーのどちらで remap を設定するか

ほとんどの場合、クライアントです。キーボードレイアウトは、キーボードが接続されているマシンで適用され、それ以外の場所では適用されません。キーを押すと、ローカルシステムがそのキーの位置を文字に変換し、入力したキー情報を運ぶ SSH セッションがその文字をバイトとしてサーバーに送信します。サーバーがキーの押下自体を認識することはありません。そのため、リモートマシンで localectl set-keymap dvorak を実行しても、SSH 経由で入力が届く方法は変わりません。Colemak に設定したワークステーションでは、ログインするすべてのホストに対して、追加設定なしで Colemak の入力が送られます。

サーバー側のキーマップが関係するのは、キーボードをそのマシンに物理的に接続する場合と、プロバイダーがブラウザーまたはシリアル接続経由で提供するコンソールを使用する場合の 2 つです。VPS ではレスキューコンソールがこれに該当します。実際には、最も試行錯誤を避ける必要がある場面です。

localectl status
localectl list-keymaps | grep -i dvorak

localectl status は 2 つの設定を表示します。VC Keymap はテキストコンソール用、X11 Layout はグラフィカルセッション用です。list-keymaps は、システムに実際にインストールされているコンソールキーマップの名前を表示します。存在しない名前を設定するのを防ぐため、必ず確認してください。グラフィカルセッションで利用できる場合でも、Colemak がコンソールキーマップとして常に用意されているとは限りません。そのため、存在すると決めつける前に、自分のレイアウトを対象にその grep を実行してください。

デスクトップ側では、setxkbmap -layout us -variant colemak が実行中の X セッションのレイアウトを変更し、localectl set-x11-keymap us pc105 colemak がその設定を再起動後も維持します。Wayland ではコンポジターがキーマップを管理するため、setxkbmap は適切なツールではありません。デスクトップの入力設定または localectl で変更してください。Caps Lock の扱いを含む手順全体については、Linux で Colemak を設定する手順を参照してください。

キーボードファームウェアで問題全体を回避する

多数のマシンにログインする場合は、レイアウトをオペレーティングシステムではなくキーボード側に設定します。プログラマブルキーボードは独自のマッピングを保存し、入力したい文字のコードを送信します。そのため、すべてのホストでは通常のキーボードから通常の文字が入力されたように認識されます。各ホストで設定する必要はなく、再構築時に設定を忘れることもありません。これは、設定を一切変更できないマシンにも対応します。たとえば、同僚のノート PC、UEFI 設定画面、レスキューイメージ、システム設定を変更する権限がないホストなどです。多数の Linux サーバーを整然と管理する必要がある場合、これは 1 回の購入で済むか、すべてのマシンに設定項目を追加するかの違いになります。

一般的な方法は、QMK、またはそのワイヤレス版である ZMK を実行するキーボードを使うことです。どちらも自分で書き込むオープンなファームウェアです。VIA と Vial は、再ビルドせずに変更を書き込めるグラフィカルエディターです。多くの一般的なキーボードには、キーボード内にリマップ設定を保存できるベンダー製ソフトウェアも付属しています。制限も明確です。通常、ノート PC の内蔵キーボードではこの方式を使えません。そのため、外付けキーボードを接続しているときは独自のレイアウトを使えますが、接続していないときは QWERTY になります。これも別の種類の干渉です。

救出コンソールは実運用上のリスクです

障害は次のように発生します。サーバーが再起動から復帰せず、プロバイダーの Web コンソールを開きます。そして、root パスワードと、普段は入力しなくなったファイルシステム用コマンドをいくつか入力する必要があります。2 つの問題が同時に起きる可能性があります。手が覚えているのは新しいレイアウトですが、コンソールはそのレイアウトに対応していない場合があります。

ブラウザーコンソールが送信する内容は製品によって異なります。ローカルシステムが生成した文字をそのまま転送するものでは、クライアント側の remap が反映されます。一方、キーの位置を転送し、接続先では US QWERTY 配列を想定するものでは、Colemak キーボードで入力した文字がコンソール上では QWERTY の文字になります。コントロールパネルを見ただけでは、どちらの方式か判断できません。マシンが正常なときにテストしてください。コンソールを開いてログインし、文章を入力して、表示される内容を確認します。障害発生中ではなく、今実施してください。

次に、自分で取り除ける要因を減らします。通常のアクセスでパスワード入力を求められないよう、鍵でログインできるようにします。また、サーバー間の鍵管理を単なる利便性ではなく、復旧計画の一部として扱ってください。救出用パスワードは、貼り付けられる場所に保管します。ほとんどのブラウザーコンソールには、テキスト送信または貼り付け機能があるためです。また、キーボードを見て QWERTY の文字を探せる程度の対応力も残してください。午前 2 時にスマートフォンで配列表を確認する作業は時間がかかります。

暗号化ディスクでは、さらに注意が必要です。起動時のパスフレーズ入力画面は、通常の keymap が読み込まれる前に initial ram disk から起動します。そのため、そのイメージに組み込まれた配列が使用されます。Debian と Ubuntu では、デフォルトで組み込みの US QWERTY 配列が使用されます。設定は KEYMAP=/etc/initramfs-tools/initramfs.conf にあり、n として提供されています。これを y に設定し、sudo update-initramfs -u を実行してから再起動します。信頼して運用する前に、パスフレーズ入力画面で設定した配列が使えることを確認してください。ロックを解除できないマシンは、再構築が必要になります。

Colemak-DH とその他の配列

選択肢は 3 つだけではありません。Colemak-DH は Mod-DH とも呼ばれ、Colemak を改良した配列として最も広く使われています。標準の Colemak では、D と H がホーム列の中央の列に配置されています。人差し指を内側に曲げるのではなく、横に伸ばして入力する位置です。Mod-DH では、この 2 文字を人差し指の下にある最下段へ移動します。これにより、ホーム列は左側が A R S T G、右側が M N E I O になります。通常の段差があるキーボード向けと、直交配列および列段差のあるキーボード向けの 2 種類があります。使用するハードウェアに合うものを選んでください。

そのほかにも、Workman、Norman、Canary、Graphite など、レイアウト最適化ツールによって作られた多くの配列があります。Programmer Dvorak は、文章よりも句読点を多く入力する人向けに、数字列と記号の配置を変更します。ほかの言語にも独自の配列があり、フランス語向けの bépo やドイツ語向けの Neo などがあります。実用上の判断基準は、利用できるかどうかです。Dvorak は、スマートフォンのキーボードやコンソールの keymap を含め、ほぼすべての環境に搭載されています。Colemak は、すべての Linux デスクトップが読み込む X keyboard configuration data に含まれています。Colemak-DH がそのデータに追加されたのは比較的新しいため、古い distribution では、プロジェクトから layout files をインストールする必要がある場合があります。Community layout は、すべてのマシンに持ち込む必要があるファイルです。使用するキーボードの firmware に組み込む方法もあります。

では、どれを選ぶべきでしょうか。

問題がないなら、QWERTY を使い続けてください。切り替えには数週間かかります。速度が向上するという根拠も弱いため、現在の配列に多少不満があるだけでは、切り替える十分な理由になりません。

最小限のコストでキー配列を変更したいなら、Colemak を選んでください。13 個のキーは元の位置に残り、編集用ショートカットも変わりません。Linux デスクトップでは 1 行の変更で設定できます。

どのマシンでも、どの operating system でも、すでに用意されているメニューから配列を設定できることを重視し、ショートカットキーの再習得を受け入れられるなら、Dvorak を選んでください。

すでに programmable keyboard を購入するなら、Colemak-DH を選んでください。firmware によって利用できない環境の問題がなくなるため、改良された配列を選ぶとよいでしょう。

どれを選ぶ場合でも、開始前にマッピングをどこに保存するか決めてください。常時使うターミナル作業環境で長時間作業し、多数のマシンにログインするなら、keyboard に設定するのが適しています。1 台の laptop で作業するなら、operating system に設定すれば十分です。そのうえで復旧手順を計画し、必要になる前にテストしてください。

FAQ

Colemak または Dvorak は、実際に QWERTY より速く入力できますか?

どちらの配列でも入力速度が上がることを示す確かな証拠はありません。測定できるのは、英語の文章では QWERTY よりホーム段で打つキーが多く、指の移動距離が短くなるという計算上の差です。しかし、これによって 1 分あたりの入力語数が増えることを、大規模で適切に管理された試験で示した例はありません。Dvorak について最もよく引用される Navy の研究は Dvorak 自身が監督したものであり、General Services Administration 向けに Earle Strong が 1956 年に実施した研究では、QWERTY の入力者に同じ追加練習を与えると優位性は認められませんでした。QWERTY で 1 分あたり 150 語を大きく超えて入力する人もいるため、入力速度が 70 語であれば、配列が限界の原因ではありません。

新しいキーボード配列を覚えるには、どれくらいかかりますか?

最初の数日は 1 分あたり 15 語前後で入力し、配列に意識を集中させなくても済むまで 2 ~ 4 週間、以前の速度に戻るまで 1 ~ 3 か月を見込んでください。これらは報告されている範囲であり、研究結果ではありません。より大きな問題は干渉です。1 日の中で 2 つの配列を切り替えると、どちらも上達しにくくなります。そのため、一度だけ切り替えて速度が落ちる 1 週間を受け入れるか、1 台の物理キーボードでは常に 1 つの配列だけを使うなど、明確に分けてください。途中でやめる人の多くは、仕事などで忙しくなったその遅い期間にやめます。静かな時期に始めてください。

キーボード配列は SSH 接続先にも反映されますか?

はい。ただし、サーバー側で決められるものではありません。配列は、キーボードを接続しているマシンで適用されます。ローカルシステムがキー入力を文字に変換し、SSH はその文字をバイトとして送信するため、リモートホストが認識するのはキーの位置ではありません。サーバーで keymap を設定しても、SSH ユーザーには何も影響しません。サーバー自身の keymap が適用されるのは、直接接続したキーボード、またはプロバイダーがブラウザーやシリアル接続経由で提供するコンソールだけです。

Ctrl+C と vim の h j k l キーはどうなりますか?

Colemak では Z、X、C、V が QWERTY と同じ位置に残るため、標準の編集ショートカットは移動しません。Dvorak では 4 つすべてが移動します。C は QWERTY の I キーの位置、V は QWERTY のピリオドの位置、X は QWERTY の B の下、Z は QWERTY のスラッシュの位置になります。Ctrl+D は QWERTY の H キーの位置に移動するため、シェルでは注意が必要です。カーソル移動は両方の配列で使いにくくなります。Colemak のユーザーは通常、物理的な QWERTY の h、j、k、l キーに印字された文字である h、n、e、i に移動操作を割り当て直します。Dvorak のユーザーは同じ理由で d、h、t、n を使います。

配列を切り替えた後も、レスキューコンソールを使える状態にするにはどうすればよいですか?

サーバーが正常な今、テストしてください。プロバイダーのコンソールを開いてログインし、文章を入力します。コンソールによって、クライアントが生成した文字を転送する場合と、キーの位置を転送して接続先では US QWERTY を前提にする場合があるためです。通常のアクセスでパスワードを入力せずに済むよう、SSH keys でログインしてください。また、多くのブラウザーコンソールには貼り付けまたはテキスト送信機能があるため、レスキューパスワードは貼り付けられる場所に保管してください。ディスクを暗号化している場合、ブート時のパスフレーズ入力には initial ram disk に組み込まれた keymap が使われます。Debian と Ubuntu では、/etc/initramfs-tools/initramfs.confKEYMAP=y を設定し、sudo update-initramfs -u を実行してから再起動し、入力プロンプトがその配列を受け付けることを確認します。

#colemak#dvorak#keyboard-layout#ergonomics#linux