2023年02月20日

【自キ】英かなの切り替えをトラックボールで?

トラックボールで出来ないか?
という面白そうな問い。
https://twitter.com/d_kamiichi/status/1627253744898543616?s=20


僕的には薙刀式の、
「FGで英数、HJでかな」でFAなのだが、
もっと頻繁に切り替えたい時、
トラックボールで、
となるとなかなか面白い課題だと思った。

「左親指のなにかをHOLDでトラックボール左右」
でもいいのかも知れないが、
トラックボール単体でやれると面白そう。

で、思い出したのが、
「クルリと円を描く」操作法。


トラックボールでの操作を、

XY移動→マウスのXY移動、
ひねり→ホイールスクロール、
円を描く→半時計円で英数、時計円でかな

のように定義できないか?


DvorakJで、
「マウスをぐるぐる円を描くようにすると、
ホイールスクロール(逆回転で逆転)」
というのが実装されてたから、
原理的にはできると思う。

たとえば→↓←↑を順番に、
1秒?以内に検知すると、
みたいな判定条件を書けそうだね。
ザンギエフのスクリュー成立みたいなルーチンになるだろう。
ザンギのスクリューは3/4回転でいけるんだよな。

始動はどの方向からでもいいから、
一周をうまくやったときだけコマンド成立、
みたいに組むと上手くいくだろう。
この辺はcでうまく組めるか、のほうがでかそう。
(僕なら実力がないので、
4方向で個別に書いちゃう泥臭い実装になる…)


あと普段やらないボールの動きに定義する?
Vと^みたいな動きとか、<と>みたいな動きとか、
Zと逆Zみたいなのとか。
単純に右ダブル(→←→)とかでもいけるかな。

僕はスト2でパッドでスクリュー出せたので、
一回転コマンドがいいかなあ。

ヨガフレイムと逆ヨガフレイムコマンドでもいける?
←↓→と、→↓←。
昇竜(→↓\)と逆昇竜(←↓/)もありだけど、
俺昇竜拳出せないので。笑


あとは、
ものすごく速く右に回転すると、
みたいな閾値を超えるほどの速い動きとか。


人差し指トラックボールなら、
迷いなくひねりで英かな切り替えかな。
親指トラックボールなので、色々考えてみた。

やっぱ円をクルリと描くのが、
操作上わかりやすそう。
実装は大変そうなので任せた…
(どこかに誰かのコードがあるかも)
posted by おおおかとしひこ at 09:06| Comment(4) | TrackBack(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ありがとうございます!
数日前からトラックボールでのマウスジェスチャー導入を検討していてQMKドキュメント等も見てましたが......いまいち分かりませんでした。

「円を描く」をシュミレーションしてみたら非常に良い感じでした。普段から意味なくクルクル回してしまってるので、それができなくなりますが......。
「ひねり」というのはどういう状態がイメージできなかったのですが、斜めということですか??
Posted by かみだい at 2023年02月20日 11:03
>かみだいさん

人差し指トラックボールで、
鉛直軸に対して時計/半時計する操作をイメージしてます。
スクロールリングの代わりみたいな。

ソースコードは見てないので、
どう動きを検出してるかはわからないですが、
三点の検知ならZ軸まわりの回転は検知できるはず。
ただKeyballの位置だと、
どこをその軸に取るか、何指で操作するかは難しいかもですね。

トラックボールグルグル回しで考えるのはよくわかります。
大きい円と小さい円を全体の秒数で区別できないかな…?
Posted by おおおかとしひこ at 2023年02月20日 11:35
なるほど!
keyballだと難しそうではあります。テンティングすると軸が変わるのも厄介ですね。

ぐるぐる試してみましたが、どこのキーをトリガーにするかでも変わりますね。あとはQMKで実装できるのかどうかですが...調べてみます。
Posted by かみだい at 2023年02月20日 14:52
>かみだいさん

結構メモリ食うかもですね。
プロのエンジニアならメモリ食わない実装とか出来そうですが、
まずはLED使わないとかで試してみては…
Posted by おおおかとしひこ at 2023年02月20日 16:19
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック