Antes de desenchufar el monitor, cierra todo lo que no esté completamente en el monitor principal. Las aplicaciones generalmente guardan su estado (incluida la ubicación de la ventana) cuando se cierran y lo leen cuando se abren, por lo que si el segundo monitor está presente en ambos momentos, deberías estar bien.
Puedes aprovechar las aplicaciones que permiten tener más de una instancia abierta al mismo tiempo, pero solo guardan el estado al cerrar. Cierra la instancia de varios monitores (lo que provoca que se guarde el estado). Desconecta el segundo monitor. Si tienes una segunda instancia en ejecución, debería reposicionarse en el monitor principal, o puedes iniciar otra instancia. No cierres esta instancia antes de volver a enchufar el segundo monitor e iniciar otra instancia (que luego leería la configuración de varios monitores al iniciarse). Luego puedes cerrar la instancia de un solo monitor (guardando ese estado) y luego la instancia de varios monitores (sobrescribiendo el estado de un solo monitor).
Una opción más compleja podría incluir averiguar dónde se guarda el estado, hacer una copia de seguridad y escribir un archivo por lotes / script para restaurarlo antes de abrir la aplicación, lo que te permitiría hacer un enlace para hacer esto automáticamente al iniciar la aplicación.
Finalmente, puede que haya una utilidad para tu plataforma, o escribir una puede no ser muy complejo. Para Windows, hay un programa llamado ShiftWindow que puede reposicionar ventanas ya sea al iniciar la aplicación o con una tecla de acceso directo. Me temo que no conozco lo suficiente sobre MacOS como para decir si existe una utilidad similar. Esta es probablemente la solución ideal, solo por detrás de tener el soporte del sistema operativo para tal función de forma directa.