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.