better run_or_raise, handles maximized clients across screens