概要
「オリジナルキーボードレイアウト(FMIX)の検討」のに関して、考えを整理するための検討中のメモを公開することにした。人に勧められるまで内容が成熟しておらず、内容は随時変わる予定。FMIXの検討結果やその過程は「オリジナルキーボードレイアウト(FMIX)の検討」のリンクから辿れるので、確認してほしい。
この記事を書こうとしていて次の記事を見つけた。http://oookaworks.seesaa.net/article/518120026.html
キーボードレイアウトに関するテクニック集のようなもの。網羅的なので文量が多くなっているが、非常に興味深い。
レイアウト
- 記号レイアウトはオプションで、記号レイアウトなしは名称の+が削除される
- 記号レイアウトのありなしに関わらず、ベースのアルファベットの配置は同じ
- 下記の図に記された記号レイアウトはスコア計測用の仮レイアウト、筆者利用のレイアウトは後述
- まとめると、以下で*以外を固定したレイアウトがキー入れ替え12から14の基本のFMIXレイアウトになる
qw***y*up;
as*tghneio
zxcvbjm,./
FMIX14+(英字入力用)
qwldkyfup;
asrtghneio
zxcvbjm,./
FMIX13+(英字入力用)
qwrlkyfup;
asdtghneio
zxcvbjm,./
lsコマンドが左手だけで打てる。
FMIX12f+(英字入力用)
qwfrkylup;
asdtghneio
zxcvbjm,./
FMIX12+(英字入力用)
qwlrkyfup;
asdtghneio
zxcvbjm,./
FMIX14R+(ローマ字入力用)
qwrdlyfup;
asktghneio
zxcvbjm,.
FMIX13fR+[FMIX13lupR+](ローマ字入力用)
qwdrfylup;
asktghneio
zxcvbjm,./
- FMIX13lupR+はFMIX13fR+の別名
FMIX13lepR+(ローマ字入力用)
qwdrfylep;
asktghnuio
zxcvbjm,./
運指は異なるがuioと並ぶのはqwertyに類似
レイヤーと機能キー(カーソルキーやBSなど)
筆者はAutohotkeyを利用しているのでカーソル操作やBSを主要キーで打てるレイヤーを作っている。あえて単打で打てるキーを別レイヤーに追いやってまで、基本のレイヤーの主要位置にBSを配置していない(スコア計測用のレイアウトは例外)。筆者は以下のレイヤーを準備したがFMIXレイアウトに依存せず利用可能。
以下、筆者の使っているレイヤーを掲載。
スペースとの同時押し(長押し)

