こんにちは、アスビーです。
みなさん、KeyBall生活を謳歌しておりますでしょうか。
私は公私ともに謳歌しております。KeyBall最高!KeyBall最高!KeyBall最高!
さて、表題の件についてですが、みなさんキーボールを使ってて、片手で操作したいなぁって思ったことありませんか?私は結構あって、スマホいじりながらとか、左手で肘付きながらだらりと操作したいって思うことがありました。
でもKeyBallって構造上片手で操作しづらい設計になってるじゃないですか。
大体の人は親指のキーのどこかにクリックキーやスクロールキーを配置すると思うんですけど、片手で操作出来るようにしたとしても、トラックボール側には2つしか親指キーがないので左右クリック、またはスクロールのどれかを捨てることになると思うんですよ。
(私は親指キーの両サイドの内側をそれぞれ右、左クリックにしています。マウス操作を親指キーにしてない人がいたらごめんなさい🙇)

なので片手で操作しようと思うと困りますよね。
そんなあなたのために私がやってる、「片手のみでマウスとして使えるようにする方法」を伝授します。かれこれ一年くらい運用してますけどめちゃくちゃ便利ですよ。
ただし、QMKファームウェアのカスタマイズが必須でREMAPだけで設定できないのでそこのところはよろしくお願いします。(頑張れば行けるかもしれないけど私はやり方わからんのです。)
QMKファームウェアのカスタマイズのやり方がわからない方は調べれば出てくると思うのでそちらをご参考にやってみてください。
一応私も簡単に記事書いてるのでよかったら読んでみてください。
Keyballのキー配置をファームウェアから変えた際の気づきや注意点
これ、できるようになるとマクロとか「長押し日本語入力」とか特殊なキー作れるようになってKeyBallがもっと最高になりますよ。長押し日本語入力はエンジニアとかブログ書く人とか頻繫に日本語とアルファベット切り替える人にめっちゃおすすめ。
概要とやり方
概要
これを設定すると片手でKeyBallのトラックボール側をマウスとして操作できるようになります。
具体的には下記のようになります。
画像右下の「パイプキー」を押すとマウスモードへ移行し、keyballをマウスとして操作できるようになります。「パイプキー」押下後は、Jキーが左クリック、Kキーがスクロール、Lキーが右クリックとして機能するようになります。(普通のマウスと同じ操作感)

マウスモード移行後はパイプ、J、K、L、以外のキーを押下したらマウスモードを解除できるようにしています。
私はあまり使わないキーとしてパイプをマウスモード用のキーとして設定していますが、このキーの位置はどこでも大丈夫です。
動画で動きをみるとこんな感じ。
結構便利そうでしょ?
やり方
片手マウスモードは基本的に全部キーマップ上のコードで完結するのでコードを記載します。下記は編集したいkeymap.cに記載してください。
1.マウスモード用のレイヤーを作成する
マウスモード用のレイヤーを作成します。
この時、J、K、L以外のキーはCH_KEYBOARDを指定します。CH_KEYBOARDはオリジナルのキーで後で定義します。なんかLALT入ってますけどなんで入れたのか覚えてないです。多分いらないです。(画像クリックで拡大できます。)

KC_BTN1は左クリック、MO(3)はスクロールレイヤー、KC_BTN2は右クリックです。
MO(3)がスクロールなのはKeyBallはデフォルトで3つ目のレイヤーがスクロールレイヤーに設定されているので長押ししている間だけスクロールレイヤーを利用するようにします。
スクロール用のキー作ればいいじゃんって思うかもしれないですが、調べた感じ結構めんどくさそうだったんでスクロールレイヤーをそのまま使うようにしてます。スクロール時は他のキー入力することないだろうし。
注意点として、マウスモードに設定するキーはレイヤー変更後再入力しちゃうのを防止するために「XXXXXXX」を設定して無効にしてください。
2.マウスモード用のキーと解除用のキーを定義する
レイヤーの前に画像のようにenum部分を作成して、「CH_MOUSE」と「CH_KEYBOARD」を定義します。ここで定義することでオリジナルキーを作成できるようになります。

3.オリジナルキーの動作を定義する
そしたら下記コードをファイル末尾に追加して「CH_MOUSE」と「CH_KEYBOARD」の動きを定義します。それぞれキーを押下したらレイヤーを切り替えるだけのコードです。レイヤー番号は最初に作成したレイヤーの番号にしてください。

なんでこれだけのことをわざわざオリジナルキーを定義して行うのかというと、デフォルトで設定されているキーだけだとうまく動作しなかったから、だった気がします。(一年前に書いたコードだから詳しくは忘れちゃった。)
4.マウスモード用のキーを設定する。
最後に、作成した「CH_MOUSE」キーを登録して完了です。設定する際はデフォルトのレイヤー(0)に設定してください。ホールドで切り替えるレイヤーとかに設定しちゃうとlayer_offで戻したときに変なレイヤーに戻る可能性があるので、何も操作しないでもデフォルトで利用されているレイヤーに設定することをおすすめします。

また、先ほどと重複した内容ですが、ここで設定したキーのレイヤー変更後のキーは「XXXXXXX」にしてください。
あとはhexファイル作成しProMicroに書き込んでください。
これでマウスモードの設定は完了です。
快適なKeyBall生活をお過ごしください。
おわりに
以上がマウスモードの設定方法になります。
めちゃくちゃ便利なんで良かったら設定してみてください。
では。
蛇足
今回の記事を書くにあたって、きっかけになった悲しい出来事があったんですよ。
ProMicroがMogeMicroになったんですね。

はい。話には聞いていましたけど、まさかモゲるとは。ちゃんとケーブルを磁石のやつにして対策してたつもりだったんですけど、だめだったみたいです。
とりあえずその場しのぎとしてモゲてない側のProMicroを使ってたんですけど、そのProMicroのファームウェアが古くてマウスモード実装する前のファームウェアだったんですよ。
だから不便で不便で仕方なくて。マウスモードってめちゃくちゃ便利だったんだなって気づいてこの記事を書くに至りました。
現在はモゲてないProMicroとモゲマイクロを左右交換して使ってます。現状左側のProMicro(モゲマイクロ)は書き込みできないけどまぁ問題なし。ついでに交換の際にキーを拭いたりゴミ掃除したからぼくのKeyBallはピカピカさ。
みんなもモゲマイクロには注意しよう。


