Utility to identify what mouse buttons are being pressed?
-
30-04-2021 - |
Question
Is there a utility for mac to show what mouse buttons are being pressed?
Similar utilities for Windows are: Spy++ and WindowSpy from AutoHotKey.
For Linux I have used: xinput --query-state
La solution
Hammerspoon can be scripted to do this.
- Install Hammerspoon and run it.
- Open
System Preferences
, go toSecurity & Privacy
and enableHammerspoon.app
underAccessibility
. - Click the Hammerspoon menu icon and select
Open Config
. Your default code/text editor will open to~/.hammerspoon/init.lua
. - Enter something like the following text which uses the Hammerspoon hs.eventtap.new API to listen for events.
detectMouseDown = hs.eventtap.new({
hs.eventtap.event.types.otherMouseDown,
hs.eventtap.event.types.leftMouseDown,
hs.eventtap.event.types.rightMouseDown
}, function(e)
local button = e:getProperty(
hs.eventtap.event.properties['mouseEventButtonNumber']
)
print(string.format("Clicked Mouse Button: %i", button))
end)
detectMouseDown:start()
- Save the file.
- Click the Hammerspoon menu icon, select
Console...
and clickReload config
on the console window. - Now, whenever you click anywhere you'll see a log entry in the Hammerspoon Console!
(So far, this works for any type of touchpad click/tap or external mouse click.)
Autres conseils
Karabiner-EventViewer is another option that can log the information you are looking for. Although it comes as part of Karabiner-Elements you can use it independently to monitor keystrokes and mouse button presses.
You can examine keyboard and mouse events by using EventViewer. Launch Karabiner-EventViewer from Launchpad.
Input events will be shown when you type keyboard on EventViewer or press pointing buttons on Mouse Area.
--source Karabiner-EventViewer manual
In practice I find it logs keys and clicks made any where whilst it is running.
I'm not sure if it would work correctly, but xinput
is included in XQuartz, an implementation of the X Window System for macOS. You can invoke it via Terminal.