aboutsummaryrefslogtreecommitdiffstats
path: root/mouse.lua
diff options
context:
space:
mode:
authorTeddy Wing2019-06-19 01:38:22 +0200
committerTeddy Wing2019-06-19 01:38:22 +0200
commitb4ce7ff275bf53a0de7b11c84d70776de34c5fcc (patch)
tree192b5b8b5762b174fbf21502ff73e7a19934d304 /mouse.lua
parentaacaa65c24a6e12e8708a61914870ad5d314915b (diff)
downloaddothammerspoon-b4ce7ff275bf53a0de7b11c84d70776de34c5fcc.tar.bz2
mouse: Add scrolling shortcuts
Scroll up, down, left, right using the number pad keys. Activate using F14, or scroll lock.
Diffstat (limited to 'mouse.lua')
-rw-r--r--mouse.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/mouse.lua b/mouse.lua
index 5367ae6..fefacb9 100644
--- a/mouse.lua
+++ b/mouse.lua
@@ -100,6 +100,34 @@ function mouse.top_right(amount)
end
end
+function mouse.scroll(offsets)
+ hs.eventtap.event.newScrollEvent(offsets, {}, 'pixel'):post()
+end
+
+function mouse.scroll_down(amount)
+ return function()
+ mouse.scroll({0, -amount})
+ end
+end
+
+function mouse.scroll_left(amount)
+ return function()
+ mouse.scroll({amount, 0})
+ end
+end
+
+function mouse.scroll_right(amount)
+ return function()
+ mouse.scroll({-amount, 0})
+ end
+end
+
+function mouse.scroll_up(amount)
+ return function()
+ mouse.scroll({0, amount})
+ end
+end
+
mouse_mode = hs.hotkey.modal.new({}, 'padclear', 'Mouse')
mouse_mode:bind({}, 'padclear', 'Mouse Off', function()
@@ -135,3 +163,15 @@ mouse_mode:bind({'option'}, 'pad6', mouse.right(1), nil, mouse.right(1))
mouse_mode:bind({'option'}, 'pad7', mouse.top_left(1), nil, mouse.top_left(1))
mouse_mode:bind({'option'}, 'pad8', mouse.top(1), nil, mouse.top(1))
mouse_mode:bind({'option'}, 'pad9', mouse.top_right(1), nil, mouse.top_right(1))
+
+
+-- TODO: Way to activate scroll mode while mouse mode is active
+scroll_mode = hs.hotkey.modal.new({}, 'f14', 'Scroll')
+scroll_mode:bind({}, 'f14', 'Scroll Off', function()
+ scroll_mode:exit()
+end)
+
+scroll_mode:bind({}, 'pad2', mouse.scroll_down(100), nil, mouse.scroll_down(100))
+scroll_mode:bind({}, 'pad4', mouse.scroll_left(100), nil, mouse.scroll_left(100))
+scroll_mode:bind({}, 'pad6', mouse.scroll_right(100), nil, mouse.scroll_right(100))
+scroll_mode:bind({}, 'pad8', mouse.scroll_up(100), nil, mouse.scroll_up(100))