ぴろりのくせになまいきだ。

世間に平和はおとずれなぁい

ロータリーエンコーダの使い道を考える

ロータリーエンコーダとは?

皆さんのキーボードにはロータリーエンコーダはついていますか?
ノブがついていて、回転させることで何らかの動作をさせるものです(下記画像参照)。

私は、Ergotonic49を組み立てる際にロータリーエンコーダを使ってみて、思ったより使い勝手が良かったので、その後設計したキーボードには可能な限り搭載するようにしています。

Ergotonic49(by Hanachi)
SLIDE62
Raven46
CygSUS

見ていただいてわかるように、私の設計したキーボードにおいては、基本的に親指付近にロータリーエンコーダを搭載するようにしています。また、ロータリーエンコーダに取り付けられるノブのサイズは、大き目のものが取り付けられるように設計しています。
すなわち、ロータリーエンコーダを常用するような思想で設計をしており、実際にかなり高い頻度でロータリーエンコーダを回してキーボードを使っています。

しかしながら、私の知る限りでは、ロータリーエンコーダの使い道について、あまり詳細な検討がなされていないように思いました。また、積極的にロータリーエンコーダを使おうという思想のキーボードもあまり*1*2見かけないように思います。

そこで、私が思いつく限りでロータリーエンコーダの使い方を挙げ、ロータリーエンコーダをぜひ使っていただきたい、という趣旨の記事を書こうと思いました。

参考サイト

ロータリーエンコーダの活用方法については、堕落猫さんの記事と重複する部分もあるかもしれませんが、主に私の使い方を記載したいと思います。
kbdbuild.vercel.app

また、ロータリーエンコーダのハードウェア的な仕組み、および、ソフトウェア的な実装については、monksoffunkさんの以下の記事が非常に参考になります(お世話になりました)。
レイヤー毎に異なる動作を割り当てられると非常に便利ですので、ぜひそのようにしてみてください。
25keys.com

具体的な活用方法

アローキー

私のキーボードの主な使用用途は、日本語による文章作成です。文章を推敲しながら作成する際には、カーソルを移動させる場面が多いと思います。
そこで、私は、右手のロータリーエンコーダの反時計回りを「→」に、時計回りを「←」に振っています。
また、左手のロータリーエンコーダの反時計回りを「↑」に、時計回りを「↓」に振っています。

アローキーは、日本語の変換候補の選択にも使えますので、特に上下のアローキーは使用頻度が高いです。
また、ちょこちょこ直しながら文章を作成する際には、左右のアローキーもよく使います。もちろん、Shiftキーを押しながらロータリーエンコーダを回せば、範囲選択ができます。

私の設計したキーボードの場合、ホームポジションから手首を動かすことなく、中指の下あたりまで親指をスライドするとロータリーエンコーダにアクセスでき、親指のみで回転させることができます。
そうすると、文章作成時において、キーボードから手を放す回数が減り、手首を移動する回数も減らせています。

ロータリーエンコーダは、機械式であると、たまに入力が入らないことがありますので、必ずしもお勧めはできませんが、慣れてしまえば非常に使い勝手がよいものです。
ちなみに、体感的な話で恐縮ですが、RP2040-zeroとEC11系の組み合わせでは、入力されないという現象の発生する率が低いように思います。

Home, End, PgUp, PgDn

これも文章作成時に便利なので、私のキーマップでは、第2レイヤー内に入れています。
文章閲覧時などにも、PgUp, PgDnは便利かもしれません。

スクロール

QMKでは、マウスボタンの入力に対応しています。
QMKのマウスボタンの中には、ホイールがあり、これも便利なので、私のキーマップでは、第3レイヤーに入れています。
もしかしたら、トラックボール付きで、ロータリーエンコーダを備えるキーボードをお使いの方は既に使われているかもしれません。
マウスに手を伸ばさなくてもよい場面が増えるので、個人的には結構よい選択だと思っています。
なお、私のキーマップでは、右手のロータリーエンコーダで左右のスクロール、左手のロータリーエンコーダで上下のスクロールにしています。

アプリケーション切り替え

QMKなどでは、同時押しされたことにすることも可能です。
したがって、「Alt+Tab」「Alt+Shift+Tab」ももちろん割り当てることができます。
これも便利なので、私のキーマップでは、第4レイヤーに入れています。
マウスに手を伸ばさなくてもよい場合が増えるので、これもよい選択だと思います。

仮想デスクトップ切り替え

Macをほとんど使ったことがないので、Macにも同様の機能があるはず(むしろMacのほうが先発)という認識がある程度ですが、Windowsでは、10から仮想デスクトップという機能があります。
これの切り替えのショートカットは、「Win+Ctrl+→」「Win+Ctrl+←」です。
これも結構使うようになったので、私のキーマップでは、第4レイヤーに入れています。
そもそも仮想デスクトップが便利なので、ご存じでない方は利用を検討されてはいかがでしょうか。

その他

以上が、私が普段使っているロータリーエンコーダの割り当てです。一般的なロータリーエンコーダのイメージからすると、やや特殊な使い方になるかもしれませんが、上記の割り当ては個人的に気に入っています。
以下、堕落猫さんの記事の内容とも一部重複しますが、便利そうなものを挙げていきたいと思います。

  • 拡大・縮小「Ctrl+マウスホイール」
  • ブラウザのタブ移動
  • 戻る・進む
  • Backspace・Delete*3
  • 元に戻す・繰り返し「Ctrl+z」「Ctrl+y」
  • マウスのカーソル移動
  • ウィンドウ操作「Win+上下左右」
  • 範囲選択「Shift+左右」
  • 音量調整
  • LEDの明るさ調整
  • レイヤー切り替え*4

まとめ

ロータリーエンコーダは、結構色々な使い方が想定できると思います。
特に、対になる動作を割り振ると直感的に使えるのではないかと思います。
ぜひ、皆さんもロータリーエンコーダを搭載したキーボードを設計してみてください。個人的には、中指列または薬指列の下あたりに配置するのがおすすめです。
また、ロータリーエンコーダを搭載できるキーボードを組み立てる際には、ロータリーエンコーダを搭載し、様々な機能を割り当ててみてください。

この記事は、親指でロータリーエンコーダを回せるCygSUSで書きました。

*1:私の知る限りでは国内ではこれ以外ないような気がします(あったらごめんなさい。)。Re Keyboardを作った話 - CyberDeckArsenal また、海外だとこれは認識しています。Kyria rev3 PCB Kit — splitkb.com

*2:他にもありましたごめんなさい(2023年5月7日公開後追記)自作キーボード#2「The End Custom」ビルドガイ|YMG Works

*3:2023年10月9日追記

*4:どこかで実際に採用されているのを見た記憶があります。私だったら、右回転で「TO(Ln)」、左回転で「TO(L0)」のような割り当てにするかもしれません。