刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

macOS でも Logicool Options と Hammerspoon で Marble Mouse が快適になった

私が愛用してるトラックボールLogitech Marble Mouse USB (T-BC21)です。

先般の記事に書いたように、古い Marble Mouse は M1 Mac mini でも動作しました。
しかし、残念ながらその動作は期待したものではありません。

  • ポインタ移動の距離と速度のバランスが悪い
  • ボタン(小)の動作が「戻る」「進む」ではない
  • 疑似ホイール機能が使えない

これらは Linux 環境では解決できているので、何とか Mac でも実現したいです。

色々と試したところ、Logicool Options と Hammerspoon の組み合わせが最も快適でした。以下は、その構成についての説明です。

1. 古いデバイスに対応した Logicool Options でポインタ移動が快適に

Logicool Options for Mac が v8.54.147 から古い有線デバイスにも対応したとの事。
現行機の Logicool Trackman Marble USB (TM-150n) も対象だったので、ダウンロードして試してみました。

古い Logitech Marble Mouse USB (T-BC21) は "USB Trackball" として認識しました。
設定できる項目は少ないですが、目的は果たせます。

f:id:infinity_volts:20210904162733p:plain

左右のボタン(小)には初期値で「戻る」「進む」が割当てられています。

"Pointer speed" を調整したところ、ボールによるポインタ移動が快適になりました。

2. Hammerspoon で右ボタンを押下したまま疑似ホイール機能を実現

疑似ホイール機能とは、特定のマウスボタンを押しっぱなし状態のままボールをぐりぐり動かすと、マウスホイールのようにスクロールする機能を指します。

当初、Karabiner-Elements を利用してたのですが、ぎこちないスクロールに不満が募り、利用するのを止めました。

改めて代替案をネットで調べたところ、Hammerspoon が絶讃されてます。

そして、特に参考になったサイトがこちらです。

これらの記事に従い、Hammerspoon をインストールした後に、lua スクリプトを構成すれば、右ボタン(大)を押しっぱなし状態で疑似ホイール機能を実現できます。

各サイトの記事に感謝です。

3. 現在の構成

Logicool Options と Hammerspoon を設定した結果、このような動作になりました。

ボタン イベント処理 機能 動作
左ボタン(大) 既定 Left マウスの左ボタン
左ボタン(小) Logicool Options Back 1クリックで「戻る」
右ボタン(小) Logicool Options Forward 1クリックで「進む」
右ボタン(大)

既定

+

Hammerspoon

Right マウスの右ボタン
または、
押下したまま、同時にボール
を動かすと、水平・垂直方向
にスクロールする。

現状、Logicool Options のポインタ移動が私にとっての最善と理解しました。

他の代替案もありますが、最も好みなのが Logicool Options。
Logicool Options を導入すると、他に影響がありますが、それは受け入れます。

私としては Linux 環境と同様に疑似ホイール機能を右ボタン(小)に設定したいのですが、それは無理でした。

結局、Logicool Options を前提にすると、この構成でしか成立しませんでした。

....

元々は Karabiner-Elements を導入していました。
特にキーイベントやマウスイベントを確認できる Karabiner-EventViewer は OS の理解を深めるのに役立ちます。

しかし、Logicool Options を導入すると肝心のイベント処理を奪われてしまいます。
左右のボタン(小)のマウスイベントは Karabiner-EventViewer では反応なしです。

Logicool Options がイベントを処理しつつ、パススルーしてくれれば対処できるのですが、現状は不可能です。というか、それも微妙なので、現状が正解かも。

また、Karabiner-Elements には疑似ホイール機能の他にも、左右のボタン(小)に「戻る」「進む」を割当てる Change button4,5 back,forward があります。

しかし、これも一長一短です。
Karabiner-Elements 側でマウスイベントを連続したキーイベントに置き換えてしまうため、Hammerspoon 側のスクリプトではマウスイベントとして取得できません。

いずれにしても、私が求める Linux 環境と同様には設定できませんでした。

4. 余談

まだ Mac が 32bit の OS X だった頃、Marble Mouse 用に LCC を利用してました。
その頃もポインタ移動はキビキビと動作して快適でした。

いつからか Marble Mouse は対象外になり、とても不便に感じてました。
一方で Magic Trackpad の有用性に傾倒していった事もあり、Mac では Marble Mouse を利用しなくなりました。

しかし、今回の対応で久しぶりの Marble Mouse は快適そのものです。

Linux 環境より快適になってしまい、たまに Linux 環境で操作ミスをしてしまうのが、新たなストレスになりつつあります。
Linux 環境を Mac 側に寄せてみたのですが、それはそれで無理ゲーでした。

....

近い将来、Logi Options+ のリリースが予定されています。
そこで細かな設定ができると良いのですが...

無理かなー、どうだろうなー