個人的にはノートパソコンのキーボードだとカーソル操作がしにくい感じるので、CapsLockでも操作できるようにしている
qwertyのikjlがカーソルの上下左右に対応。
vimの上下左右とは異なるが、あくまで自分の設定を公開しているだけなので、このあたりはユーザの好みで設定することになる。
CapsLockとの同時押し
変換との同時押し(長押し)
「:」と同時押し(長押し)
qwertyとの類似性
FMIXはqwertyとキー配置の類似性が比較的高い。メリットは3つ。
1つ目は、レイアウトを記憶しやすい。
2つ目は、qwertyで指が覚えた(正確には小脳らしい)運指に僅かな修正で単語が打てる。後者は、とくにITとエンジニアがコマンドラインでコマンドを打つときに有効と感じる。
例)cd mkdir pwd show
英文入力に対し、英字でコマンドを打つことはより直感的に行いたい入力で、運指で思考を妨げたくない。筆者の場合、運指がqwertyに似ていて単語の中の文字の違いが2個以内だと、頭の中で運指をスケジューリングして一気に打てる。そういった意味では、筆者がFMIX14+に慣れたにも関わらず、コマンドに関しては、FMIX14+よりもFMIX12f+やFMIX13+のほうが打ちやすいと感じる。また、コマンドの場合、母音を省略することが多く一般的な運指とは異なる。ただ、何文字か打てば補完でき、よく使う文字が中段にあればそこそこ効率化できたことになると考える。
ちなみに、qwerty、FMIX12f+、FMIX13+ではcdの打鍵は、同指打鍵だが、指を伸ばす方向の連続打鍵は、dcのように指を縮める連続に比べて楽に感じ、そこまで不快ではない。
3つ目は、新レイアウトを覚えたとあと、qwertyを使わざる負えないとき、キーレイアウトが似ているので、qwertyでも打ちやすい。筆者がqwertyに戻って打つ場合、始めはキーの印字を目視確認しないと打てない事があった。入れ替えがないキーは目視確認が不要で迷わず打てる。まあ、3つ目に関しては、類似性が低いレイアウトでも、慣れれば併用できるという意見もありそれは正しいと思う。併用にはそれなりに修練が必要だが。
ローマ字テーブル最適化
概要
- ローマ字テーブル拡張とも呼ばれる
- Google日本語入力のローマ字テーブル書き換え機能を使った
- 一時的にqwertyに戻して打鍵する場合でも、問題が出にくいように、可能な限り互換性を確保した
- 拡張した部分の利用を必須とせず、漸次的に覚えて使えばよいようにした
設計方針
- qwertyとの併用を考え、ローマ字テーブルも互換性を確保する(Autohotkeyなら切り替えは自由)
- や行はyの代わりに、xでも打てる
- か行はkの代わりに、cでも打てる(IME連動なしの場合に効果がある)
- 拗音にyを使わない手法も組み込む
- M式やAZIKにあるように、二重母音を1つのキーで打つ
- 撥音、促音も1キーで打てるようにする
- m,xは任意の組み合わせを定義
- 長音は記号を入力するレイヤーがあるので、そこで入力する
JISキーボードなら@に長音割り当ててもよいかもしれない。qwertyでも使えるし、-を打つよりは楽かもしれない
暫定配置案
以下は、子音を打った後に打つキーを示している。yは拗音入力を示し、さらに母音や二重母音を打つことになる。()は、1タイプで入力可能。
配置は暫定的なもので変わるかもしれない。。
x,mは、任意の文字を割り当てた。主に3連打変換になるものの代わりに割り当てる。
二重母音とn
s,k,tにそれぞれ、ai,ou,eiを割り当て。
筆者はn+子音の場合は、nnと打たずに単打で打っている。この仕様を変更したくないので
ない←ns
のう←nk
ねい←nt
などは例外として打てないようにしようと考えている。
一方、例外はできるだけ設けたくない。
結局、二重母音対応をやめてしまうか、nの単打で撥音(ん)入力を諦めるか、最終判断ができていない
拗音
拗音は訓読みが多い。訓読みの多い論文調の文書を書くことが多いので、拗音の効率化は重要。拗音の打ち方は検討中で、4種類の方法が試している。キーレイアウトによっても最適な手法がかわる。
yを使う
例)kyo きょ
従来との互換性のために残しているので常用はしない
hを使う
例)sho しょ kho きょ
qwertyでも利用可能
hhは促音に割り当てているので、は行の拗音は打てない
gを使う
例)sgo しょ kgo きょ
qwertyでも利用可能
ggは促音に割り当てているので、が行の拗音は打てない
キーにya,yu,yoを割り当てる
例) sp しょ
FMIXレイアウト専用→◯you、◯yuuでアルペジオになる、打鍵数も減るので効率がいい
促音(っ)
同一キーの連打、または、qで打鍵
促音のあとは、基本、カ行(k)、サ行(s)、タ行(t)、ハ行(h)、パ行(p)の無声子音が続く。ただ、外来語の場合、例外がある。
例)バッグ、アッラー、キッド、
拗音+促音で、”っぴょ”は、3連打変換でもpの連打でも入力できないので、統一感がない。本当は、同一キー2連打による促音入力をやめれば、もっとすっきりわかりやすくなるのだが、従来のローマ字入力互換性を重要視しており、二連打にも嫌悪感はないのでそれはやらない予定。
撥音(ん)
子音、母音、撥音は2キーで打てるようにしている。2連打は促音と被るが、促音と被らないキーに割り当てでいる。
例)sn → さん
特殊な文字
シェ←she
チェ←the
ティ←thi
ディ←dhi
入力例(FMIX14R+)
大文字∶左手入力
小文字∶右手入力
赤:アルペジオ
緑:アルペジオ(1キー飛ばし)
さいきょう←SAiKyou
さいきょう←SSSKpu
さいきょう←SmKpu
さいきょう←SmKhK
さいきょう←SmKGK
はっぴょうかい←hAppyouKAi
はっぴょうかい←hAQppuKS
はっぴょうかい←hApphKKS
はっぴょうかい←hAppGKKS
あった←AQTA
あった←ATTA
がっこう←GAKKou
がっこう←GAKKm
がっこう←GAQKm
さんこう←SAnnKou
さんこう←SAnKou
さんこう←SnKm
かいけい←KAiKei
かいけい←KSKei
かいけい←KSKT
しょうたい←SyouTAI
しょうたい←SpuTS
しょうたい←ShKTS
みょうじ←myouji
みょうじ←mpuji
みょうじ←mhKji
みょうじ←mGKji
きゅうきゅうしゃ←KyuuKyuuSya
きゅうきゅうしゃ←KfuKfuSj
きゅうきゅうしゃ←KhCKhCSj
きゅうきゅうしゃ←KGCKGCSj
せんせい←SenSei
せんせい←SdST
どうそうかい←DouSouKAi
どうそうかい←DKSKKS
あんぱん←AnnpAn
✕あんぱん←AnpAn 拗音優先なので「あにょあん」になる
あんぱん←AnnPn
あんぱん←An;pn
指がつりそうになりながらも左手だけで打ててしまう単語もあるが、適度に右も使えばよい
同一キーの二連打
同一キーの二連打で促音(っ)を嫌う人もいれば、抵抗のない人もいる。速度重視なら同じキーの二連打は遅い。Key1-Down Key1-Up Key2-Down Key2-Upとなるから。これが、異なるキーであれば、Key1-Down Key2-Down Key1-Up Key2-Upのような打鍵が可能で、Key1-Down Key2-Downの間隔を限りなる短くでき、打鍵が早い。一方で、同一キーの二連打は指を動かさないので疲労が少ない。個人的には後者にメリットを感じる。
uとeの位置
ローマ字の場合、uとeでは、uのほうが高頻度に出現する。そのため、入れ替えてFMIX13lepR+のようにuを中段に配置すると指の動きが減り、スコアも良くなる。ただ、FMIX13lupR+に代表されるように、fup,lepとキー並ぶレイアウトは、「kpu→きょう」のように、隣あうキーの連打(アルペジオ)で拗音を入力するようにローマ字テーブルを最適化できる。FMIX13lepR+は、それができないので、現在の計測法におけるスコアが高いからといって、単純に採用できないのが難しいところ。
| Layout | ローマ字 | ローマ字 (拗音をh、や行をxで入力) |
|---|---|---|
| FMIX14R+ | 73.54 | 74.19 |
| FMIX13R+ | 73.66 | 74.31 |
| FMIX13fR+ (FMIX13lupR+) |
73.67 | 74.33 |
| FMIX13lepR+ | 74.52 | 75.17 |
| 大西配列 | 74.62 | - |
- 算出方法、データ
オリジナルキーボードレイアウト(FMIX)の検討2 - スコア算出方法およびオリジナルキーボードレイアウト(FMIX)の検討6 - 英文技術文書の入力と記号数字配置最適化を参照。スコアが高いほど高効率。
pとjの位置
英字の場合、入れ替えても、スコアはそれほど変わらない。ただ、pを横にずらすだけのほうがqwertyに対する類似感が強い。一方、ローマ字テーブルを最適化するなら、qwertyのoの位置に、jを配置したほうがいいのかもしれない。jで拗音のょを打てると発表がhappjoで打てる。一方、ローマ字スコアが若干低下するようである。
mとhの位置
入れ替えるとスコアが若干改善するが、劇的ではないので、未採用だった。入れ替えることで、英字では比較的頻出するheのアルペジオ打鍵ができる。これは14キーの制約を外し、より英字特化の配列を作るという話なので、それならArensitoあたりを採用すればよいかと思う。
qwertyのr位置のキー
個人的には打ちにくい。そこその頻度のキーを割り当てるにあたって、同じ左人指で打つなら、vの位置に割り当てたいところ。ただ、最初に課しているFMIXの定義からこれを対象外にしている。
yの位置
変更しない
メリット∶
キー入れ替え数を抑制可
デメリット∶
ローマ字でyを使った拗音が打ちにくい
変更する(qwertのo位置)
メリット∶
英字スコアが若干上昇
デメリット∶
FMIXではuの隣に配置されるので、アルペジオを前提とした拗音のローマ字テーブル最適化手法がつかえない
小指の打鍵(FMIXのaとoの位置)
小指の打鍵を嫌う人がいる。筆者個人としては中段ホームポジションの小指打鍵自体は抵抗がなく、むしろ上下移動に違和感を感じる。どちらかというとqwertyのaと;の位置の小指を固定して各キーに指を伸ばしながら打ちたい。また、レイヤー切り替えのために、小指を横にずらしてCapsLockや∶をホールドしたい。このあたりの運指の嗜好は人によって大きく分かれるところかもしれない。FMIXでは、中段小指に使用頻度の高いキーaとoを、その上下は使用頻度の低いキーを割り当てることで好みを反映している。
しいていえばxa,waが多少打ちずらいか?例えば小指→薬指aのほうが打ちやすいので、ローマ字入力を考えるとaの位置に子音を割り当てたほうがよさそうだが、一方、個人的な感覚では、qazの位置をqwertyと変えてしまうと難しさや違和感のようなもの感じてしまう。とくに初見では。もちろん、慣れればよいだけなのだが、キーレイアウト乗り換えの心理的な障壁は最小化したい。
そもそもqwertyに類似させたい意図もあり、総合的に考えてaの位置は変えていない。
shiftの位置
RShiftを/に位置に配置しているが、本来のShift位置に戻すと0.7ポイント程度スコアが低下する。ただ、筆者は変換キーにRShiftを割り当てている。
左右交互打鍵とアルペジオ
効率のよいキーボードレイアウトには、左右交互打鍵やアルペジオを考慮すべきという考え方がある。アルペジオは高速に打鍵できる。ただ、指の移動量を最小限にしつつアルペジオを作り込むのは難しい。また、日英両立を図るなら言語に依存するアルペジオを作りこむことも難しい。同じ言語でも、特定のアルペジオ打鍵に配慮したとしても全体の頻度としては微々たるものだっだり、文章によって使われる単語の頻度も異なるので、どこまでこだわるべきかはラインもひきにくい(こだわっていけないといっているわけでない)。むしろ、運指に難のある連続打鍵をさけてレイアウトを設計すれば、残りが左右交互打鍵かアルペジオになりやすいのでないか。
同じ指による連続打鍵をさけるのは当然として、qwertyのキーで説明すると(R,Lは、右手、または、左手で打つ任意のキーとする)、
wa, wv, wz, xa, o;, .;, tL, zL, yR, ex, wc, ag, qL, ...
などを順、あるいは、逆順に打つ打鍵は、指の動きが窮屈だったり遠くへの移動が必要だったりするのでこうした運指を避けるべきと考える。時間があれば、この窮屈な運指や移動量の少なさをスコア化して、スコアリングツールも作りたい。スコアを算出できれば、特定の運指に過剰に最適化されていなずバランスのとれたレイアウトが設計・評価できる。ただ、中段のキー、および、qwertyのe,iの位置に、出現頻度の高いキーを配置しておけば、出現頻度の低いキーの影響は低いので、スコアにそれほど差がつかないかもしれない。
FMIXでは、少なくともローマ字では頻出の二重母音、ou、ei、aiの打ちやすさを考慮した。まあ、ローマ字テーブルの最適化で二重母音を単一キーでも打てるようにしてしまっているので、使い始めるとそちらを使いがちになる。このとき二重母音がアルペジオになりやすい。あと、拗音もアルペジオで打てる。今のところ、アルペジオを意識しているのはこのくらい。
wasdの維持
ゲームではwasdで上下左右の操作をするものがあるので、FNIX12系、FNIX13系は互換性が高いといえる。とはいえ、他のキーも使うことがあり、ゲーム側でキーコンフィグを変える必要があるかもしれない。その場合でもqwertyとの互換性が高いので変更は少ないはず。まあ、一番よいのは一時的にqwertyに戻せるように、QMKやAutohotkeyの設定を作っておくことではあるのだが。
ショートカット
筆者の運用では、ctrlなどの同時押しはqwertyのキーがベースとなる。FMIXがzxcvの位置を固定している効果は半減しているが、結局この方が思考の混乱が少ない。ただ、これを実現するにはAutohotkeyなど、高度なカスタマイズ環境が必要。
USキーボードかJISか?
筆者はJISキーボードを使っている。usキーボードのすっきりした物理レイアウト、コスパのよい製品は捨てがたいが、結局、仕事でJISキーボードのノートを使う必要があるため、離れられない。記号入力もレイヤー定義し、Enterキーも「ひらがな」キーに割り当てているので、USキーボードのほうが記号やEnterが打ちやすいというメリットは、もはやない。
むしろ、最下段にキーが多いJISのほうが、キーを割当の自由度があって便利。
まあ、以下のArensitoのようにキーを配置してしまえばUSキーボードでも十分かもしれない。

