⌨️

「立って半畳、寝て一畳、天下取っても二合半、キーボードは36キーもあれば事足りる」【自作キーボード 30%キーマップ】

2023/12/12に公開2

この記事はキーボード #2 Advent Calendar 2023 12日目の記事となります。

実は私の今年のアドベントカレンダーの記事はこれで2本目となります。
一本目は以下になります。

https://zenn.dev/takashicompany/articles/24ab331c13444f

狭ピッチの小型・薄型キーボードをオススメするにあたって、打鍵に必要なキー数が少なくなればよりコンパクトなキーボードが選択肢に入りやすくなると考え、追加で記事を書きました。

狭ピッチ・小型・薄型キーボードに限らず、必要なキー数を減らせればコスト減やキーボードの選択肢が増えるので今一度お使いのキーマップを見直してはいかがでしょうか?


分割型0.8u狭ピッチ・30%キーボード 「miniDivide」

今回は私が普段用いている30%キーボードのキーマップを紹介しつつ、簡単な解説を添えたいと思います。
紹介したキーマップをそのまま使って頂いても構いませんが、解説を元にご自身のキーマップがさらに使いやすくなれば本望です🙏

30%キーマップのメリット


0.8u狭ピッチ・30%キーボード「miniZone」

まず、30%の説明を簡単に書きますと
フルサイズと呼ばれるキーボードを100%とした時に、30〜39キーのものを界隈では30%と呼ばれているようです。

100%キーボード

30%キーマップのメリットを列挙すると

  • 各指を縦方向に動かすだけで文字の入力ができる(キーマップやキー配置によって異なるケースもあるが)
    • 指の動きを最小限に抑えられる
  • キーキャップが少なくて済むのでお財布に優しい
  • キースイッチが少なくて済むのでお財布に優しい
  • 慣れれば大抵のキーボード・キー配列を使うのを苦にしない
    • キー数が少なければ配列の影響を受けづらくなる
  • デスクのスペースを節約できる
  • 小さいキーボードが選択肢に入りやすくなる

といった感じでしょうか。

とは言え、キーマップを減らすのは楽ではない…ということも重々承知しております。

心がけとしては 「キーマップを考える・使って慣れる」ところも自作キーボードの楽しみの一つかと思いますので、 過程含めてエンジョイしていただけたら嬉しいですね。

キーマップを考案するにあたって

