日本語配列 自作キーボードの作成 その2
どんなものを作るか(レイアウト作成)
自作キーボードをつくるのにあたって、最終的にどんな形にするかを決めておかないと、間違ったPCBを選んでしまう可能性があります。
PCBの間違いは致命的で、対応していない配列の場合は買い直ししかない場合が殆どです。
ただ、いきなり配列を考えると言っても難しいと思うため、なにかお手本となるキーボードの配列を元に、自分の使いやすいアレンジを考えるのが良いでしょう。そしてレイアウトを決めたあと、実現可能なPCBを購入すれば良いわけです。
自分はこうやりました
まず元となるレイアウトは、先の記事で紹介した、Minila Air のレイアウトを元に改編しています。
こちらの配列を基本に、レイアウトとしては以下の変更を行っています。
カーソルキーを1つ左に移動。[ \ _ ] を削除
左右SHIFTを2Uに変更。そのため4列目が0.25Uづつ左にずれる。
右下をCtrlに変更
5列目のキーが足りないため、以下を削除 [Win][ひら/カナ]
5列目のキーサイズはPCBの都合で変更。SPACEがキーキャップの都合で2.25U + 2.75Uに分割。
レイアウトの作成サイト
レイアウトの作成には以下のサイトを利用するのがとても便利です。
上記のパターンもこのサイトで作成しています。
※ノンプログラミングの場合は本サイトでの作業は不要です。あくまでもイメージを作成するために利用しています。
使い方を説明すると長くなってしまうのと、いくらでも説明しているサイトはほかにあるかと思いますので、検索してみてください。
レイアウト作成の前に
キーボードレイアウトの作成の前に知って置くと便利なことをいくつか紹介します。
①レイヤー
60%キーボードは文字数が少ないため、通常ファンクションキーを配置しません。ではその場合、どうやってファンクションキーを入力するのでしょうか。
ここでレイヤーというものを利用します。わかりやすい例とすれば、Shiftキーがそれに近いです。[a]のキーを打った場合、通常では小文字の[a]が入力されますが、Shiftキーを押しながら打つと、大文字の[A]が入力されますね。
それと同じように、レイヤーの切り替えキー(普通はFn)を押すと、全く別のキーとして動かすことができます。これがレイヤー機能です。
75%以下のキーボード作成には必須機能かと思われます。
一般的には最上段の列左から、ESC 1 2 3 … BS との並びをFnキーを押すことで、別レイヤーに切り替えて 半角/全角 F1 F2 F3 … Del と切り替える場合が多いです。
また自作キーボードの面白いところは、キーの置き場所はどこでもいいので、ESCより半角/全角の方がよく使う人なら、通常押しを半角/全角とし、+Fn 押しでESCとしても良いわけです。
さらに言えば使用頻度がまず無いF11〜12なんかはズバッと切ってしまい、別の割当てをするなんていうのはよくあることと思います。
自分の場合は以下としました
基本的には定番の ESC 1 2 3 … BS → 半角/全角 F1 F2 F3 … Del としました。
②タップ&ホールド
タップ&ホールド機能は、1つのキーをちょん押し(タップ)と長押し(ホールド)で別の入力をしてしまおうという機能です。
(本当はもっと複雑にできますが、要プログラミングになるので割愛)
60%以下のキーボードではキーの数が少ないため、レイヤーに続いて有効な使い方ができます。
主に [Shift] や [Fn] や [Alt] や [Ctrl] といった、別のキーと同時押しに使うキーは、長押し(ホールド)しか利用しませんので、単独で押すことはまず無いと思います。
ここをちょん押し(タップ)として別機能を与えたらどうかということです。
長押ししないキーとすれば、普通の文字キーやいくつかの機能キーがありますが、向いているものは以下だと思います。
[無変換] [変換] [Win] [アプリ] [ひら/カタ] [PageUp] [PageDown] [Home] [End]
なお [Insert] や [PrintScreen] などは誤爆がうっとおしいなので、あまりオススメはしません。
次点としては、Shift同時押しになる記号で、入力頻度の高そうな [?] や [_] あたりがオススメかもですね。
自分の場合は以下としました
①スペースの左右は無変換・変換キーなので、左 [Alt] タップで [無変換]。
右 [Alt] タップで [変換]、ホールドで左右 [Alt] としました。
②左の [Fn] もタップで [Win] 、ホールドで [Fn] としました。
③同[Fn]はタップでアプリケーションキー、ホールドで右Fn。
これで4つ分キーを削減できました。
③同時押し
自作キーボードでは1つのキーで、複数のキーを同時押しすることが可能です。何を言っているのかがよくわからないかもしれませんが、通常Shiftとの同時押しになる ?や_ の記号や、Ctrl+Alt+Del を1つのボタンだけで入力したりできます。
①のレイヤーと組み合わせることで、Alt+F4を押す際にAlt+fn+4と3つもボタン押すのが面倒くさいのを、Fn+別のキー の2個で代用とかできたりします。
自分の場合は以下としました
①Ctrl+Alt+Delを片手押ししたかったので、左手でも可能なように、
左 [Fn]+[Ctrl] の場合のCtrlキーを、Ctrl+Alt+Del としました。
(右手は配列上片手で Ctrl+Alt+Del は押せるため、左手側のみ設定)
② [ \ _ ] キーをなくしてしまったため、置き換えた [ ↑ ] の位置に、Fnキー押しで、Shift+[ \ _ ] (アンダーバー入力)とした。
※[ _ ] は通常Shift同時押し入力のため、Fn+Shift+[ ↑ ]だと3つ押しになり、直感的でないため。また [ \ ] バックスラッシュはWindowsでは¥で同一の対応で、ほぼ入力機会がないためカット。
Tips:左右の手の動きを考えよう
レイヤー機能は便利ですが、レイヤーを切り替えるキーと同じ側のキーは打ちづらくなります。(Fnキーのすぐ隣とかなら別ですが)
カーソルキーをFn+WASDとするのはよくありますが、Fnキーが左しかない場合、非常に使いづらいものとなります。
レイヤーで数字を10キー配列にする場合、右利きの人は右手で打つほうが圧倒的に早く入力できますので、左Fnレイヤーで、789UIOJKLM,.を10キーとすると打ちやすいです。(左利きの人なら逆に123QWEASDZXCあたり)
以上の理由により、Fnキーは左右2つ用意するのがおすすめとなります。
最後に
レイアウト作成の際、通常の配列とあまりにかけ離れたものを作ってしまうと、直感的に利用ができず、使いづらいものとなってしまう可能性が高いです。
まずは、よくある配置を参考にしつつ、自分なりのアレンジを加えるのが良いかと思います。
とはいえ、キーの物理的な位置や大きさを変更しなければ、キーの入力についてはプログラムでいくらでも変更ができますので、使いながら試行錯誤していくのもまた楽しいかと思います。
次は実際にハードウェアの作成となります。