uitspitss blog

プログラミングと音楽とエッセイ ※記載内容は個人の見解であり、所属する組織とは一切関係がありません。

36キーのキーボードをコーディングで常用するための Tips

この記事は キーボード #2 Advent Calendar 2020 の1日目の記事です。 ついに、今年のアドカレも始まりましたね!

この記事では、私が2年あまり使用している MiniDox (36キー) をコーディングで常用していく中で、培った Tips について書きたいと思います。

f:id:uitspitss:20201129150842j:plain
MiniDox

f:id:uitspitss:20201130214321p:plain
キーマップ

親指キーを増やす

f:id:uitspitss:20201130214239p:plain
親指キー

まず、ここでの「親指キー」は親指でタイプするキーのことです。 また、以後の文章で頻出する「キー」は物理的なキーのことで、「キーマップ」はキーに割り当てられている役割(CtrlやEnterなど)のことです。

大半の 30% ~ 40% のサイズの左右分割キーボードでは、必然的に親指でタイプするキーマップが増えます。 個人的には、左右分割キーボードでもなく、普通のJISキー配列でも、親指キーを増やすのは良いことだと思います。 私自身が、4 年前くらいまで、JISキー配列のキーボードで、Space, Ctrl, Alt, 英数、かな のキーを親指で押せるようにキーマップ変更をしていました。今思えば、これが現在のキーマップの親指周りのキーマップの元になっています。

親指に仕事を増やさせる意識でキーマップをしていくと、自然と使いやすくなると思います。

少し余分にキー数があるキーボードで慣れる

f:id:uitspitss:20201129150414j:plain
ErgoDox EZ

私は最初から 36キー の MiniDox を使い始めたわけではなく、 MiniDoxを使い始める 1 年ほど前に ErgoDox を使い始めました。この ErgoDox が私にとって最初の左右分割キーボードでした。

2017年の夏前に ErgoDox EZ を使い始めたのですが、この ErgoDox EZ でUSキー配列やレイヤーの使い方に慣れました。 そこから1年後、 MiniDox に移行し始めた頃は、キーマップを MiniDox で使っているのものと同じにして、キータイプを矯正していきました。 自宅では MiniDox 、職場では ErgoDox というのを半年間くらいやっていました。 この経験の中で、どのキーがタイプしにくい、なくても困らないキーなのかなど、試行錯誤ができました。

キーがいっぱいあると全部使わないともったいないという気もしてくるのですが、使わないキーに Artisan キーキャップを付けておくとかでも良いと思います。

ここで余談ですが、当時、 id:ymotongpoo さんの「ErgoDoxを購入して人生がバラ色になった」 の記事を見て、 ErgoDox EZ を購入しました。 id:ymotongpoo さんはこのアドカレの20日目に登録されています。楽しみですね!

レイヤーを使いまくる

f:id:uitspitss:20201130211433p:plain
親指キーの「RAISE」「LOWER」がレイヤー切り替えキー

言わずもがな、レイヤーを増やさなければ常用できませんので、レイヤーを使いまくります。 個人的な好みですが、レイヤー変更キーは Tap-Hold (タイプしている時間でキー入力が変わる)ではなく、他のマップと兼ね合わせない専用キーにしています。 他のキーボードのキーマップでもそうなっていることが多いというのもあるのですが、通常では Shift キー同時押しで入力する文字など(%$などの記号等)も別レイヤーのキーマップに当てます。 これは、コーディングをしていてもレイヤー変更キーと同時押しということが多くなるので、下手に Tap-Hold や Tap Dance などにすると、タイプ感が悪くなるのかなと漠然と思っています。 その分、他のキーに SandS(ShiftとSpaceのTap-Hold) や Ctrl と Enter の Tap-Hold などをマップして、バランスを取っています。

Emacs/Vim キーバインドに慣れる

前のセクションであんなことを書きながら、このセクションで取り上げる Ctrlキー や Cmdキー は Tap-Hold で割り当てています。 あまり同時押しの問題はないのかもしれないと思い始めました…。どうなんでしょう…。

この Emacs/Vim キーバインドは、すべての操作をキーボードでやりたい人が一度は通る道だと思います。 私ももれなく Emacs に陥り、 Emacs キーバインドが体に染み付いてしまいました。 かれこれ、10年近く Emacs キーバインドで操作してきたので、カーソルキーなどを使うことがほぼありません。 それ故、カーソルーキーのキーマップは使用頻度が少ないレイヤーの端っこに追いやられています。 たまに Emacs キーバインドが効かないアプリケーションがあるので、それ用で用意しています。

ということで、Emacs/Vimキーバインドに慣れると、カーソルーキーやHomeキーなどのキーマップがほとんど不要になるので、キーマップやキー数の節約ができます。

ポインティングデバイスにこだわる

