記号の配置を考えろ

久しぶりに戯言です。

現行の記号配列は、はっきり言って使い辛いです!まず不等号と"="が遠いのがダメダメです!私はShift+Spaceに"="を割り当ててます!それ以外にも言いたいことは山ほどあります!でも、文字配列は盛んに議論されても記号にスポットが当たることは少ないです!ですので妄想してやります!

妄想ですので、実測をもとにするのではなくて、まずはロジックで考えます。

数字の位置

上下左右のどこかに固めるのが普通でしょう。片手打ちも考えるとばらすのは全く得策ではありません。

  • 上……今まで通り。
  • 下……文字キー全体を一段上に押しやるほど数字が重要とは思えない。ボツ。
  • 左……右手にマウスを考えるとこれもあり。
  • 右……テンキーいらなくなるよ!

左案。
想像しづらい場合は、ホームから二列ほど右側に指を置いてみてください。

7 8 9 ! @ # $ %
4 5 6 ' . , P Y
1 2 3 A O E U I
0 - - ; Q J K X

(--は左シフト、文字領域は暫定でピリオドカンマの近くなるDovorakで埋めてみましたが勿論全部未定)

うーん、捨て難いものはありますが、右手で数字を打てないのはマイナスかも。これで右にもテンキー付けたら馬鹿らしすぎますし。

右案。

^ & ( ) 7 8 9
Y U I O P 4 5 6
H J K L ; 1 2 3
N M , . / - - 0

(--は右シフト、文字領域は暫定でピリオドカンマの近くなるQWERTYでry)

何気に"1,"という頻出ストロークが打ちやすそうなのもいいですね。
最大の問題はenter。どこにやるのよ?親指派の人もいるでしょうけど、親指キーなんてキーボードによって全然違う安定しない部分ですし、誤爆も多いですし(私だけ?)、そんなとこにenterは無いです。enter親指派とは並び立たないシフトキー親指派もいるわけですしね。

あ、でも、「上のスペースバー」みたいな感じで今の4567あたりのところに、でーんとenter、というのは有りかもしれません。

まあどっちも0が遠くなりそうですし、0を近くにしたら右シフトが遠くになりそうですし(ここでシフトキー親指派ry)、そもそも物理キーボードのレイアウトからして現在のものを無視していますので左右は無いかな……。

というわけで数字は無難に上。
そもそも文字キー領域の横幅が狙ったように10(人間の指の数由来ですのである意味……親指と人差し指を伸ばして打つキーの違いはありますが……一致して当たり前)ですので、ここに数字を当てはめないのはどうかしてます。

0 1 2 3 4 5 6 7 8 9
Q W E R T Y U I O P
A S D F G H J K L ;
Z X C V B N M , . /

もちろん0と1を離すなんて馬鹿な事はしませんよね!
"10"のストロークと"90"のストロークのどっちが多いかなんてry、というわけでファンクションキーもF0から始めていただきましょう。

ただ、これについては有力な対立候補があります。

9 8 7 6 5 4 3 2 1 0
Q W E R T Y U I O P
A S D F G H J K L ;
Z X C V B N M , . /

一応理屈としては現"12"の位置よりも現"90"の位置のほうが真ん中寄りで打ちやすい……万人が"012..."を推すと無根拠に信じたいです。
飛鳥みたいに純粋に頻度重視でバラけさせるのは、もっとあり得ない……と思います。

文字キー領域の中の記号の位置

数字の次はこれ。

有力なのは、次の5箇所でしょうか。

  • QWERTYの右下
  • Dovorakの左上
  • 数字や右手外の記号領域に近くなる右上
  • 残る左下
  • 人差し指を伸ばす領域(TGBYHN)のどこか

まず左下は無いでしょう。数字からも遠いのはもちろん、ショートカットとして使いやすいZXCVを潰すのはあり得ません。

真ん中もちょっと辛いです。
ピリオドとセミコロンの次に来るキーの最有力はenterでしょう。enterが今の位置にあるとして、真ん中に記号を固めるとしたらピリオドとセミコロンは必然的に左手側になります。右手ですと、左に振ってから右に振るという忙しい動作になりますから。
そうして記号を左右に二個ずつに分けますと、ピリオドとカンマが泣き別れになります。文字配列は当然ピリオドとカンマへの繋がりを計算に入れて配列されるでしょうから、これが左右にバラけてしまうと「文末に来やすい文字」を固められなくなって文字配列設計に悪影響を及ぼします。

かといって、左手人差し指に記号を3個、右手人差し指に記号を1個というのはアンバランスですし、左手人差し指に記号を4個ってのは勿体無いと思います。"FRT"あたりは確実に文字を配置したい押しやすいキーですから。

