TTTキーボード研究室


Leia配列 日本語拡張 ver2

●2021年4月

日本語拡張 ver1はどうもうまくいかなかったので、もう一度考え直しです。
今度は隣り合う2つのキーの同時押しを導入することにします。

※ 2021年4月から試し始めていますが、その後も試行錯誤が続いています。以下は2022年6月版。

●概要

※大前提※ 格子配列または縦ずれ配列に向いている。通常の横ずれ配列にはまったく不向き。

・日本語入力に特化しています。外国語やプログラミングには不向きかも。

・基本はローマ字入力。左に母印、右に子音を配置している。そのためキー配置が覚えやすい。

・主要文字を中央に集めているので小指の負担が少ない。

・原則、1キーに1文字が対応しているので既存のキーキャップをそのまま使える。ただし、形状がすべて同じXDAプロファイルまたはDSAプロファイルを推奨。

・[同時押し] 近接する2つのキーを同時押しすることで、撥音(母音+ん)、二重母音、「ん」、「っ」、1文字助詞などを入力できる。入力の効率化ができる。

・[子音略語] 子音2文字をかな文字列に変換することで入力の効率化ができる。

・これらをQMK Firmwareで実現している。つまりパソコン側やスマホ側では何も準備しなくてもつなぐだけでこれらの機能を使用できる。
※QMK Firmwareが使えないキーボードの場合はKarabiner-Elementsで実装しています。

※ この配列の目的は高速入力ではなく、日本語入力の効率化、省力化です。

●基本配列

まずは基本配列です。最初はこの配列から覚えましょう。

leia3_layout

特別な設定は何もせず、キーの配置を入れ替えただけです。QMK ConfiguratorやVIA、Remap、Karabiner-Elementsなどで簡単に実装できます。
この設定だけでも日本語入力には適しています。

左に母印、右に子音を配置しています。
青い3×3の領域に主要文字が収まっていることに注目。
小指はほぼ使いません。

(※これまでとはまた配列が違うので、LEIA ver3とします。CXVが縦に並んでいるのが特徴です。ver2と同じく左右3×3の範囲に主要文字が収まっています。)

参考までに、ergodoxでの配列例を紹介します。他の類似のキーボードでも応用できるはずです。

leia3_ergodox

空白のキーはご自由に記号などを設定してください。
tabは予測変換として使っています。不要の場合はスペースキーなど他の機能を割り当ててください。
数字は、ゼロから始まる並びを推奨します。0、1は使用頻度が高いので、この並びの方が合理的だと思うのです。

●日本語拡張(同時押し)

ここからは同時押しの設定です。

まず、左手側から。

leia_jp2_5

※赤線※ 母音と右下のキーを同時に押すと撥音(母音+ん)を入力します。

「a」と右下 → 「ann」
「i」と右下 → 「inn」
「u」と右下 → 「unn」
「e」と2つ右下 → 「enn」
「o」と右下 → 「onn」

「e」だけ2つ右下ですが、これは右下だと同時押しが難しいからです。試してみてください。

※青線※ 右隣を同時に押すと二重母音です。

「i」と右隣 → 「ai」
「o」と右隣 → 「ou」
「e」と右隣 → 「ei」
「y」と右隣 → 「you」
「y」と2つ右隣 → 「yuu」

「you」は「行、今日、常、用」などよく現れるつづりです。

※紫線※ や行の定義です。

や行単独で使うよりも、子音に続けて拗音「ゃゅょ」として使います。

「やゆよ」は最下段を使います。
「ye」はあまり使わないかと思いましたが、チェックとかチェケラとかチェンバロとかシェパードとかジェットジャガーとかシェー!とかチェンジゲッター1!とかで使うので後から追加しました。
(つまり外来語ですね。シェーもフランス語由来という説があるざんす。諸説あるざんす。)

※緑線※ 助詞「を」です。

まずはここまで習得するといいでしょう。

撥音と二重母音は漢語由来の言葉に多くあります。入力の効率化には必須です。

次は右手側。

leia_jp2_6

※オレンジ線※ 「ん」「っ」です。「ん」「っ」は早めに習得した方がいいです。
「こ」は「個」なんですが、あまり使わないかも…。

※緑線※ 助詞です。

「と」「の」「は」などの助詞は普通の単語中でも現れますが、まずは助詞の時だけ使うようにした方が覚えやすいです。
普通の単語中では、よく使う単語で使うようにすると覚えやすいでしょう。すべての場合に同時押しをする必要はありません。

以上、ルールは複雑にならないようにしています。これなら覚えやすいのではないでしょうか。

※親指シフトと違い、親指は使用しません。近接するキーの同時押しの方がずっとやりやすいと思います。

●日本語拡張(子音略語)

「子音略語」とは、ローマ字変換で子音2文字をかな文字に変換することです。
例えば、「ds」と入力すると「です」と入力されます。
AZIKで言うところの「特殊拡張」です。

これは日本語入力のローマ字変換ルールを新しく追加することで実現できます。仕組みがわかれば組み込むことは簡単です。

どのような定義をするかは、個人個人の文体に大きくかかわってきます。私の場合は次のように定義しました。

dh では
ds です
dt でした

gt がつ (月)
gw がわ (側川)

hd ほど
hk ほか (他)
hn ふん (分)
hs はし (橋)

