windowMove = function() -- move window to next screen hs.hotkey.bind({ "ctrl", "alt", "cmd" }, "N", function() local win = hs.window.focusedWindow() win:moveToScreen(win:screen():next()) end) local fullscreen = function(win) local screen = win:screen() local cell = hs.grid.get(win, screen) cell.x = 0 cell.y = 0 cell.w = 24 cell.h = 24 hs.grid.set(win, cell, screen) end -- Windows seem to be indexed by primary screen first hs.hotkey.bind({ "ctrl", "alt", "cmd" }, "pad1", function() -- 2025-01-30 09:50:56: 1 DELL S2721DGF 3 D3142823-261D-46EF-B9C2-5181C7FE2CA5 -- 2025-01-30 09:50:56: 2 AV Receiver 72 B5A65BB6-E73E-4C3D-977C-33C86798AA5A -- 2025-01-30 09:50:56: 3 DELL S2722DGM 74 0F6BDB5B-840D-40BE-AAC9-B467A78E057A for i, screen in ipairs(hs.screen.allScreens()) do print(i, screen:name(), screen:id(), screen:getUUID()) end local win = hs.window.focusedWindow() fullscreen(win) win:moveToScreen(hs.screen.allScreens()[3]) end) hs.hotkey.bind({ "ctrl", "alt", "cmd" }, "pad2", function() local win = hs.window.focusedWindow() fullscreen(win) win:moveToScreen(hs.screen.allScreens()[1]) end) hs.hotkey.bind({ "ctrl", "alt", "cmd" }, "pad3", function() local win = hs.window.focusedWindow() fullscreen(win) win:moveToScreen(hs.screen.allScreens()[2]) end) end windowMove()