/ hammerspoon / init.lua
init.lua
 1  local padding = 10
 2  
 3  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "return", function()
 4    local win = hs.window.focusedWindow()
 5    local f = win:frame()
 6    local screen = win:screen()
 7    local rfrm = screen:frame()
 8  
 9    f.x = rfrm.x + padding
10    f.y = rfrm.y + padding
11    f.w = rfrm.w - 2 * padding
12    f.h = rfrm.h - 2 * padding
13    win:setFrame(f)
14  end)
15  
16  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "Left", function()
17    local win = hs.window.focusedWindow()
18    local f = win:frame()
19    local screen = win:screen()
20    local frm = screen:frame()
21  
22    f.x = frm.x + padding
23    f.y = frm.y + padding
24    f.w = frm.w / 2 - 1.5 * padding
25    f.h = frm.h - 2 * padding
26    win:setFrame(f)
27  end)
28  
29  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "Right", function()
30    local win = hs.window.focusedWindow()
31    local f = win:frame()
32    local screen = win:screen()
33    local frm = screen:frame()
34  
35    f.x = frm.x + (frm.w / 2) + 0.5 * padding
36    f.y = frm.y + padding
37    f.w = frm.w / 2 - 1.5 * padding
38    f.h = frm.h - 2 * padding
39    win:setFrame(f)
40  end)
41  
42  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "i", function()
43    local win = hs.window.focusedWindow()
44    local f = win:frame()
45    local screen = win:screen()
46    local frm = screen:frame()
47  
48    f.x = frm.x + (frm.w / 2) + 0.5 * padding
49    f.y = frm.y + padding
50    f.w = frm.w / 2 - 1.5 * padding
51    f.h = frm.h / 2 - 1.5 * padding
52    win:setFrame(f)
53  end)
54  
55  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "k", function()
56    local win = hs.window.focusedWindow()
57    local f = win:frame()
58    local screen = win:screen()
59    local frm = screen:frame()
60  
61    f.x = frm.x + (frm.w / 2) + 0.5 * padding
62    f.y = frm.y + (frm.h / 2) + 0.5 * padding
63    f.w = frm.w / 2 - 1.5 * padding
64    f.h = frm.h / 2 - 1.5 * padding
65    win:setFrame(f)
66  end)
67  
68  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "u", function()
69    local win = hs.window.focusedWindow()
70    local f = win:frame()
71    local screen = win:screen()
72    local frm = screen:frame()
73  
74    f.x = frm.x + padding
75    f.y = frm.y + padding
76    f.w = frm.w / 2 - 1.5 * padding
77    f.h = frm.h / 2 - 1.5 * padding
78    win:setFrame(f)
79  end)
80  
81  hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "j", function()
82    local win = hs.window.focusedWindow()
83    local f = win:frame()
84    local screen = win:screen()
85    local frm = screen:frame()
86  
87    f.x = frm.x + padding
88    f.y = frm.y + (frm.h / 2) + 0.5 * padding
89    f.w = frm.w / 2 - 1.5 * padding
90    f.h = frm.h / 2 - 1.5 * padding
91    win:setFrame(f)
92  end)