property processesToIgnore : {}tell application "Finder"set _b to bounds of window of desktopset screen_width to item 3 of _bset screen_height to item 4 of _bend telltell application "System Events"set allProcesses to application processesset _results to ""repeat with i from 1 to count allProcessesset doIt to 1repeat with z from 1 to count processesToIgnoreif process i = process (item z of processesToIgnore) thenset doIt to 0end ifend repeatif doIt = 1 thentell process irepeat with x from 1 to (count windows)set winPos to position of window xset _x to item 1 of winPosset _y to item 2 of winPosif (_x < 0 or _y screen_width or _y > screen_height) thenset position of window x to {0, 22}end ifend repeatend tellend ifend repeatend tell
Fix for KeePassX window positioning off screen after changing monitors
After removing a secondary monitor from a MacBook, some apps do not properly re-position themselves on your laptop display. KeePassX is one such offender and I was previously manually editing ~/.keepass/config and restarting KeePassX in order to resolve the issue.I came across a much nicer solution on bittube. The solution is great, but the source found there is a bit tricky to copy & paste so I've re-posted here for posterity. Enjoy!