esm アジャイル事業部 開発者ブログ

永和システムマネジメント アジャイル事業部の開発者ブログです。

自作キーボードの魅力と PRK Firmware

こんにちは、@kasumi8pon です。

この記事は、PRK Firmware Advent Calendar 2021ESM Advent Calendar 2021 9日目の記事です。

わたしが感じている自作キーボードの魅力

わたしは昨年の 9 月に初めて自作キーボードの組み立てをして、今メインでつかっているこちらのキーボードはもう 1 年以上使っています。

f:id:kasumi8pon:20211207141618j:plain
my keyboard
そんなわたしが感じている自作キーボードの魅力をお伝えします。(初級者のわたしがまだ味わっていない魅力は他にもたくさんありそうです。光らせるとか、1 から自分で設計できるとか……)

自分に合う形が選べる

自作キーボードの形はとても種類が豊富です。市販のキーボードと同じような形もありますし、わたしがそれまで見たことがないような形のものもありました。例えば、キーが格子型に配置されているものや、キー数が少ないものなど、たくさんの種類から自分の好きな形が選べることは大きな魅力です。写真は ErgoDash mini というキーボードです。数字の段のキーがなくてコンパクトなので手を大きく移動させなくてもキーが打ちやすいところや、親指で押せるキーが多いところが気に入っています。また、分割型ということで自然な姿勢でキーボードを使えるので、肩が凝りにくい気がします。

好きなキーキャップを選んでつけられる

見た目は大事です。メインは astrolokeys というキーキャップをつけています。とても可愛くて気分が上がります。 左上につけているのは Zen Pond III というキーキャップです。とても美しいです。

押しごこちを追求できる

キーを押したときの感触も自分好みにすることができます。 初めはあまり興味がなかったのに、いざ自分でキーボードを組み立てよう!と思い立つと「せっかくなので」と押しごこちもこだわりたくなってしまいました。写真のキーボードには Input Club Hako Violet というキースイッチを使っています。 比較的な軽めなキースイッチですが、キーを押したと判定される反応点の手前にある触感のピークはしっかりしていて「押した感」もあるところが気に入っています。

自分でキーマップを設定できる

自作キーボードはキーマップを自分で書き込むので好きなように設定ができます。よく使うキーを押しやすいところに配置したり、タップ時とホールド時で別の入力を設定したりするなど、無限に調整ができます。

ここまで語ってきましたが、実はキーマップの利点について、わたしはあまり活用できていませんでした。 最初に自分好みに設定したつもりでも、使っていくうちにちょっと違うな、調整したいなと感じることが何度かありました。ここでキーマップを育てていけるのも良いところなのに、実際にはあまり変更をしていません。 なぜなら、すこし手間がかかるためです。 今メインで使っているキーボードは QMK Firmware というファームウェアで動かしており、ビルドにいくつかの手順と時間が必要です。大したことはない手順ですが、現在のキーマップでも問題なく利用できることと、わたし自信の面倒くさがりという性質からどうも後回しにしてしまい、キーマップをいじることがあまりなくなってしまいました。 そして、すでに組み立てたキーボードは気に入っているけれど、新しい自作キーボードを組み立てたり、もっとカスタマイズしていこうという気持ちはしぼんでしまっていました。

PRK Firmware との出会い

それからしばらく時が経ち、今年の 9 月 RubyKaigi Takeout 2021 での hasumikin さんの PRK Firmware: Keyboard is Essentially Ruby トークを聞きました。Ruby でキーマップを書けるファームウェア PRK Firmware についての話です。 トーク内でいくつかのデモが行われてどれもすごく面白かった中で、わたしが一番感動したのは「PRK Firmware を使うと、コンパイルする必要がない」というところです。 すごい!!! PRK Firmware を使うとキーボード内の keymap.rb というファイルを直接編集することでキーマップを設定できて、すぐにその変更が反映されるのです。キーマップを変更して使ってみて、もし思っていたのと違ったらすぐに微調整して再度試すということがとても手軽にできるんですね。 これがわたしの中で小さくなってきていた自作キーボードの火を再び起こしてくれました。ぜひ PRK Firmware を使って、自分のキーボードをもっとカスタマイズしていきたい!と。

ということで、トーク内のデモでも使われていた meishi2 というキーが 4 つの小さなキーボードを PRK Firmware を使って動かしてみました。meishi2 は元々 QMK Firmware で動いていたため、Pro Micro を付け替えて、ダウンロードしてきたバイナリをドラック&ドロップして、keymap.rb という Ruby のファイルを配置するだけで動きました。自作キーボードが初めての方でも、かなり簡単に入門できると思います! (実はそれだけのところでずいぶん詰まって、ruby-jp の #keyboard チャンネルでみなさまに助けていただきました。なんと、Pro Micro をつける向きを間違えていたという凡ミス……。画像の通り付ければ間違いないです!)

ふつうの文字を割り当てることもできますが、Ruby のコードを書けるので、試しに押すとランダムなフルーツ(など)の絵文字が出てくるキーをつくってみました。 🍒 🍇 🍓 🍒 🍍 🥑 🍋 🍋 🍐 🥝 🥒 🥔 🍇 🥬 🍉 🍋 🍍 🍑 🥜 🍋 🥜 🍎 押すのが楽しいです。キーボードの中に cherries とか grapes の文字列を持っておいて、ランダムに選んでコロンと一緒に出力しているだけです。(わたしの利用しているエディタやサービスは大体絵文字に変換してくれる。)このキーにフルーツの絵柄のキーキャップをつけたら面白そう、などと想像がふくらみます。このキーはちょっとした思いつきでしたが、何かアイデアが思い浮かんだらいつものようにコードを書くことで気軽にメンテナンスできるので、これからもいろんなカスタマイズをしていこうと思います。

最後に、『達人プログラマー 職人から名匠への道』からの引用です。

道具を手に入れた後は、その学習と適合段階が始まります。それぞれの道具 には独自の個性やくせがあり、道具ごとに固有の取り扱いが必要となります。 また、それぞれの道具を独自の方法で研ぎ上げ、維持していく必要もあります。

道具は手に入れて終わりではなく、研ぎ上げて自分にあわせていく過程が必要です。普段 Ruby を書いているわたしにとって、 PRK Firmware で動くキーボードはとても研ぎ上げるのが楽しい道具になりそうです。

まとめ

  • 自作キーボードは楽しい!

  • PRK Firmware ならそんな楽しい自作キーボードをもっと気軽に始められそう!

  • keymap.rb をメンテナンスしながら道具を磨いて、効率的に・楽しく作業をしよう!