The Beauty of Self-Made Keyboards

TL;DR

この記事は、最近話題になっている 自作キーボードを始めた人・これから始めたい人向け に、自作キーボードを実際に使ってみるとどうなのか?本当に使えるの?という疑問を解消するために書かれました。特に 自作キーボードって変な形してるけどちゃんと使えるの?どうやって入力するの? という点について、自作キーボードでの 具体的な入力方法を動画付きで解説 します。

自作キーボード 実用 入門

最近いたるところで自作キーボードの話題を見るようになり、本当に自作キーボード流行ってきていますね。

speakerdeck.com

qiita.com

techlife.cookpad.com

scrapbox.io

japanese.engadget.com

“究極”のThinkPad X1 Extremeに新型スマートウォッチ、はんだで作るキーボードを生チェック、ポチったのは? - ITmedia NEWS

【PR】KbD C93 印刷版再入荷しました & Ergo42 complite キット販売中

booth.pm

tanoshii-life.booth.pm

本日開催の 技術書典5 でも、いくつかのサークルが自作キーボードに関連する出展を行っています。今この記事を読んでいる方も、少なからずこういった最近の盛り上がりを見聞きして自作キーボードに興味を持たれたのではないかと思います。

一方で、現在巷にあふれている自作キーボード情報は、自作キーボードの組み立て方法や自作キーボードの完成形の情報等がほとんどで、自作キーボードを作る理由、そして 自作キーボードを使う理由・使うことでどういった事ができるのか についてはあまり言及されていないようです。これは自作キーボードという文化がまだまだ日本では未知で、そもそもどうやって始めていいのかという入門のハードルが高かったことや、自作キーボードで先行していたアメリカでの文化が photogenic な傾向にあり、日本における自作キーボードもこの文化の流れを多分に汲んでいることなどに起因していると思われます。

身近に自作キーボードを使っている人がいれば、実際に自作キーボードを触ったり、使っている人から話を聞いたりする機会が得られるかと思うのですが、まだまだそういった機会は十分には多くはないのが現状です。そこで、実際に私が作っている自作キーボード Ergo42 での打鍵動画を参考に、自作キーボードでどのように入力するのか、自作キーボードだとどううれしいのかご紹介します。

自作キーボードでの入力

まずは動画を観てみてください。

www.youtube.com

Ergo42 は自作キーボードの中ではそれほど少なくないキー数の、いわゆる 60 %キーボードというものに属していますが、それでもご覧の通りファンクションキーはおろか数字キーの行もありません。カーソルキーもありません。ですがご覧の通り数字や、それだけでなく記号もしっかり入力できていますし、この動画ではわからないですがファンクションキーももちろん入力できます。このような少ないキー数でしっかりフルサイズのキーボードと同様の入力ができる、自作キーボードでは常識で一般的には非常識な、いくつかの仕掛けがあります。

ハードウェアとソフトウェア

そもそも自作キーボードの両輪として、ハードウェアとソフトウェアという両方の要素が必要です。ハードウェアは写真で見たとおりスイッチがたくさん並んだものですが、ソフトウェアとしては一般にファームウェアと言われる 押されたスイッチに対応したキーの情報をコンピューターに送る ものが存在します。ハードウェアは自作というのが 見た目にわかりやすい ですが、この目に見えない ファームウェア というものもオープンソースで自分たちでカスタマイズが可能になっていて、こちらのソースコードを変更することで様々なカスタマイズが可能になっています。このカスタマイズ性によって、上記の動画のような比較的キー数の少ないキーボードでも自由な入力が実現されています。

レイヤー切り替え

自作キーボードではずせない、必須の機能としてあげられるのが、 レイヤー切り替え機能 です。この機能はざっくり言うと、ラップトップ PC でよく見る Fn キーと同様のもので、レイヤー切り替えキーを押すことで一時的にキーの配置を変更することができる機能です。例えば、上記の動画で使っているキーマップでは、メインのアルファベットのレイヤー、数字・ファンクションキー・カーソルキー等のレイヤー、記号レイヤーの 3 つのレイヤーを使っています。