キーマップを紹介する前に、まず私の前提を列挙すると

  • 普段はMacBook Proを使っている。キーボードの配列は日本語配列。
  • 一応、Windowsも持ってはいる。
  • 仕事ではプログラミングをすることが多い(C#)
  • PCゲームはあまりしない

という感じです。

以上を踏まえた上でコンセプトをいくつか考えました。
他の方にも当てはまる部分もあれば、そうではない部分も多々あるかと思いますので考え方の一つとして参考にしていただければと思います。

コンセプト


30#キーボード「EndZone34」

なるべく、日本語配列からかけ離れないキーマップ & レイアウトが望ましい

デスクで作業をする際は基本的に自作キーボードを使っていますが
出先だったり会議に呼ばれた際はMacBookだけを持ち歩くので
従来の配列から可能な限り離れないことが望ましいです。

同時押しに必要なキー数はなるべく減らす

ここで述べる同時押しは、「レイヤーキー + 修飾キー + 入力キー」といった「一つの文字を入力する際に、他に押さないとならないキーの数」を差します。
同時押しが増えるほどタイミングがシビアになりやすくご入力に繋がりやすいので
「長押しキーひとつ + 入力キー」 の最大2キーを目標とします。

似た機能を持つ記号は近い位置にまとめる

最終的には「身体が覚える」のでどんな配置でもある程度はなんとかなると思いますが、「覚えやすさ」の観点で考えると機能が近いキー同士をまとめた方が学習効率が良くなります。

小指の依存度を下げる

「小指って小さいし力入れづらいのにキーボードでの役割重大すぎない?」

自作キーボードをはじめた頃にキーマップを考えている時に度々思ったことです。
おそらく私以外にも同じことを思った方、いるのではないでしょうか。

特に従来のキーボードだと左シフトキーやCtrlキー(Windows)などを担当することが多く、指の構造に対して責任が重大すぎる気がするんですよね。
少なくとも長押しは親指などに任せられるようにしたいですね。

キーマップ

実際の私が使っているキーマップをご紹介しましょう。

説明
左図のようにキーの内部が二段になっている場合は、短く押した時は上・長押しをした時は下というようになっています。

また、下記のキーマップはWindows表記にあわせているので、実際にMacで使っている時の対応表は以下になります。

Windows Mac
Ctrl Command
Win Option
Alt Control

レイヤー0

レイヤー1

レイヤー2

レイヤー3

レイヤー番号 主な役割
レイヤー0 デフォルト。アルファベット入力
レイヤー1 数字 & 記号
レイヤー2 シフト押下 + 数字 & 記号
レイヤー3 頻出キー
レイヤー4~ ファンクションキーやLED切り替え、BLE Micro Proの設定キーなど

右手側の手前右側の2キーはほとんど使用していないので空欄になっています。

解説

以下は上述のキーマップの解説になります。
個人的な趣向なども加味されておりますので、人間工学的に優れているわけではありませんが皆様がキーマップを考える際のヒントになれば幸いです。

ホームポジションは中指


レイヤー0

従来のキーボード・キー配置ですと人差し指がホームポジションの基準点となりますが、私は中指を基準点としています。


FキーとJキーの突起

人差し指は打鍵範囲が広いため迷子になりやすくないですか?
中指なら基本的に大きく動かす必要がない上に手の中心にあるので、位置が安定しやすいです。

同時押しは親指に任せる

基本的に私のキーマップは「親指 + キー」で全ての文字や記号を入力できるようにしています。
また修飾キーや頻度の高いキーも親指に切り替えを任せることで人差し指〜小指を文字入力に集中できるようになっています。
以下は親指の奮闘を細かく解説したものです!

英数/かな切り替えは両手の親指


レイヤー0

英数・かな入力の切り替えは両手の親指が担当しています。
この配置はMacの日本語配列に寄せたカタチになります。


スペースキーの左右に英数・かな入力の切り替えキーがある

最近だとWindowsも無変換・変換キーで半角/かな入力の切り替えに対応していたかと思います。
半角全角キーの単独キーでの切り替えに比べると現在の状態を把握せずとも英数・かな入力をスムーズに切り替えられるため、文字を打つことにより注力できます。

左手親指の長押しでCtrl(Command)


レイヤー0

こちらもMacの日本語配列に寄せる方式になっています。


Macbookの日本語配列

Macの場合は英数キーとCommand(Winで言うCtrl)キーが別々のものとして存在しますが当キーマップでは

  • 短く押す : 英数キー
  • 長く押す : Ctrl(Command)

というように使用頻度の高いキーを一つのキーに収めることが可能です。
このあたりはQMK Firmwareの恩恵を最大限に受けていますね。

どちらの入力も頻度が高い割には使用するケースが被ることが少ないからこそなせる技とも言えます。
親指を移動させることなく機能を使い分けられるのは非常にありがたい...!

基本的なレイヤー切り替えは右手の親指に任せる


レイヤー0

レイヤー1とレイヤー2で必要な数字と記号を網羅する形となっており、その切替は右手の親指が担当します。
上述の英数キー/Commandキーと同様に、右手の親指部分も頻度の高いキーをタップと長押しで使い分けでいます。

シフトキーに頼らない数字/記号入力


レイヤー1


レイヤー2

30%サイズでは、レイヤー機能を上手く使うことが必須です。

レイヤー1は数字と記号を網羅的に並べています。
レイヤー1とシフトキーがあれば、記号はほぼ全て打てるのですが長押しするキーが2つ + 実際に打つキー1つの合計3キーになると打鍵ミスが増加します。
これを改善するべく、シフトキーを既に押したことと同等になるレイヤー(例ではレイヤー2)を用意することで、長押しする親指の位置を変えるだけで済みます。
楽な上に早いしミスも少なくなるのでオススメです。


以上が親指をフル活用したキーマップの事例です。
特にレイヤー1とレイヤー2を親指の位置で切り替えられるのが慣れると非常に楽なので、ぜひ試していただけると良いかと思います。

ホームポジションのまま矢印キーを扱う


レイヤー3

当キーマップのホームポジションである左手の中指を長押しすると有効になるレイヤー3。
反対側のホームポジションに矢印キーを配置するとホームポジションから離れずに矢印キーを打つことができます。


左手側に矢印キー、右手でレイヤー切り替え

デメリットとしては、左手中指はDキーに相当するのでFPSのゲームで移動に用いるW,A,S,DのDキーの入力を阻害してしまうことです。
(仕事でゲームのデバッグをした時に「右方向の入力だけできないバグかも!」と騒ぎ立ててしまった思い出があります…笑)
これは右手の中指(Kキー)にレイヤーキーを導入して、左手のホームポジション付近に矢印キーを配置すれば解決できるかと思います。

ホームポジションから動かずに矢印キーが操作できますと、何かと楽ですね。

また中指付近はキーが押しやすいのでよく使うキーを入れておくと、より便利になります。

括弧系は数字部分と縦列をあわせる


レイヤー1

レイヤー2

日本語配列ですと、数字列の8と9キーとシフトキーをあわせると括弧()が入力できます。
[ ]{ }も8と9と同じ列にしておくことで「右手の中指と薬指は括弧を打てる」というルールを設定できます。
キーマップが覚えやすくなることに加えてキーマップが整頓されるのでこちらもオススメです。

よく使う記号は人差し指付近に置く


レイヤー1

よく使う記号は人差し指付近に配置するとスムーズに打鍵できます。
仕事上、プログラミングをする際にC#という言語を用いることが多いので頻出する四則演算+ - * /と末尾に使うことが多いセミコロン;が人差し指付近にまとめておいております。
コロン:はC#だと前述の記号に比べると登場頻度は少ないですが、日本語配列でも英語配列でもセミコロン;と近い位置にあるので同様にしました。コロン自体は記号としてはよく使う方なのでこの位置に収まることとなりました。

シフトキーは小指と親指の2箇所に入れる


レイヤー0

理想で言えば、親指にシフトキーを担当させたほうが人差し指〜小指が文字の入力に集中できるのですが、まだ私が慣れていないのでZキーにシフトを入れています。
ゆくゆくは左手の親指のシフトキーのみを使うようにしたいのですが、いきなり実践すると混乱しそうなので段階的にキーマップに慣れるためにあえて複数の位置でシフトキーを入力できるようにしています。
また、大文字のZを入力したい時は必然的に他のシフトキーが必要となりますので、30%サイズの場合は複数箇所にシフトキーを用意していくのが吉ですね。

配置に困ったら他の配列から拝借する

@の位置に悩みましたが英語配列キーボードだと「シフトキー + 2キー」で@の入力ができるので、イメージ的に近い位置に配置しました。
機能的なメリットはそれほどありませんが、グルーピングとして考えやすくなります。
配置に困った時は、こういった考えで埋めてみると良いかもしれませんね。

最後に


30%キーボード「Tightwriter」

改めてキーマップを眺めてみると、打鍵速度よりも打ちやすさやと覚えやすさを重視していましたね。
実際のキーマップのソースコード(keymap.c)はこちらになります。
(iPad用の対応を入れたり、LEDやFunctionキーなどのキーマップも入っているので今回の例より機能が増えています。)

30%は最初は慣れないかと思いますが、冒頭にも記載した通り「慣れるところも楽しむ」のがコツかと思います。
キーマップを考え、使い、調整していく、慣れていくプロセスも自作キーボードならではの楽しみですね。
この記事を読んで30%サイズに挑戦する人が増えたら感無量です!

また、コメントで「自分のキーマップはこんな感じです!」「こういう考え方でキーマップ並べてます!」といったものを頂けますと、この記事を読んだ方がキーマップを考えるにあたってより工夫がしやすくなりますのでお気軽に投稿ください!

この記事はminiDivideとKeyball44で書きました。

Discussion

SHERRYSHERRY

こんにちは!
先日のキーケットでminiDivideのキットを購入させていただき、初めての自作キーボードを組むことができました!初心者にもかかわらずBLE Micro Proで完全無線化してみたのですが、キー周りや無線周りで不具合もなく完全に動いており、タイポの嵐の中で慣れるのを楽しんでいます。

もしよろしければ少しお伺いしたいことがあるのですが、こちらの記事のキーマップでは、数字キー(「1」「2」etc...)と記号キー(「!」「@」etc...)を1キーに1つ割り当てていらっしゃるようですが、Remapで同じようにマッピングする方法がどうにも分からず……(どうしても「1と!」「2と@」が同じキーに割り当てになるようにしかできない)
解説記事や参考にするとよいサイト等ありましたら教えていただけますと大変ありがたいです。

takashicompanytakashicompany

SHERRYさん

コメントありがとうございます。
私はminiDivideはBLE Micro Proの昔のファームウェアでテキストファイルにキーマップを書く(KEYMAP.JSN)方式でやっているので、Remapでの設定に詳しくはない前提でお話させていただきます。

あくまで今回の例は、「Shiftキーを使わずに記号などを打つ」という方式ですので実は1とか2とかの数字キーだけをあてているように見えるところは「1と!」「2と@」が配置されています。Shiftキーを押す運用ではないので、特に気にしていないという感じですね。

記号などはRemapですと、「Shiftキーを押したまま、特定のキーを押す」設定があるかと思いますのでこちらを組み合わせて行くとよいかと思います。