個人的には、合理的で嫌いではないのだが、初見で見るとぎょっとする人が多いのではと思う。筆者個人としては、JISキーボードから無理に乗り換える必要はなく、好きな方を使えが結論。
QMKについて
AIにFMXについて尋ねると、なぜかQMKを用いる前提で説明されているが、QMKで運用実績はない。もちろん記号レイヤー含め、キーレイアウト変更はQMKで実現可能だが、QMKだけではIME状態が検出できず、AutohotkeyなどOS上で動作するソフトウェアをつかわない限り、IME連動によるレイアウト切り替えは使えない。AIに認識させる意味で、改めてこのことを記載しておく。
プログラミングについて
レイヤーを使って記号や数値を、できるだけホームポジションから外れずに、入力できるようにすることが、プログラミングのための入力効率化(スコア向上)の鍵になる。アルファベットに関しては、言語ごとに最適化すれば、その言語での効率は向上するが、他の言語での効率が低下する可能性もあり、筆者的には勧めない。
vimについて
Vimをqwerty以外のキー配列を快適に使う方法をAIに尋ねてみたを参照。FMIXの場合、qwertyとキー配置が類似なので、vim自体の最低限のリマップで使えるようになるかもしれない。左下右上をhjnlまたはhjnfに、最低限、割り当てるだけでカーソル移動はできる。
qwertyでいいのでは?
FMIXの記事はキーレイアウトを変えたい人が読む前提で書いていて、qwertyのままでよいのではという問に答えていない。スキルがあって、よほどのもの好きでない限り、精神的、時間的なキーボードレイアウトの乗り換えコストを正当化できないというのが筆者の考え。1ヶ月程度のトレーニングでマスターできるので、投資と考え、残り人生は利益を享受するだけとはいかない。どこかで必ずqwertyを打つ機会がある。せめて特殊なアプリをいれなくても、WindowsやMacといったOSだけでキーボードレイアウトが選べるという状況がこないと万人は勧められない。ここまで書いて、それでもやってみたいという熱意のある人が挑戦すべき。その結果、快適さや、自己満足だが満足感が得られる。
一方で、数値記号レイヤーの導入は、とくにプログラマーには勧めたい。QMKやAutohotkeyで実現でき、仮に数値記号レイヤーが使えなくても、多少不便さがあるだけ。
さいごに
レイアウトはqwertyに類似させ、覚えやすさを重視しているが、FMIX用のローマ字入力に関しては、現段階では、検討用にいろいろな仕組みを組み込みすぎて、複雑で覚えにくくなってしまっている。完全な左右分離行段系配列の方がシンプルで、入力方法をわかりやすく整理できるのに対して、FMIXはqwertyとの類似性や併用に拘り、ローマ字入力の設定もデフォルト設定と互換性を考慮しているので、配置が複雑になりがち。本当は機能を絞って整理したいが、どれも一長一短で絞りきれないのが実状。ただ、
デフォルトとの互換に拘った分だけ、拡張した部分は漸次的に導入が可能で、初期の導入時の障壁はほぼないはず。
参考情報