……アンバランスの何が悪いんだ?悪くない。左"GVB"と右"Y"に記号を置いてみます。

0 1 2 3 4 5 6 7 8 9
Q W E R T / U I O P
A S D F . H J K L Y
Z X C ; , N M G V B

む、そもそも"/"というのが間違いですね。当然"-"でしょう。そして"-"であれば、もっと打ちやすいところに置いても文句は出ないと思われます。マイナス記号を兼ねているため数字に近い位置のほうがいいので上段は上段として。

0 1 2 3 4 5 6 7 8 9
Q W E R T Y U I O -
A S D F . H J K L P
Z X C ; , N M G V B

んー、こうしてみるとピリオドカンマも上段に持ってきたい。数字と一緒に使われますからね。Dovorak風の方が良さそうですね……。

0 1 2 3 4 5 6 7 8 9
- , . P Y F G C R L
A O E U I D H T N S
; Q J K X B M W V Z

本来Dovorakであればアポストロフィ(シングルクォート)が文字領域に入ってるんですよね。
ALGOL系プログラミング言語を優先してセミコロンを入れるか、英語を優先してアポストロフィを入れるかは一考の余地あり。

ただ、ここでセミコロンを入れないと、あぶれたセミコロンは右手外側になってしまいますので、セミコロン→enterが右手小指二連続になってしまいます。今のQWERTYがそうなっていますが、良い配列とは全く思っていませんので(そもそもセミコロンってギリシャ語の文末記号……ですよね……?)それを避けるためにセミコロンを左手側に入れたいと思います。

次は、そのセミコロンの位置ですね。上でも触れましたがZ位置は流石に無いです。別に数式で使われるような記号でも無いことですし、ここはやっぱり左手側では一番悪い位置のB位置で。

0 1 2 3 4 5 6 7 8 9
- , . P Y F G C R L
A O E U I D H T N S
B Q J K X ; M W V Z

うん、良さそうです。
他のパターンを考えるとするなら、セミコロンQでハイフンを右でしょうか。ハイフンは上段必須ですのでYかP。

Y。

0 1 2 3 4 5 6 7 8 9
; , . P Y - G C R L
A O E U I D H T N S
F Q J K X B M W V Z

P。

0 1 2 3 4 5 6 7 8 9
; , . P Y F G C R -
A O E U I D H T N S
L Q J K X B M W V Z

この最後のパターンが、上段の左右から記号が侵食してて見た目綺麗っぽい。

残りの記号

当然のようにASCIIコードを無視して関連する記号を固めたいと思います。
まずハイフンの裏はアンダースコア確定(英語キーボードに触れて一番に感動した部分ですので……)としまして。

ここで考慮したいのは、"<=>"です。はっきり言うと、頻出の"<="や">="や"=>"を打ちやすくしたい。つまり"<=>"は同じ手側の同じ段の別の指に振るのが一番です。ハイフンの裏がアンダースコア確定である以上はそこに"="は置けないので、ピリオドカンマの裏に不等号も置けません。要は全部数字の裏ってことです。
そして数字の裏が打ちやすいのは圧倒的に右手側ですので、右手の数字の裏、現在"()"があるあたりに"<=>"を置きたいなあと。

括弧はどうするかといいますと、右手外側の表でいいでしょう。"[ ]"なんか追いだして。ASCIIコード由来とはいえ"[ ]"が"()"より優先されてるとかどうかしてますって。"[ ]"はもっと辺鄙な位置でいいです。それに括弧は間に何かが入るものですので、両方小指でも問題ないですしね、本来は。空の括弧を書かせるような言語なんか知りませんとも、ええ。

空いた",."の裏ですが、やっぱり文末に来る記号を置いたほうがストロークが自然になると思います。というわけで"!?"確定。っていうか現行配列での"!"の冷遇っぷりは異常。

とりあえずここまでで一旦配置してみます。

` 0 1 2 3 4 5 6 7 8 9 /
; , . P Y F G C R - ( ) \
A O E U I D H T N S '
L Q J K X B M W V Z
~ + @ # $ % ^ & > = { }
: ! ? P Y F G C R _ ( )
A O E U I D H T N S '
L Q J K X B M W V Z

のこりの記号が気になりますね。こんなのどこでもいいと言えばそうなんですけど、バックスラッシュは大活躍なのでもうちょっと優遇してもいいですよねー。なんとかスラッシュの裏にバックスラッシュみたいにできないでしょうか?
スラッシュ自体を辺鄙な位置にするのはだめです。文字キーの範囲からは出したとはいえ、パス区切り記号ですから、打つときは打つ文字です。現"-"位置なら文字キーに続けて打つキーとしてはまあまあ、っていうか他に場所も無いですしね。
とするともうここの裏にバックスラッシュしかありませんので、玉突きです。

` 0 1 2 3 4 5 6 7 8 9 /
; , . P Y F G C R - ( ) &
A O E U I D H T N S '
L Q J K X B M W V Z
~ + @ # $ % { } > = \
: ! ? P Y F G C R _ [ ] ^
A O E U I D H T N S '
L Q J K X B M W V Z

