From dbd3334df48a568cd932e1ef6dd62dea102177d5 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 6 Jul 2019 19:03:07 +0200 Subject: window.lua: Add `c` shortcut to increase window height to bottom A single shortcut to extend the window to the bottom of the screen. --- README.rst | 4 ++++ docs.json | 48 ++++++++++++++++++++++++------------------------ init.lua | 2 ++ window.lua | 13 +++++++++++++ 4 files changed, 43 insertions(+), 24 deletions(-) diff --git a/README.rst b/README.rst index e095b71..e8beeb9 100644 --- a/README.rst +++ b/README.rst @@ -75,6 +75,10 @@ Upon activating the mode, the following shortcuts are available: | ``Option-f`` | Increase window width 5 units | +--------------+--------------------------------+ ++-------+----------------------------------+ +| ``c`` | Increase window height to bottom | ++-------+----------------------------------+ + Install ------- diff --git a/docs.json b/docs.json index bebd1ec..a4fbb3a 100644 --- a/docs.json +++ b/docs.json @@ -23,15 +23,19 @@ "Constructor" : [ ], - "items" : [ + "doc" : "Adds a hotkey mode for manipulating windows.\n\nUpon activating the mode, the following shortcuts are available:\n\nh: Move window left 100 units\nj: Move window down 100 units\nk: Move window up 100 units\nl: Move window right 100 units\n\nShift-h: Move window left 20 units\nShift-j: Move window down 20 units\nShift-k: Move window up 20 units\nShift-l: Move window right 20 units\n\nOption-h: Move window left 5 units\nOption-j: Move window down 5 units\nOption-k: Move window up 5 units\nOption-l: Move window right 5 units\n\ni: Move window to top\n\n[: Move window left one screen\n]: Move window right one screen\n\ne: Reduce window height 100 units\ns: Reduce window width 100 units\nd: Increase window height 100 units\nf: Increase window width 100 units\n\nShift-e: Reduce window height 20 units\nShift-s: Reduce window width 20 units\nShift-d: Increase window height 20 units\nShift-f: Increase window width 20 units\n\nOption-e: Reduce window height 5 units\nOption-s: Reduce window width 5 units\nOption-d: Increase window height 5 units\nOption-f: Increase window width 5 units\n\nc: Increase window height to bottom", + "Method" : [ { - "desc" : "Bind keys for WindowMode", + "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode", + "def" : "WindowMode:bindModal(mapping)", "stripped_doc" : [ "Bind keys for WindowMode", "" ], - "def" : "WindowMode:bindModal(mapping)", - "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode", + "parameters" : [ + " * mapping – A table containing hotkey modifier\/key details for the following items:", + " * mode – Activate and deactivate window mode" + ], "notes" : [ ], @@ -41,21 +45,27 @@ ], "name" : "bindModal", - "parameters" : [ - " * mapping – A table containing hotkey modifier\/key details for the following items:", - " * mode – Activate and deactivate window mode" - ] + "desc" : "Bind keys for WindowMode" } ], - "Method" : [ + "Command" : [ + + ], + "Field" : [ + + ], + "items" : [ { - "desc" : "Bind keys for WindowMode", + "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode", + "def" : "WindowMode:bindModal(mapping)", "stripped_doc" : [ "Bind keys for WindowMode", "" ], - "def" : "WindowMode:bindModal(mapping)", - "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode", + "parameters" : [ + " * mapping – A table containing hotkey modifier\/key details for the following items:", + " * mode – Activate and deactivate window mode" + ], "notes" : [ ], @@ -65,19 +75,9 @@ ], "name" : "bindModal", - "parameters" : [ - " * mapping – A table containing hotkey modifier\/key details for the following items:", - " * mode – Activate and deactivate window mode" - ] + "desc" : "Bind keys for WindowMode" } ], - "Command" : [ - - ], - "Field" : [ - - ], - "doc" : "Adds a hotkey mode for manipulating windows.\n\nUpon activating the mode, the following shortcuts are available:\n\nh: Move window left 100 units\nj: Move window down 100 units\nk: Move window up 100 units\nl: Move window right 100 units\n\nShift-h: Move window left 20 units\nShift-j: Move window down 20 units\nShift-k: Move window up 20 units\nShift-l: Move window right 20 units\n\nOption-h: Move window left 5 units\nOption-j: Move window down 5 units\nOption-k: Move window up 5 units\nOption-l: Move window right 5 units\n\ni: Move window to top\n\n[: Move window left one screen\n]: Move window right one screen\n\ne: Reduce window height 100 units\ns: Reduce window width 100 units\nd: Increase window height 100 units\nf: Increase window width 100 units\n\nShift-e: Reduce window height 20 units\nShift-s: Reduce window width 20 units\nShift-d: Increase window height 20 units\nShift-f: Increase window width 20 units\n\nOption-e: Reduce window height 5 units\nOption-s: Reduce window width 5 units\nOption-d: Increase window height 5 units\nOption-f: Increase window width 5 units", "name" : "WindowMode" } -] \ No newline at end of file +] diff --git a/init.lua b/init.lua index ccb0415..64492bb 100644 --- a/init.lua +++ b/init.lua @@ -38,6 +38,8 @@ --- Option-s: Reduce window width 5 units --- Option-d: Increase window height 5 units --- Option-f: Increase window width 5 units +--- +--- c: Increase window height to bottom -- Copyright (c) 2019 Teddy Wing -- diff --git a/window.lua b/window.lua index 955cbdb..7978ad1 100644 --- a/window.lua +++ b/window.lua @@ -48,6 +48,8 @@ local units = { decrease_up_lg = { w = 0, h = -100 }, decrease_left_lg = { w = -100, h = 0 }, + increase_down_maximum = { w = 0, h = 1.0 }, + maximum = { x = 0.00, y = 0.00, w = 1.00, h = 1.00 } } @@ -181,6 +183,15 @@ function window.decrease_left_lg() ) end +function window.increase_down_maximum() + local duration = 0 + local window = hs.window.focusedWindow() + local frame = window:frame() + frame.h = hs.screen.mainScreen():frame().h + + window:setFrame(frame, duration) +end + function window.move_to_top() local position = hs.window.focusedWindow():topLeft() @@ -230,6 +241,8 @@ function window:bindModal(modifiers, keycode) window_mode:bind({}, 'd', window.increase_down_lg, nil, window.increase_down_lg) window_mode:bind({}, 'f', window.increase_right_lg, nil, window.increase_right_lg) window_mode:bind({}, 's', window.decrease_left_lg, nil, window.decrease_left_lg) + + window_mode:bind({}, 'c', window.increase_down_maximum, nil, window.increase_down_maximum) end return window -- cgit v1.2.3