aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--init.lua1
-rw-r--r--mouse.lua75
2 files changed, 76 insertions, 0 deletions
diff --git a/init.lua b/init.lua
index 9f98b0f..1998a10 100644
--- a/init.lua
+++ b/init.lua
@@ -2,6 +2,7 @@
require("hs.ipc")
require('window')
+require('mouse')
-- Shortcuts to focus tabs in Terminal
diff --git a/mouse.lua b/mouse.lua
new file mode 100644
index 0000000..5a81708
--- /dev/null
+++ b/mouse.lua
@@ -0,0 +1,75 @@
+mouse = {}
+function mouse.bottom_left()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x - 100
+ position.y = position.y + 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.bottom()
+ local position = hs.mouse.getRelativePosition()
+ position.y = position.y + 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.bottom_right()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x + 100
+ position.y = position.y + 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.left()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x - 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.click()
+ local position = hs.mouse.getAbsolutePosition()
+ hs.eventtap.leftClick(position)
+
+ -- TODO: key down is mouse down, key up is mouse up
+end
+
+function mouse.right()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x + 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.top_left()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x - 100
+ position.y = position.y - 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.top()
+ local position = hs.mouse.getRelativePosition()
+ position.y = position.y - 100
+ hs.mouse.setRelativePosition(position)
+end
+
+function mouse.top_right()
+ local position = hs.mouse.getRelativePosition()
+ position.x = position.x + 100
+ position.y = position.y - 100
+ hs.mouse.setRelativePosition(position)
+end
+
+
+mouse_mode = hs.hotkey.modal.new({'ctrl', 'option', 'shift'}, 'm', 'Mouse')
+mouse_mode:bind({'ctrl', 'option', 'shift'}, 'm', 'Mouse Off', function()
+ mouse_mode:exit()
+end)
+
+mouse_mode:bind({}, 'pad1', mouse.bottom_left, nil, mouse.bottom_left)
+mouse_mode:bind({}, 'pad2', mouse.bottom, nil, mouse.bottom)
+mouse_mode:bind({}, 'pad3', mouse.bottom_right, nil, mouse.bottom_right)
+mouse_mode:bind({}, 'pad4', mouse.left, nil, mouse.left)
+mouse_mode:bind({}, 'pad5', mouse.click)
+mouse_mode:bind({}, 'pad6', mouse.right, nil, mouse.right)
+mouse_mode:bind({}, 'pad7', mouse.top_left, nil, mouse.top_left)
+mouse_mode:bind({}, 'pad8', mouse.top, nil, mouse.top)
+mouse_mode:bind({}, 'pad9', mouse.top_right, nil, mouse.top_right)