"&"は使うでしょう。(以下文字領域は省略します)

~ + & # $ % { } > = \ ^
` 0 1 2 3 4 5 6 7 8 9 / @

"^"は階乗演算子のときもあるので"*"の裏が妥当。

~ + & # $ % { } > = \ ^
` 0 1 2 3 4 5 6 7 8 9 / @

それから、ええと……。

  • # …… コメント
  • $ …… 変数
  • ` …… ある種の文字列
  • ~ …… 波ダッシュまたは+や&と同種の結合演算子
  • @ …… メールアドレス
  • | …… パイプ演算子

やっぱり"~"は"&"の近くが妥当な気がします。しかしいい位置に振る程の記号ではない。
それに、なんとなく置いてましたが"+"はもっと優遇してしかるべき、あと"+-"を続けて打つこともあるでしょうから"+-"は同手のほうがシフトキーを押す上でベター、ということで。

{ ~ & # $ % + > = \ ^ }
` 0 1 2 3 4 5 6 7 8 9 / @

波括弧があぶれてしまいましたね……いくら私が嫌いな記号とはいえ流石にこれは酷すぎます。どうしましょう。
うーん、あれ?":="が泣き分かれてる……しまった……。
というわけでコロンが左である以上"=<>"は左!これなら波括弧も収まります。副作用で"->"が押し辛くなるのは仕方ないかな……それでもQWERTYの数字段から下段へよりはマシと思いたい。

大幅に再配置しないといけませんが、右手に"+&~"組を持ってくるのがいいでしょう。これらは結合演算子として使われるグループであり、なおかつ"+"と"~"は"-"の近くだと嬉しい記号です。あと"`"も用途としては"'"の近くがいいはずです。

$ > = % # & + { } \ ^ ~
@ 0 1 2 3 4 5 6 7 8 9 / `

残るは玉突きで左手裏に来た記号群です。

裏に置くということは右手小指を結局シフトに拘束してenterとの連打になってしまいますので、postfixとしての頻度が高いものを表(外れ位置ですが)に出すのがいいでしょう。
"@"は常にprefixなので裏でOK、"#$%"ですと……どう考えても"%"の勝ち。
残りは……頻度は"#"が一番高そうな気がしますのでいい位置に置いて、"@"が使わなそうな気がしますので悪い位置に置いて、"$"と"|"は……甲乙付けがたい気がします。実際には続けて打つことは無さそうですが、"|&"で並んでいたほうが気分がよい気がするのでそうしましょう。

最後に、括弧の中に何も入れないような言語なんか知らないとは書きましたが、一応"{}"よりは"[ ]"の並びのほうがまだ見るような気がしますので"[ ]"の並びを優先して"{}"は元の位置に戻しておきます。……結局元の位置か。

完成?

% 0 1 2 3 4 5 6 7 8 9 /
; , . P Y F G C R - ( ) `
A O E U I D H T N S '
L Q J K X B M W V Z
@ $ > = # & + [ ] \ ^
: ! ? P Y F G C R _ { } ~
A O E U I D H T N S '
L Q J K X B M W V Z

……だいぶ恣意的ですが、とりあえず現行のそれよりはマシに思える記号の配置ができあがりました。

文字配列も、Dovorak(の変形)よりももっと適した配列があるはずです。ていうか母音片手集中はあまり好きではないので記号位置だけDovorakの母音を分散させた配列をどなたか作ってくださいお願いします。

そのままQWERTYに乗っけてみる

% 0 1 2 3 4 5 6 7 8 9 /
; W E R T Y U I O - ( ) `
A S D F G H J K L P '
Z X C V B N M . , Q
@ $ > = # & + [ ] \ ^
: W E R T Y U I O _ { } ~
A S D F G H J K L P "
Z X C V B N M ? ! Q

……悪くはなさそう?
(Qを動かすのでQWERTYでは無くなってしまいますけれども、なんならセミコロンはBでもいいですしね!)

なお、これらの記号配列の使用経験はありません。キッパリと妄想です!