Base Layer (アルファベット)

,------------------------------------------------.   ,------------------------------------------------.
| Tab  |   Q  |   W  |   E  |   R  |   T  |  [   |   |  ]   |   Y  |   U  |   I  |   O  |   P  |  @   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |   A  |   S  |   D  |   F  |   G  |  (   |   |  )   |   H  |   J  |   K  |   L  |   ;  |  :   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |   Z  |   X  |   C  |   V  |   B  |  {   |   |  }   |   N  |   M  |   ,  |   .  |   /  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

Meta Layer (数字・ファンクションキー・カーソルキー等)

,------------------------------------------------.   ,------------------------------------------------.
|   1  |   2  |   3  |   4  |   5  |   6  |  [   |   |  ]   |   7  |   8  |   9  |   0  |   -  |  ^   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |  F1  |      |Muhen | Henk |      |  (   |   |  )   | Left | Down |  Up  |Right |      |      |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |  F2  |  F3  |  F4  |  F5  |  F6  |  {   |   |  }   |  F7  |  F8  |  F9  | F10  | F11  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |Reset |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

Symbol Layer (記号)

,------------------------------------------------.   ,------------------------------------------------.
|   !  |   "  |   #  |   $  |   %  |   &  |  [   |   |  ]   |   '  |   (  |   )  |   ~  |   =  |  ~   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |      |      |      |      |      |  (   |   |  )   |      |      |      |      |   +  |  *   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |      |      |      |      |      |  {   |   |  }   |      |      |   <  |   >  |   ?  |  \   |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

このようにレイヤーを使うことでキー数を実質何倍にもすることができるため、物理的にかなり少ないキー数でも不足のない入力ができるようになっていて、自作キーボードの 物理的なレイアウトの自由度が高まって います。

長押し

もう一つ、普通のキーボードと大きく異なる自作キーボードの特殊な機能として、長押しでキーの機能を変えられる というものがあります。上記のキーマップだと / で区切られているものが <短押し>/<長押し> のキーマップになっています。この操作は通常のキーボードにはまずないモノでかなりトリッキーですが、うまく使うとより少ないキー数・指の移動量で打鍵をすることができます。個人的におすすめなのが親指の Space キーを長押しにすることで Ctrl キーになるというもので、これがあると Ctrl を小指で押すという不合理から開放されるので、コピペ操作が頻出する方も 目が 5 個の宇宙人 を信仰している方も小指がダメになるリスクを大幅に低減できます。

独自配列

勘のいい方はすでに気づいているかもしれませんが、このように自作キーボードではソフトウェアでキーの配置を自由に決められるので、当然 アルファベットの配置も自由 にすることができます。現在通常用いられているキー配列は QWERTY と呼ばれるものですが、これは歴史的な背景やなんやかんやいろいろあって、合理的な配列ではないという話や実は打鍵速度的にはいいという話等錯綜しているのですが、すくなくとも 指の移動距離は比較的長い配列であることは知られています

そこで、より合理的なモダンな配列を考えようという話になるのですが、この分野で言うと有名なのは Dvorak 配列で、これはみなさん聞いたことはあるんではないかと思います。ただ、一般に Dvorak 配列のキーボードというものは売っていないため、専用のソフトウェアなどで対応していました(が、外部デバイスから入力されるキーをソフトウェアで差し替えるという操作になるため、不具合が多かったりもしたようです)。

ですが、自作キーボードならキーマップは完全に自由で不具合フリー [要出典] です!こういったカスタマイズ可能なキーボードの出現の流れも手伝ってか、最近では新たな 僕の私の考えた最強のキーマップ が誕生してきています。その中でも、おそらく最も新しい世代のキーマップの一つが Eucalyn 配列です。

eucalyn.hatenadiary.jp

Eucalyn 配列は、Dvorak 配列同様左手のホームポジションに母音を並べることで左右交互打鍵を基本的な設計にしつつ、zxcv のようなショートカットキーとしてよく用いられているキーは QWERTY の位置を保つようにし、vim キーでカーソルに相当する hjkl をカーソルキー型の形状に配置するなど、移行コストを抑えながらホームポジションからの移動量が少ないキーマップを実現しています。

