aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--window.lua79
1 files changed, 79 insertions, 0 deletions
diff --git a/window.lua b/window.lua
index 5c1dcb9..d0f042e 100644
--- a/window.lua
+++ b/window.lua
@@ -9,6 +9,18 @@ units = {
down_med = { x = 0, y = 20 },
left_med = { x = -20, y = 0 },
+ increase_right = { w = 5, h = 0 },
+ increase_down = { w = 0, h = 5 },
+
+ decrease_up = { w = 0, h = -5 },
+ decrease_left = { w = -5, h = 0 },
+
+ increase_right_med = { w = 20, h = 0 },
+ increase_down_med = { w = 0, h = 20 },
+
+ decrease_up_med = { w = 0, h = -20 },
+ decrease_left_med = { w = -20, h = 0 },
+
maximum = { x = 0.00, y = 0.00, w = 1.00, h = 1.00 }
}
@@ -46,6 +58,63 @@ function window.left_med()
end
+function window.relative_size(window, relative_size)
+ local size = window:size()
+ size.w = size.w + relative_size.w
+ size.h = size.h + relative_size.h
+
+ return size
+end
+
+function window.increase_right()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.increase_right)
+ )
+end
+
+function window.increase_down()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.increase_down)
+ )
+end
+
+function window.decrease_up()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.decrease_up)
+ )
+end
+
+function window.decrease_left()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.decrease_left)
+ )
+end
+
+function window.increase_right_med()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.increase_right_med)
+ )
+end
+
+function window.increase_down_med()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.increase_down_med)
+ )
+end
+
+function window.decrease_up_med()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.decrease_up_med)
+ )
+end
+
+function window.decrease_left_med()
+ hs.window.focusedWindow():setSize(
+ window.relative_size(hs.window.focusedWindow(), units.decrease_left_med)
+ )
+end
+
+
window_mode = hs.hotkey.modal.new({'ctrl', 'option', 'shift'}, 'w', 'Window')
window_mode:bind({'ctrl', 'option', 'shift'}, 'w', 'Window Off', function()
window_mode:exit()
@@ -63,3 +132,13 @@ window_mode:bind({}, 'h', window.left_med, nil, window.left_med)
window_mode:bind({}, ']', nil, nil, function() hs.window.focusedWindow():moveOneScreenEast() end)
window_mode:bind({}, '[', nil, nil, function() hs.window.focusedWindow():moveOneScreenWest() end)
+
+window_mode:bind({'shift'}, 'e', window.decrease_up, nil, window.decrease_up)
+window_mode:bind({'shift'}, 'd', window.increase_down, nil, window.increase_down)
+window_mode:bind({'shift'}, 'f', window.increase_right, nil, window.increase_right)
+window_mode:bind({'shift'}, 's', window.decrease_left, nil, window.decrease_left)
+
+window_mode:bind({}, 'e', window.decrease_up_med, nil, window.decrease_up_med)
+window_mode:bind({}, 'd', window.increase_down_med, nil, window.increase_down_med)
+window_mode:bind({}, 'f', window.increase_right_med, nil, window.increase_right_med)
+window_mode:bind({}, 's', window.decrease_left_med, nil, window.decrease_left_med)