kn この
kr から (〜)
kt こと (事)
kw かわ (川)

md まで
mn もの (物)
ms ます
mt ました

nh には
nd など
nk なか (中)
nr なる
nt にち (日)

sg しき (式)
sk そこ
sm さま (様)
sn その
sr する
ss します
st した
sz しました

tg つぎ (次)
th とは
tk てき (的)
tm ため

yk よく (良く)
yr より

※2022年6月追加
ks ください
s- しゅん
z- じゅん
「しゅん」「じゅん」は意外と出現頻度が高いので追加しました

私の場合、まず仕事で使う文体を優先しています。よって「です・ます」体になります。
「日月分」は日付時刻で、これは東京タヌキ探検隊!、東京コウモリ探検隊!での記録で多用するためです。「川橋」もコウモリ観察で頻出する語です。
書き手によってよく使う語は違ってきますので、上はひとつの例だと考えるべきでしょう。それぞれで工夫してほしい定義です。
なお、たくさん定義しすぎると覚えることができなくなります。よく吟味して厳選するべきです。

「です・ます」などの文末を2打鍵で入力できるのは、入力のリズムを良くする効果があると思います。前述の撥音、二重母音、助詞も入力のリズムを良くしていると思います。

●数字と記号

leia3_numbers1

数字キーには記号類を割り当てます。以前と並びを変えました。

leia3_numbers1

こちらは5×2の場合。割り当てはどちらも同じです。どちらのレイアウトでも算術記号(7、8、9に割り当て)が分断されないように変更しました。

それから、コロン、セミコロンを追加しました。日本語文中ではまず使わないのですが、C言語などプログラミングではよく使いますので追加しました。

記号を入力するためのレイヤーキーは、カンマ(青文字)とピリオド(赤文字)を使用することを想定していました。が、QMK Firmwareの「COMBO」と相性が悪いようで、他のキーに割り当てた方が良い場合もあります。例えば、tab、スペースキーです。

●ここでまさかのQMK Firmwareのソースコードいじり

さて、この同時押しと子音略語、最初はMacでソフトウェア(Karabiner-Elements)を使って実現しました。
ですが、iPhoneやandroidなどのスマホではそういうソフトウェアがありませんので使えません。ちょっとくやしい。
いや、待てよ…

自作キーボードの世界では、QMK Firmwareというプログラムでいろいろなコントロールをしています。キーボードの中にはマイコンチップがあり、QMK Firmwareでコントロールしているのです。
このQMK Firmwareのソースコードをいじればキーボードの中で同時押し、子音略語を実現でき、スマホでもつなぐだけで使えるようになるわけです。

ですが、QMK FirmwareはターミナルやらコマンドラインやらHomebrewやらソースコードやらコンパイルやら、常人には理解不可能な魔界なのです(違います)。
そのため、普通はQMK ConfiguratorやVIA Configuratorといったわかりやすいツールを使ってQMK Firmwareをいじります。ただ、この方法では同時押しのような複雑な機能は定義できません。同時押しを実現するにはQMK Firmwareのソースコードをいじらなければならないのです。ここが難関です。

ですが幸い、宮本隊長は昔々プログラマーだったので、この魔術を(なんとか)解読する特殊能力を持っているのでした!(笑)

QMK Firmwareをインストールし、サンプルをコンパイルし、ソースコードをいじって…と格闘すること数日。はい、できました。
同時押しを定義するには「COMBO」という機能を使うのですが、元のソースコードにCOMBO関係のコードを追加していくだけなので意外と簡単でした。
(といってもプログラミングの経験がないとかなり難しいと思います。なお、QMK FirmwareはC言語で記述されています。)

「子音略語」は自分でコードを書き下ろしました。久しぶりなのできれいには書けませんでしたが。

※このあたりは2021年12月にやっています。まずはID75キーボードとPlanck EZで実装しました。ID75キーボードでは以上を定義したところでメモリが満杯になってしまいました…。(※その後、アルゴリズムを見直してメモリは少し余裕ができました。)
結果として、スマホでもパソコンとほぼ同様の入力ができるようになり満足です。パソコンで使う場合でもソフトウェアの設定無しで、つなげただけで同じように入力できるのでかなりありがたいです。
最終的には、1つのキーボードでMac(iOS含む)、Windows(JIS配列)、Androidに対応(それぞれ専用レイヤーを用意)。上記の仕様をQMK Firmwareで実装しています。パソコン、スマホ側では何も設定する必要はありません。

追記:「ソフトウェアでの設定無し」にこだわったのは、WindowsではAutoHotkeyのセキュリティが信頼できるかどうか判断できなかったからでもあります。Macの場合は、Karabiner-Elementsのアルゴリズム文法があまりにも不可解だったためです。

※ここからは独り言。
いや、まさか21世紀にコマンドラインを使うことになるとは思いませんでしたよ。宮本隊長がC言語を使っていたのは30年も前ですよ! もはや枯れた技術だと思っていたのですが…枯れた技術だからこそこういう小規模のシステムで有効活用できるということか…。
しかし、ソースコードいじりは初心者には高すぎる壁だと思います。本当に。

●Karabiner-Elementsソースコード

Karabiner-Elementsでのソースコードです。

●ID75キーボード用ソースコード

ID75キーボードでのQMKソースコードです。


[TTTキーボード研究室 TOP] [東京タヌキ探検隊! TOP]