私はこの Eucalyn 配列を改変した Eucalyn 改配列を最近は使っていますが、その Eucalyn 改配列と QWERTY 配列との打鍵比較動画が以下になります。

www.youtube.com

動画中で使った Eucalyn 改配列

,------------------------------------------------.   ,------------------------------------------------.
| Tab  |   ;  |   ,  |   .  |   P  |   Q  |  [   |   |  ]   |   Y  |   G  |   D  |   M  |   F  |  @   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |   A  |   O  |   E  |   I  |   U  |  (   |   |  )   |   B  |   N  |   T  |   R  |   S  |  :   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |   Z  |   X  |   C  |   V  |   W  |  {   |   |  }   |   H  |   J  |   K  |   L  |   /  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |=>BIAC|ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |      |      |  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

動画を見ていただければわかるかと思うのですが、ホームポジションからの移動量が少なくて快適な打鍵ができています。アルファベット配列の変更はそれなりにコストが高いですが、うまくやれば QWERTYバイリンガルにはなれますので、チャレンジしてみる価値はあります。アルファベット配列の変更 (のよさとその大変さ) については、Eucalyn 配列の考案者である @eucalyn_ と対談した podcast もあるのでぜひ聴いてみてください。

つまり…

ここまで、自作キーボードがどのように少ないキー数での入力を実現しているのか紹介してきました。自作キーボードの写真等を見かけることも多くなったかと思いますが、それらのような特徴的で自由なレイアウトのキーボードが実現できるようになったのも、オープンソースファームウェアによって キーボードの動作がカスタマイズできるようになった ことが非常に大きな役割を果たしたことがわかるかと思います。

ファームウェアは目に見えないため自作キーボードの重要な一側面であることが伝わりづらいのですが、実際はこのファームウェアのカスタマイズ性のために自作キーボードをやめられないという人もいるほど重要な要素です。また、自作キーボードは通常のキーボードに比べるとかなりキー数が少ない傾向にありますが、大抵の場合、いたずらにキー数を減らしているわけではなく、自作キーボードを長く使っているとだんだんと上記のレイヤー切り替えや長押し等の機能を使いこなして ホームポジションから極力移動しない キーマップに落ち着いていく傾向があり、結果として小さいキーボードにたどり着きやすいようです。

自作キーボードは、ハードウェアのキースイッチの種類で感触や音が変えられたり、キーキャップで好みの見た目にできたりと、 自分だけのカスタマイズ ができることが大きな魅力の一つですが、実はソフトウェアもカスタマイズできて、自分だけのキーマップ・挙動を実現できるのでした。自作キーボードは万年筆のようなもの、と言ったりしますが、万年筆もペン先やインクの粘度・色、そして所有欲を満たすデザインを選んで自分だけの書き味を追い求める、自作キーボードに似た所が多く見受けられます。自作キーボードでデザインにまでこだわる方が多いのも、こういった 日々使う上質なもの に対する執着のようなものがあるのかもしれません。

f:id:biacco42:20181008105334j:plain

というわけで、キー数が少なかったりレイアウトが独特だったりしても、意外となんとかなるので、ビビらずにぜひ作ってみて自分だけのカスタムキーボードを作ってみてください。(ハードウェア的に) 完成してからが、本当の自作キーボードだ…

おまけ

本日開催の技術書典5 では自作キーボード島とまでは行きませんが、4 つの自作キーボードサークルが け61 ~ け64 に並んで出展しているほか、場所は散っていますがいくつかのサークルさんが参加されているようです。たのしい人生は今回サークル出展はしていないのですが、 け62 のゆかりやさん、け01 の nopnop さんで既刊 KbD C93Ergo42 Towel フルセットキット 等を委託させていただいています (キット販売は け01 nopnop さんのみ)

よろしかったらぜひ、本日開催の技術書典5 で立ち寄っていただけたら幸いです。

Amazon.co.jpアソシエイト