2017年に一世を風靡したものの中に、分割キーボードが有ります。
分割キーボードとはなにかというと、PCを操作するKBを左右に分割し、肩の負担を減らそうというものです。
市販品もあるのですが、ANSI準拠の英語配列が多く、導入が難しい面がありました。そんな中、昨年は待望の日本語108/109キーボードが市販されたり、同人頒布物としてキットが入手できるようになったりしました。
その結果、キーボードの組み立てや自作を楽しむ方が増え、ついに今年末広町(秋葉原と御徒町の中間ぐらい)に、自作キーボードの専門店がオープンしました。
今までにもGitHubやQuiitaで交換されていたキーボードキット製作のノウハウですが、Quiitaはともかく、Gitはちょっと敷居が高いいんしょうがありました。
この敷居が、実店舗ができることによりかなり改善され、お店で販売されている商品に対して質問できるようになったり、併設の自作スペースで組み立てができるようになったのです。
また同時に、Discordの自作キーボードチャンネル(Self-Made Keybord-JP)の賑わいも特筆するべき点でしょう。一部のキットはDiscordでのサポートを行っていますし、実際に同じキットを制作したことがある方も、知見を提供してくださいます。
というわけで、去年からDiscordを眺めたり、良さそうなキットを物色したりしていたぺらねこは、これ以上この波に乗り遅れるわけには行かじと、ついに自作しました。
今回使用したのは、Helixの5行版です。バックライト付きのキットを購入しましたが、バックライトは装着せずに組み立てました。
完成したキーボードはこちら。
左手側
右手側
バックライトはキーボード上のキーを下から照らす機能なのですが、そもそも透過するキーが必要になったり、はんだ付けの手間が2倍以上になるためあきらめました。
組立の難易度はバックライトを省略したため簡単でしたが、完成後にすでに2回補修をしました。どちらもキーが押されたときの反応が怪しくなってしまったためです。
追記(1月27日) 組立3日目に、背面のアクリルパネルを低くしようとして、キーキャップを外してつけ直した所、右手側が複数キー破損し、結局PCB基板を交換して修理しました。作業時間およそ6時間ほどでした。
Helixはキースイッチの実装されているPCB基板と上面のアクリル板(四角い穴が空いている方)をはさみ、はんだで固定したあと、下面のアクリル板と6箇所のネジで下面のアクリル板を挟む構造になっています。そのため、厚い方のスペーサーを使うと、PCBのたわみがかなり気になります。
HelixはMX互換キースイッチをアクリル板にはめ込んでから、PCB基板にキースイッチの足をはんだ付けするようです。オフィシャルの手順だと、この部分の説明がロープロファイルスイッチを使っていてよくわからないので、手順書にMX互換スイッチを使う場合の手順も記載してほしいとおもいました。
さてキーボードを自作したということは、キーマップを自作したとも言えます。
キーマップの自作とは、キーボード上のどのキーに何の役割を与えるか、という作業です。
Helixはデフォルトで4つの階層をもっています。
通常のキーボードでは、1階層のものが多いのですが、HHKBなどは2階層になっていたりします。2層でも多いっちゃ多いのですが、Helixは4層もあるため、使い分けを考えなければなりません。
とはいえ、通常面は一番使う面なので、ここでほとんどのキーを操作できるようにしたいわけです。
で、こうなりました。
[_QWERTY] = LAYOUT( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_JYEN, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_EQL, KC_MINS, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, JP_LBRC, JP_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, \
ADJUST, KC_LALT, KC_LWIN, KC_APP, LOWER, KC_MHEN, KC_SPC, KC_ENT, KC_HENK, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
),
Lower/Reise面に関しては、通常面を補う機能として、置ききれなかった記号やファンクションキーをおいています。
[_LOWER] = LAYOUT( \
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \
_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, JP_MINS, JP_PLUS, JP_AT, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, JP_SLSH, JP_ASTR, KC_INS, \
_______, _______, _______, _______, _______, _______, JP_COLN, JP_SCLN, _______, _______, _______, _______, _______, JP_SCLN, \
_______, _______, _______, _______, _______, KC_ZKHK, KC_SPC, KC_ENT, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END \
),
[_RAISE] = LAYOUT( \
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \
_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, JP_MINS, JP_PLUS, JP_AT, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, JP_SLSH, JP_ASTR, KC_INS, \
_______, _______, _______, _______, _______, _______, JP_COLN, JP_SCLN, _______, _______, _______, _______, _______, JP_SCLN, \
_______, _______, _______, _______, _______, KC_ZKHK, KC_SPC, KC_ENT, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END \
),
この2面は、どちらも全く同じ配置にしました。
また、Adjust面については手を加えていません。
慣れてきたら、Lower面の右手側を10キーパッドにしたいのですが、コレはそのうちやろうかとおもいます。
また、すでに自作KBを作成している方には、JP_で始まる定義が見慣れないかもしれません。
これは、ANSIキーボードとJISキーボードのズレを埋めるための定義ファイルを使っているからです。
使い方は簡単で、keymap.cの中に、下記を追加するだけです。
#include "keymap_jp.h" //JP対応
ぺらねこ環境では、6行目にインクルードしています。
現状、今まで使用していたキーボードと比べて、若干タイプミスが多い程度で、じわじわと慣れてきています。さらに、半信半疑だった肩こりへの効果ですが、こちらは完全に肩が楽なことを実感しています。
長年ひどい肩こりに悩まされていただけに、コレは嬉しい。本当に嬉しいです。
ぜひ皆さんも、キーボードを割って、肩への負担の少ない生活に移行しましょう。