If you use an external monitor as a primary display for your laptop while using the laptop’s screen as a secondary display, you’ve probably run into the annoyance of having a bunch of windows stay on the secondary display when you plug in the primary.
AppleScript can help! I modified the script found here as follows. Save this as an application, run it, and it will move all application windows onto your primary display.
You do have to run it once in each virtual desktop if you use Spaces. If I actually knew AppleScript, I would fix this “bug.”
-- Example list of processes to ignore: {"xGestures"} or {"xGestures", "OtherApp", ...} property processesToIgnore : {} -- Get the size of the Display(s), only useful if there is one display -- otherwise it will grab the total size of both displays tell application "Finder" set _b to bounds of window of desktop set screen_width to item 3 of _b set screen_height to item 4 of _b end tell tell application "System Events" set allProcesses to application processes set _results to "" repeat with i from 1 to count allProcesses set doIt to 1 repeat with z from 1 to count processesToIgnore if process i = process (item z of processesToIgnore) then set doIt to 0 end if end repeat if doIt = 1 then tell process i repeat with x from 1 to (count windows) set winPos to position of window x set _x to item 1 of winPos set _y to item 2 of winPos --if (_x screen_width or _y > screen_height) then set position of window x to {0, 22} --end if end repeat end tell end if end repeat end tell
🌟 Was this page helpful? Please let me know with this quick, 3 question survey.