Hammerspoon

macOS Sierraで5ボタンマウスを使う

Sierra以前ではKarabinerを使っていたが、SierraではKanabinerは使えない。かといってその代替であるKanabiner-elementsでもマウスボタンのバインドは今のところ出来ない。なのでHammerspoonを使って設定する。

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()

こんな感じで設定すればOK。自分は5ボタンのうち2つのボタンをブラウザバックフォワードに割り当てている。Chromeでブラウザバックやフォワードのショートカットキーが ⌘ + [なのでマウスボタンが押されたらそれらのショートカットキーが発火するように設定してる。

参考 https://github.com/tarpdalton/dotfiles/blob/tarp/.hammerspoon/init.lua

追記: 2017/10/4 12:45

キーボードがJIS配列の場合、Hammerspoonが [ などを別のキーと認識してしまうので、上記のスクリプトではうまく動かない。なので下記のような設定が必要。@keroxpさんコメントありがとうございます!
https://qiita.com/shim0mura/items/96fad93b2696bc073d23#comment-f56d88456d43739448ad