Я использую Hammerspoon, чтобы изменить размеры моих окон на OSX. В частности, я хочу, чтобы окна занимали половину экрана, вертикально или горизонтально, а также занимали весь экран.
Однако при переключении между осями наблюдается большая задержка перерисовки (например, вертикальная или горизонтальная). Ранее я использовал Spectacle, который быстро выполняет ту же задачу.
Чтобы продемонстрировать, вот короткие клипы меня изменения размеров окна в Hammerspoon против Spectacle.
Молотковая ложка - https://vid.me/xg8o
Спектакль - https://vid.me/7dLP
Является ли это ограничением того, как Hammerspoon изменяет размеры окон, или мне лучше оптимизировать мой конфиг?
Вот мой init.lua
--
-- Window management
--
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Left", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local max = win:screen():frame()
f.x = max.x
f.y = max.y
f.w = max.w / 2
f.h = max.h
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Right", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local max = win:screen():frame()
f.x = max.w / 2
f.y = max.y
f.w = max.w / 2
f.h = max.h
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Up", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local max = win:screen():frame()
f.x = max.x
f.y = max.y
f.w = max.w
f.h = max.h / 2
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Down", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local max = win:screen():frame()
f.x = max.x
f.y = max.h / 2
f.w = max.w
f.h = max.h / 2
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "f", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local max = win:screen():frame()
f.x = max.x
f.y = max.y
f.w = max.w
f.h = max.h
win:setFrame(f)
end)