macOS Sierraで5ボタンマウスを使う with HammerSpoon
日々プログラミング以外の作業も多いので、エレコムの5ボタンマウスを使っている
エレコムのマウスのためにエレコムマウスアシスタントというドライバをいれたところ、アプリによって中ボタンのクリックが効かなくなる現象に遭遇した( #Unity , #Blender ) 両方共画面を平行移動する操作を割り当てているので出来ないと非常に困る
しかしドライバを消すと、ボタン4、5が使えなくなる
ボタン4、5は主にChromeで戻る、進むに割り当てている
Chromeのショートカットは、cmd + [, cmd + ]である
解決法
エレコムマウスアシスタントをアンインストールする
以下のスクリプトを書く
code:~/.hammerspoon/init.lua
-- US配列版
local function mousePress(eventobj)
if eventobj:getButtonState(4) then
hs.eventtap.event.newKeyEvent({'cmd'}, ']', true):post()
hs.eventtap.event.newKeyEvent({'cmd'}, ']', false):post()
end
if eventobj:getButtonState(3) then
hs.eventtap.event.newKeyEvent({'cmd'}, '[', true):post()
hs.eventtap.event.newKeyEvent({'cmd'}, '[', false):post()
end
return false
end
hs.eventtap.new({25}, mousePress):start()
しかしなぜか正常に動かない!
printを差し込んでイベントを見てみたが、分岐にはちゃんと来てる
は???
事のの真相
どうやらJIS配列だと、[だと思っているキーは]で、]だと思ってるキーは\らしい
なので、下記のように書き換えると正常に動作した
code:~/.hammerspoon/init.lua
-- JIS配列版
local function mousePress(eventobj)
if eventobj:getButtonState(4) then
-- 進む
hs.eventtap.event.newKeyEvent({'cmd'}, '\\', true):post()
hs.eventtap.event.newKeyEvent({'cmd'}, '\\', false):post()
end
if eventobj:getButtonState(3) then
-- 戻る
hs.eventtap.event.newKeyEvent({'cmd'}, ']', true):post()
hs.eventtap.event.newKeyEvent({'cmd'}, ']', false):post()
end
return false
end
hs.eventtap.new({25}, mousePress):start()
これで小一時間消耗した
休日なのにデバッグ作業をしちゃったよまったく
https://gyazo.com/e677e45ae9635030074c68c1bf127087
うぇーい🍺