Last active
April 16, 2022 14:41
-
-
Save exceedsystem/f691d8f5698e096d03a213d268bd0be0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// License:MIT | |
local buttonNum = 4 -- Left small button is 3, Right small button is 4 | |
local scrolling = false | |
local scrollSteps = -2 -- When negative, it scrolls in reverse. | |
hooksMouseUp = hs.eventtap.new({hs.eventtap.event.types.otherMouseUp}, function(e) | |
if (e:getProperty(hs.eventtap.event.properties.mouseEventButtonNumber) == buttonNum and scrolling) then | |
scrolling = false | |
return true | |
end | |
return false | |
end) | |
hooksMouseDragged = hs.eventtap.new({hs.eventtap.event.types.otherMouseDragged}, function(e) | |
if (e:getProperty(hs.eventtap.event.properties.mouseEventButtonNumber) ~= buttonNum) then | |
return false | |
end | |
scrolling = true | |
local curMousePos = hs.mouse.absolutePosition() | |
local posX = e:getProperty(hs.eventtap.event.properties.mouseEventDeltaX) | |
local posY = e:getProperty(hs.eventtap.event.properties.mouseEventDeltaY) | |
local scrollEvent = hs.eventtap.event.newScrollEvent({posX * scrollSteps, posY * scrollSteps}, {}, "pixel") | |
hs.mouse.absolutePosition(curMousePos) | |
return true, {scrollEvent} | |
end) | |
hooksMouseUp:start() | |
hooksMouseDragged:start() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment