diff options
author | Teddy Wing | 2019-06-10 22:43:07 +0200 |
---|---|---|
committer | Teddy Wing | 2019-06-15 20:30:59 +0200 |
commit | 125d0c8fa0f619687ebb0b61f9b504ee336142a3 (patch) | |
tree | 48425bf602a81b3cc06f6e4c5313fd5ddedf70f4 | |
parent | 644cdb4d9fd40d32248f7f5faabbf3be9704b5fe (diff) | |
download | dothammerspoon-125d0c8fa0f619687ebb0b61f9b504ee336142a3.tar.bz2 |
window.lua: Add window resize hotkeys
New shortcuts to resize windows, again in medium and small increments.
-rw-r--r-- | window.lua | 79 |
1 files changed, 79 insertions, 0 deletions
@@ -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) |