-------------------------------------------------------------------------------- -- Hammerspoon config to replace parts of Mosaic -- -- References: -- * https://www.hammerspoon.org/go/ -- * https://www.hammerspoon.org/docs/index.html -------------------------------------------------------------------------------- hs.hotkey.bind({"cmd", "alt", "ctrl"}, "n", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 1280 f.h = 800 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "p", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 1920 f.h = 1080 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "b", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 1024 f.h = 600 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "f", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 1050 f.h = 800 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "]", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 570 f.h = 900 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "[", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.w = 570 f.h = 478 f.x = ((max.w - f.w) / 2) + max.x f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end) hs.hotkey.bind({"cmd", "alt", "ctrl"}, "\\", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() local fullscreen = screen:fullFrame() f.w = 663 f.h = (max.h * 0.85) f.x = max.w - (f.w * 1.025) f.y = ((max.h - f.h) / 2) + max.y win:setFrame(f) end)