そうは言っても、ウェブブラウザ(ewwなどを除く)などはGUI志向なので、ポインティングデバイスにもこだわりましょう。 ここ10年くらいは、トラックボール と Magic Trackpad を使っています。 左右分割のキーボードでは、左右のキーボードの間にデバイスが置けるので、フットプリントが固定されているデバイスのほうが相性がよいですね。 また、 Mac + Magic Trackpad では、ワークスペース切り替えなどがジェスチャーとして割り当てられるので、そのあたりもキーマップの節約に役立ちます。 Mac 以外でもトラックボールについては、キー数が多いものであれば、それだけマップができるので、同じくキーマップの節約になりそうですね。

F13 ~ F24 のキーに割り当てる

f:id:uitspitss:20201129151119p:plain
QMKでFキーに割り当てる

F1 ~ F12 のキー(キーマップ)には、OSによって何かしらの処理が当たっていることが多いので、OSやその他のアプリケーションにも登録しやすいのが F13 ~ F24 キーです。 私の Mac では F20 ~ F24 がOS内のショートカットに登録できなかったので、もしかすると、数値の大きいFキーは割り当てができないことがあるかもしれません。 とにかく、よく使うアプリケーションは登録してしまいます。使っているうちに合わなければ、QMKなりで再度リマップしておけば良いので。

また、前述の Emacsキーバインドに関わるのですが、Emacs キーバインドでは、Ctrl や Cmd 、 Alt の組み合わせになっていることが多いので、 それらのキーバインドとぶつかることが少ないのも、Fキーに割り当てる利点かもしれません。

アプリにもこだわる

f:id:uitspitss:20201129150631p:plain
Karabiner-Elements

私は、 Mac を使っているので、このセクションは Mac に限った話になってしまいます。 (QMK Firmware は前提みたいなもので、以下のリストには入れていません)

  • Karabiner-Elements
    • 言わずと知れた、キーマップ変更アプリケーションです。
    • 前述の親指キーを増やすで書いたキーマップ変更はこのアプリケーションで実現してました。
    • 基本的には、QMK でキーマップをキーボードに直接入れたほうがよいのですが、キーマップでコマンドを投げることができたりするので、よりOS寄りで拡張したい場合は役立ちます。
      • 私は open /Application/*** という感じで、よく使うアプリケーションのフォーカス切り替えに使っています。
  • Rectangle
  • HyperSwitch
    • Cmd + Tab でウィンドウを切り替えると思うのですが、プレビューが表示されたり、設定を細かくできたりと便利さが増します。
  • Moly Keys
    • これは Chrome Extension です。
    • ドキュメントを読むときなどは、エディタの横に並べて、フォーカスを切り替えながら、 Emacs キーバインドで快適にページスクロールができます。
    • 同じ作者の別の Chrome Extension で Moly HaHというのもありますが、こちらもキーボード志向のみなさんには良いですね。

サブにメディアキーボードという選択肢

f:id:uitspitss:20201129143318j:plain
Keebio BDN9

最後に、サブのキーボードについてです。ここまで、キーマップを駆使したりしていたのに、結局のところ、キー数を増やしてしまっているじゃないかと思われるかも知れません。

ただ、このセクションのサブとしているキーボードはメディアキーボードです。 ここでのメディアキーボードは、音楽プレイヤーアプリケーションなどの特定アプリケーションを操作することができるキーボードです。(フィーチャーキーボードとも言えそう。)

私の場合は、 Shift というワークステーションアプリケーションを使っています。 この Shift 内のアプリケーション切り替え操作、また、PC全体の音量変更・ミュート切り替え、Spotify の曲送り/曲戻し という具合で特定のアプリケーションの操作のために置いています。 音量調整などは、ロータリーエンコーダー(つまみで回せる)のほうが操作しやすいです。

メインのキーボードのキーマップに入れるには使い方が限定的すぎる、最悪なくてもそこまで困らないけど、あればうれしいみたいなキーマップを当てています。

最後に

長々と書きましたが、30% ~ 40% のキーボードを普段使いされる方が増えることを祈っています。 また、30% ~ 40% キーボードを使おうと思っている方の背中を押すことができたら幸いです。 最後まで長文駄文を読んで頂きありがとうございました!

さて、キーボード #2 Advent Calendar 2020 の2日目の記事は、

Wataru Sugiura さん「corne chocolateをcorne cherryにする話」 です。

adventar.org

一応、 キーボード #1 Advent Calendar 2020 - Adventar のリンクも張っておきますね。

adventar.org

※この記事は MiniDox で書きました。

f:id:uitspitss:20201129151536j:plain
普段のデスク

WFHで、会社配布のPCとの繋ぎ変えとか頻繁にやっていたので、マスキングテープでどのPCにつながっているのか目印を付けていました。