|
|
|
@ -2,32 +2,25 @@ local mash = {"cmd", "alt", "ctrl"}
|
|
|
|
|
local smash = {"cmd", "alt", "ctrl", "shift"}
|
|
|
|
|
|
|
|
|
|
-- Window management
|
|
|
|
|
|
|
|
|
|
-- TODO implement desktop and window gaps
|
|
|
|
|
hs.urlevent.bind("wm", function(eventName, params)
|
|
|
|
|
local log = hs.logger.new("wm", "debug")
|
|
|
|
|
|
|
|
|
|
local win = hs.window.focusedWindow() -- TODO figure out why focusedWindow doesn't work
|
|
|
|
|
-- local win = hs.window.frontmostWindow()
|
|
|
|
|
local f = win:frame()
|
|
|
|
|
local screen = win:screen()
|
|
|
|
|
local max = screen:frame()
|
|
|
|
|
|
|
|
|
|
local t = {
|
|
|
|
|
left = function(f) return hs.layout.left50 end,
|
|
|
|
|
right = function(f) return hs.layout.right50 end,
|
|
|
|
|
ne = function(f) return { 0.5, 0, 0.5, 0.5 } end,
|
|
|
|
|
nw = function(f) return { 0, 0, 0.5, 0.5 } end,
|
|
|
|
|
se = function(f) return { 0.5, 0.5, 0.5, 0.5 } end,
|
|
|
|
|
sw = function(f) return { 0, 0.5, 0.5, 0.5 } end,
|
|
|
|
|
max = function(f) return hs.layout.maximized end,
|
|
|
|
|
wm = {
|
|
|
|
|
left = hs.layout.left50,
|
|
|
|
|
right = hs.layout.right50,
|
|
|
|
|
ne = { 0.5, 0, 0.5, 0.5 },
|
|
|
|
|
nw = { 0, 0, 0.5, 0.5 },
|
|
|
|
|
se = { 0.5, 0.5, 0.5, 0.5 },
|
|
|
|
|
sw = { 0, 0.5, 0.5, 0.5 },
|
|
|
|
|
max = hs.layout.maximized,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local unitRect = hs.geometry(t[params["layout"]](f))
|
|
|
|
|
local frame = unitRect:fromUnitRect(max)
|
|
|
|
|
win:setFrame(frame)
|
|
|
|
|
-- win:focus()
|
|
|
|
|
end)
|
|
|
|
|
function move(key)
|
|
|
|
|
local win = hs.window.focusedWindow()
|
|
|
|
|
local geo = wm[key]
|
|
|
|
|
win:move(geo, nil, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
hs.hotkey.bind(mash, "h", function() move("left") end)
|
|
|
|
|
hs.hotkey.bind(mash, "l", function() move("right") end)
|
|
|
|
|
hs.hotkey.bind(mash, "m", function() move("max") end)
|
|
|
|
|
|
|
|
|
|
hs.loadSpoon("ReloadConfiguration")
|
|
|
|
|
spoon.ReloadConfiguration:start()
|
|
|
|
|