Cirque Glidepointのfirmwareを改造している話

前々から書こう書こうって思ってましたが、やっと重い腰を上げました。 結構前からやっていたものの、そもそもglidepointが使えなかったので日の目を見なかったやつです。 html: <!–more–> 元々のfirmware cirque pinnacleについては、元々zmkfirmwareの主要開発者が作成しているものがあります。 https://github.com/petejohanson/cirque-input-module 最初はこれを利用していたのですが、色々と機能を追加したくなってきたため、forkしています。 https://github.com/derui/cirque-input-module 改造したこと まず、absolute modeを有効にしたかったので、このPRを取り込みました。なぜabsolute modeがやりたかったのか・・・?というところなのですが、Glidepointは円形のpadをしているなかで、「どういうふうにスクロールさせたら丁度いいのか」と考えたところ、大きく2つの案が出ました。 トラックパッドよろしく二本指でスクロールする Windowsとかのトラックパッドにある、エッジ部分のスライドでスクロールする この内、前者については、glidepointの基本モードである relative mode において対応できるのですが、二番目をやろうとすると、edge検出が必要なので、絶対座標が必要になります。で、今回はせっかくなのでedgeで指をくるくる回したらスクロールするようにしてみたかったのです。 エッジスクロールの実装 実装としては以下のPRになります。 https://github.com/derui/cirque-input-module/pull/1 いくつか使いづらい点などもあったので、追加で改造していますが、基本的には以下のように動作します。 所定の位置が最初のtouchであるかを確認する touchされているが、所定の位置でない場合は、次にtouchされるまで何もしない 所定の位置である場合、初期化 次にカーソルを動かしたら、 一つ前の位置との角度を取る 該当の角度(ラジアン)に対応する方向にスクロールのイベントを発行 と、結構シンプルな作りにしています。 加速度をベースにしたカーソル移動 Macbook/Appleのトラックパッドなど、現代のトラックパッドは基本的に加速度ベースでカーソルを移動しています。ゆーっくり指を動かしてトラックパッドを横断したときと、シュッと横断したときでは移動量が違うのがわかるかと思います。 オリジナルの実装では、シンプルに移動量がそのままわたっている形になっていましたが、ゆっくり動かそうとしても機敏すぎてつかいづらい・・・というのがありました。 加速度については、relative modeでもわかるのですが、改めて実装しています。なお、実装方針などはClaude Codeで確認しながら実装しました。こういう数式のパターンにハマりやすいのは、調べるより早いですね。 ただ、加速度ベースの移動は、いい塩梅を探すのが大変難しい・・・という難題があります。これについては継続して確認しているところではあります。Xiaoのリセット難易度が大変高いの、なんとかなりまへんかね 🤔 firmwareは怖くない(間違うと怖いけど) 最近のC言語は、古とは違って制約も少なくなり、だいぶ書きやすくなってます。zmkの場合は、複雑になりがちなポインタのポインタ・・・といったものがAPI上に登場することも少なく、だいぶ素直だと思います。zephyrから来ているマクロを把握するほうがよほど大変という・・・。 ちょっとここが・・・というのがあれば、当然オリジナルへの還元も視野に入れつつ、自分でいじってみるのも一興ではないでしょうか。

September 13, 2025 · derui

ケースとキーキャップまで自作したキーボードを作りました

残暑が残暑というか「普通に夏だね?」って感じですね。もう暑いのはいいです。 この2ヶ月くらい格闘してたものができましたので、それについて書こうかと思います。 ...

September 6, 2025 · derui

3Dプリンターでchoc v2のキーキャップを作った

今年の夏も明らかに暑いですね。これが撹乱なのか、それとも定常になるのか・・・。 最近いいおもちゃを手に入れたので、それを使ってみたよ、という話です。 ...

August 9, 2025 · derui

新しいキーボードを作った

なんというか色々と騒がしい世間、いかがお過ごしでしょうか。 さて、ここ数ヶ月かけて作っていたものがやっと完成したので、それについて書いていこうと思います。 ...

July 5, 2025 · derui

最近のAIを使ったProgrammingについて

すっかり初夏の感じになってきました。半年すぎるのが早すぎます。 すっかり間が空いてしまいましたが、今回は最近のお仕事で使ってるものとかを簡単に書いてみようかと思います。 ...

June 22, 2025 · derui

基板設計から自分でkeyboardを作ってみた

気づいたら新入社員が入って来てました。3月はどこに行った? :thinking: 3月はずっとタイトルにあるものを作っていました。やっと形になったので、記事にしてみます。 ...

April 12, 2025 · derui

jotaiを利用したlogicとDIの関係

今年の2月は久しぶりに冬らしい感じですね。やはり昔より寒さに弱くなった気がします。 最近TypeScriptのappを、reduxからjotaiで書き直し終わったので、その過程で考えたりやったことをとりとめもなくまとめて見ようかと思います。 ...

February 16, 2025 · derui

Ollamaで利用するmodelのcontext sizeを強制的に変更する

年末は色々忙しいな、と思っていたら年が明けていました。今年もゆるくやっていきます。ゆるすぎではないかとも思いますが。 ...

February 1, 2025 · derui

tabbyをvulkanで使えるようにしてみた

暖かくなったり寒くなったりと格好が定まりませんね。 さて、最近tabbyというツールを知ったので、NixOS上で使ってみました。 ...

November 14, 2024 · derui

Ollamaをnixos上で使えるようにしてみる

やっと秋めいてきましたが、なんか台風がきたりと落ち着かない感じですね。 今回NixOSに移行したことで、色々やっても戻せるという確信が大体ついたので、Local LLMに手を出してみました。 ...

November 2, 2024 · derui