I change screen resolutions on my Mac frequently — adding or removing external monitors, using external monitors of different sizes… Every once in a while a window is placed off screen or is too large to be resized within the screen available.
Here’s a script to fix that…
Launch the Apple Script Editor, and create a new script. Enter the following in the script…
-- Example list of processes to ignore: {"xGestures"} or {"xGestures", "OtherApp", ...} property processesToIgnore : {"GeekTool"} -- 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 set winPos to size of window x set _width to item 1 of winPos set _height to item 2 of winPos if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then set position of window x to {0, 22} end if if (_width > screen_width or _height > screen_height) then set size of window x to {screen_width - 100, screen_height - 100} end if end repeat end tell end if end repeat end tell
Save the file, and then export as an application. Do File –> Save As, and change the File Format to be Application. Once completed, you now have an executable (double-clickable) program that will run the script.
Note that I got this code from somewhere like this, modified slightly for my use.
It’s also worth mentioning that someone else has already fixed this problem with a free app named Forget-Me-Not.
Also useful is a program called Divvy that helps you re-size windows in general. It will move off-screen windows back on screen for you.
http://mizage.com/divvy/