Logitech のキーボード、マウス、その他デバイス向け Linux 管理ツール Solaar
(github.com/pwr-Solaar)- Solaar は、Unifying、Bolt、Lightspeed、Nano レシーバーや USB ケーブル、Bluetooth で接続される複数の Logitech キーボード・マウス・その他デバイスを Linux 上で管理するツール
- Solaar は デバイスドライバーではなく、Linux 入力システムが無視するデバイスの特殊メッセージにのみ反応する
- 主な機能は、レシーバーとデバイスの ペアリング/解除、デバイス設定の構成、カスタムボタン設定、特殊メッセージに反応するルールの実行
- 最新のビルド済みパッケージは Fedora など一部の Linux ディストリビューションの標準リポジトリで提供されており、ディストリビューションのリポジトリに最新版がない場合は Arch、Ubuntu/Kubuntu PPA、NixOS Flake パッケージを利用できる
- Debian、Ubuntu universe、Gentoo、Mageia のリポジトリにも Solaar はあるが、現在のバージョンより 数バージョン遅れている可能性がある
Solaar が管理する Logitech デバイス
- Solaar は、多くの Logitech キーボード、マウス、その他デバイス向けの Linux 管理ツール
- 対応する接続方式は以下のとおり
- Unifying、Bolt、Lightspeed、Nano レシーバー経由のワイヤレス接続
- USB ケーブル接続
- Bluetooth 接続
- Solaar はデバイスドライバーではなく、Linux 入力システムが無視するデバイスの 特殊メッセージにのみ反応する
対応機能
- Solaar はレシーバーとデバイス間の ペアリング/ペアリング解除をサポートする
- デバイス設定を構成できる
- カスタムボタン設定をサポートする
- デバイスの特殊メッセージに反応して ルールを実行できる
- ドキュメントリンク
インストールパッケージ
- 最新のビルド済みパッケージは Fedora など一部の Linux ディストリビューションの 標準リポジトリで提供されている
- ディストリビューションの標準リポジトリに最新の Solaar がない場合は、次のパッケージを試せる
- Arch solaar package: extra リポジトリのパッケージ
- Solaar stable ppa: Ubuntu/Kubuntu 向けパッケージ
- Svenum/Solaar-Flake: NixOS Flake パッケージ
古いバージョンの可能性があるリポジトリ
- Solaar は一部の他のリポジトリでも提供されているが、現在のバージョンより 数バージョン遅れている可能性がある
1件のコメント
Hacker News のコメント
MX Masterを10年以上使ってきて、性能、バッテリー、設計、手になじむ感触のすべてが気に入っている
Windowsで管理用に入れなければならない150MBのLogitechプログラムはまったく気に入らず、不要なテレメトリデータを大量に送っているように感じる
Bluetooth接続の問題にずっといらだっていたところ、数か月前にSolaarを見つけた。Logitechのツールよりインターフェースが良く、シンプルで軽量で、オープンソースソフトウェアの良さがよく出ている
Solaarは30秒でペアリングを処理してくれて、とても満足している
ただしBoltはOS上ではちゃんとしたBluetoothのようには見えないため、バッテリー残量はSolaar内でしか確認できない
数日立ち上げたままにしておくと、CorsairのプロセスはCPU時間がほぼ1時間まで積み上がったが、Logitechは多くても数分程度だった
それを見て、Corsair機器をすべてLogitechか別の製品に替えた
やりたかったのは虹色LEDを消すことだけだったので、次に新しいマウスを買ったらSolaarを試すつもり
これをMacにも移植してくれたらうれしい
今日、マウスドライバでデフォルトで有効になっているAIプロンプトビルダーを見つけた。数か月にわたって入力履歴の権限要求をしつこく拒否した後だったので、なおさらあきれた
Logitechの企業向け「Offline」版を使って、ほとんどの追加プログラムを削除した。この版は外部へ通信せず、追加権限も要求しないという。環境によって異なる可能性はある
https://support.logi.com/hc/en-us/articles/11570501236119-Lo...
本当に妙な世の中だ
https://www.logitech.com/en-us/software/logi-ai-prompt-build...
スワイプイベントを真似しており、標準のMouse ForwardとMouse Backward(M4/M5)として設定できない
https://superuser.com/a/1216049
Windowsでは、アプリケーションごとの動作を一貫させるために、まさにその方式で設定している
ボタンをマッピングでき、組み合わせ入力も追加できる
ただし、戻るボタンを押したまま左に動かしてSpacesを切り替えるようなマウス移動トリガーはまだなさそうで、探しているところ
https://plentycom.jp/en/steermouse/
https://news.ycombinator.com/item?id=29056847
Wacomドライバはアプリケーション名とウィンドウタイトルを収集して送信しており、大きな論争になった後もなお続けている
数ドルの製品だが試用版があり、Homebrewでもインストールできる
https://better-mouse.com
Windowsにもこういう代替手段があるのか気になる
Logitechのマウスは概して良いが、大きな欠点の一つはマクロ機能がオンボードではない点で、ボタン1つを複数キー入力の組み合わせに割り当てることすら、G-Hubのような補助ソフトウェアなしではできない
LinuxにはSolaarとPiper/libratbagdがあり、macOSにはSteerMouseがあって、ボタンの多いマウスにもかなり合うようだ
WindowsでG-Hubの代わりになるものがあるなら、Windowsだけを使う知人や家族にLogitechマウスをずっと勧めやすくなると思う
こういう理由で、以前はRoccatが一番好きだった。マウスでできる機能はすべてオンボードで可能だったので、一度設定してしまえば、使ったソフトウェアを削除しても制限がなかった
ただしハードウェアの品質管理はずっと前から微妙で、Turtle Beachに買収されてからはさらに悪くなりそうだ
とんでもなく高いゲーミングマウスでも同じ
Logitechを買うまで、ボタンが壊れたマウスに遭遇したことはなかった。周囲の人たちも褒めてはいるが、何個買い直したのか聞くと話が変わってくる
マウスのドングルをなくして、そのとき使えるのが Ubuntu だけだったとき、Solaar には本当に助けられた
マウスをキーボードが使っていた同じドングルにペアリングでき、その後は問題なく使い続けている
MX Mechanical Mini キーボードと MX Ergo マウスを使っているが、ドングルが互いに違って互換性がなく、同じドングルにペアリングできない
しかもノート PC 右側の USB-A ポートに挿したドングルは、理由もなく常に遅延が出る
Solaar がこうした問題を解決してくれるのか気になる
会社では無線キーボード/マウスキットを支給している。ノート PC の内蔵キーボードを交換するより安く、ユーザーが反復運動過多損傷を起こす可能性も低いからだ
ジュニアの頃に痛い思いをして学ぶと、まったく笑い事ではない
古い MX Master 2S で Solaar をかなり長く使っている
主にスクロールホイールがクリック感のある動きをやめてフリースピンに移るポイントを調整するのに使っている
Logitech はマウス内にラチェットを制御する電動レバーを入れていて、Solaar にはそれを調整するオプションがあり、とてもうまく動く
手のひらボタンを使った特定のジェスチャーにキーボードショートカットを割り当てられるのもよい
Solaar があるから Logitech を買っている
Solaar の開発者たちがある程度報われるといいし、ここにAI プロンプトビルダーさえ入れば完成という感じだ
マウス設定ユーティリティに AI をどう入れられるのか、まったく見当がつかない
Linux に詳しい人に説明してほしい
自分の理解ではこれは Linux 用ドライバー実装のようなものだが、どうやってPython だけで完全に書けるのか気になる
ドライバーコードは普通 C や C++ で書くし、最近のカーネル開発の新しいやり方は Rust だと思っている
純粋な Python でどうやってこれが動作できるのか分からない
通常の Linux ドライバーが HID メッセージを受け取るために必要な部分を実装し、Solaar はその上でメーカー固有のメッセージを処理する、ということだ
既存の OS のネットワークドライバーの上で、プログラムがメーカー独自の TCP メッセージを送るのに似ていて、そのプログラムがカーネルレベルのネットワークドライバーである必要はない
カーネルレベルで動作しているわけではなさそうだ
ユーザーは IRQ21 が BIOS や他のデバイスで既に使われていないか自分で確認し、その後は各社が決めた独自方式に合わせて、コントローラーと通信する特定のメモリアドレスを読み書きするデバイスドライバーをインストールしていた
今ではハードウェア業界がデバイスの動作方式を標準化したことで大きく進歩した
メモリマップト I/O のおかげで、OS は多くのデバイスドライバーを似たように扱え、読み書き後のメモリ操作だけを処理すればよい
USB ではデバイスクラスを標準化し、通信デバイス、オーディオデバイス、映像キャプチャデバイス、ここでは HID のように動作する
そのためカーネルがドライバー開発の 80% 以上を肩代わりでき、特に Linux の「すべてはファイル」という哲学のおかげでなおさらそうだ
USB ドングルを挿すと、仮に
/sys/class/hid//{control, data}のようなファイルができる例えば
controlファイルに非常に特定の値を書き込んでドングルの RF チャネルを変えると、カーネルがそれを受け取ってデバイスへ送り、.../dataファイルをcatして生のキーボード/マウスデータを得ることもできる理論上は Python で
.../dataファイルを読み取りハンドラーにつなぎ、入力を処理したうえで、マウス移動やキーボードイベントのような OS コマンドを出す形で、デバイスドライバーのように作ることができる核心は入力処理で、この部分はリバースエンジニアリングが必要な難しい作業だ
OS がその部分を処理しないので、通常 Logitech のアプリケーションが担っていたいくつかの役割を代わりに果たしている
無知で聞くのだけど、そもそもキーボードとマウスを管理するアプリがなぜ必要なのか分からない
汎用ドライバーでそのまま対応されるのでは?
例えば MX Master では、6個のボタンがどのイベントを発生させるかを設定できる
K810 はファンクションキーが壊れているかのように特殊イベントを発生させるが、ソフトウェアで本来の F1 のような標準ファンクションキーに戻せる
ここでいう HID++ は Logitech のドングルであり、ときには実デバイスの Bluetooth 対応と組み合わされることもある
Logitech トラックボールの追加オプションとペアリング制御は、このスクリーンショットを見るとよい
[1] https://usercontent.irccloud-cdn.com/file/2cZcZiNk/image.png
こうした機能は USB HID 標準の一部ではないため、どの OS も組み込みでは対応していない
普通はマウスなら DPI とリフレッシュレート、キーボードならタクタイル反応の設定(https://wooting.io/)、ショートカットキーの割り当てといったユーザー設定のためだ
LAN パーティーのように自分のコンピューターではない場所でも設定を一貫して読み込む必要がある場合には、あれば便利というレベルを超えて、ほぼ必須に近い
Solaarを何年も使っていますが、うたわれている通りに動作し、問題はありませんでした
便利なプロジェクトを継続してメンテナンスしてくれてありがとうございます
内蔵タッチパッド付きの Logitech K400 キーボードとSolaarを何年も使っています
TVに接続したRaspberry Piで動かしており、問題なくとてもよく動作しています
MacやWindowsでLogitechのソフトウェアに接続したこともありません