Cómo recuperar ventanas que se han movido 'fuera de la pantalla'

A veces tengo este problema con mi configuración de pantalla dual, especialmente cuando estoy haciendo malabarismos con muchas cosas.

Ocasionalmente, parece que puedo mover una ventana completamente fuera de la pantalla (no estoy muy seguro de cómo) y no puedo recuperarla. Si hago "ocultar todo" en el menú de la aplicación (generalmente es Mail.app, así que sigamos con ese como ejemplo), todo desaparece y Mail parece pensar que tiene una ventana de "bandeja de entrada" en el menú de Windows, pero no hay nada visible Cerrar y reiniciar la aplicación no parece ayudar (ya que la aplicación recuerda de manera útil dónde estaba mi ventana anteriormente) y todo lo que termino haciendo es apagar la Mac, desconectar el segundo monitor y reiniciarlo, abriendo la aplicación nuevamente y esto parece persuadir a la Mac para que reconsidere la posición de la ventana principal, y todo está bien. Luego puedo reiniciar el segundo monitor, etc.

¿Hay una mejor manera? ¿Hay alguna forma de ordenar las ventanas de regreso a un monitor específico, o una utilidad para mover ventanas 'abiertas'/ejecutar? ¿Realmente estoy haciendo algo mal ? :-)

Por cierto, no estoy usando Spaces, así que estoy bastante seguro de que no se trata de un problema extraño de Spaces. :-)

Respuestas (23)

Chealion respondió esto en SuperUser .

No copiaré y pegaré su respuesta aquí, ya que él recibió el crédito, no yo.

Pero básicamente, lo que podrías hacer es (citado de la respuesta de Chealion):

Un segundo método para organizar las ventanas para que pueda verlas (si por alguna razón no aparecen en la pantalla) es cambiar a la aplicación que posee la ventana en cuestión, mantener presionada la tecla Opción y elegir "Organizar al frente" de el menú Ventana. A continuación, organizará todas las ventanas de esa aplicación en cascada desde la parte superior izquierda de la pantalla.

Oh, brillante - ¡gracias! He votado a favor de su respuesta allí y le he dado algo de crédito aquí por indicarme el lugar correcto. Hay algunas buenas sugerencias allí, y casi no puedo esperar a que el problema vuelva a ocurrir ahora. :-)
Esta solución no funciona en Yosemite, solo puede acceder al menú Ventana desde la pantalla en la que se encuentra la ventana en Yosemite.
No aparece la opción de menú para XQuartz
Apple parece haber eliminado esta función a partir de MacOS 10.13.5. Es casi como si poder obtener ventanas que se han movido fuera de la pantalla se considera un error, en lugar del hecho de que se pueden mover fuera de la pantalla.
No existe tal elemento de menú en macOS Catalina
Estoy en macOS Catalina. ¡ Opción + clic en el ícono de la aplicación funcionó para mí! El elemento del menú puede estar oculto en las versiones más nuevas de macOS, pero creo que la combinación de tecla + clic hace lo mismo.

Por completitud:

De mi respuesta originalmente en Server Fault Question 7237 :

Cuando un monitor está desconectado (incluido el adaptador también, si corresponde; dejar el adaptador deja a OS X pensando que el monitor todavía está conectado), todas las ventanas deberían moverse a su pantalla principal. Ocasionalmente, algunas ventanas (p. ej., Firefox) mantendrán su posición en el extremo derecho de la pantalla, dejándole el espacio suficiente para agarrar la barra de título y moverla donde desee.

Un método es antes de desconectar el monitor externo (o antes de desconectar el dongle) es abrir el Panel de preferencias de pantallas en Preferencias del sistema y hacer clic en el botón "Reunir Windows". Se supone que esto traerá todas las ventanas a la pantalla principal y la opción no aparece si no tiene un segundo monitor conectado.

Un segundo método para organizar las ventanas para que pueda verlas (si por alguna razón no aparecen en la pantalla) es cambiar a la aplicación que posee la ventana en cuestión, mantener presionada la tecla Opción y elegir "Organizar al frente" de el menú Ventana. A continuación, organizará todas las ventanas de esa aplicación en cascada desde la parte superior izquierda de la pantalla.

Por último, hay varios AppleScripts disponibles (p. ej., este en Snipplr ) que también sacarán todas las ventanas de la pantalla y las moverán a la pantalla por usted.

También hay una ingeniosa aplicación shareware llamada Stay que te ayudará a automatizar mucho de esto, mientras que también está MarcoPolo que hará mucho más que solo notar si un monitor está desconectado y te permite ejecutar scripts (en caso de que quieras hacer algo más que reorganizar las ventanas).

Lo siento, pero no tengo ni idea de lo que estás hablando. change to the application that owns the window in question, hold the Option key down and choose "Arrange in Front" from the Window menuno veo eso por ningun lado

Pensé que debería dar una respuesta a esto que describa soluciones específicamente para XQuartz. Muchas de las soluciones aquí no funcionan para XQuartz. De este ticket: https://xquartz.macosforge.org/trac/ticket/796 , encontré dos soluciones que funcionan y creo que sería beneficioso mencionarlas aquí.

  1. Si puede desenchufar/enchufar su monitor fácilmente, desenchúfelo para que su ventana aparezca en un lugar al que pueda acceder. Luego, con el mouse, haga clic en la ventana y mantenga presionado el botón del mouse como si fuera a arrastrarlo. Sin soltar el mouse o la ventana, conecte su monitor. La ventana de XQuartz debe permanecer donde está el mouse.

  2. Este paquete ShiftIt funciona muy bien para obtener ventanas que han desaparecido de la pantalla: https://github.com/fikovnik/ShiftIt/downloads Puede haber otros paquetes similares, pero este es limpio y efectivo.

¡Espero que esto ayude a alguien!

Shiftlt funciona casi con XQuartz. En realidad, vuelve a centrar la ventana principal de (por ejemplo) Inkscape pero no la ventana secundaria (diálogo de propiedades). Una buena herramienta para saber sin embargo. +1

Tengo dos pantallas y cargar Inkscape generalmente lo coloca en un lugar inaccesible. Puedo verlo usando "mostrar todas las ventanas", pero si lo selecciono desde allí, desaparece y vuelve a desaparecer. La solución que encontré provino de este comentario de la lista de correo .

Al desconectar la segunda pantalla puedo ver Inkscape. Pero luego, incluso después de moverlo un poco, si vuelvo a enchufar la otra pantalla, desaparece por el borde nuevamente. La solucion es:

  1. Desconecta la segunda pantalla
  2. Use el mouse para agarrar la barra de título de la ventana (haga clic y mantenga presionado)
  3. Mientras sigue sujetando la barra de título, vuelva a enchufar el monitor
Agregaré que recibo muchas miradas de otras personas en la oficina mientras realizo esta tarea.

Encontré una solución muy fácil para esto.

Me pasó en Powerpoint. Fui al menú de Powerpoint en la parte superior de la pantalla. Hizo clic en "Ventana" y luego en "Zoom en ventana". Hecho

Esta es la única respuesta que funcionó para 10.11.5 (nombre en clave El Capitán).
Alternativamente, Window> Zoom simplemente funcionó para mí (Zoom in Window no era una opción).
Ventana > Zoom funciona en Mojave

Algo que probé y funcionó para mí es cambiar la resolución a una más baja y luego volver a subirla. Y mágicamente pone la aplicación en el centro. Salud.

Encontré esta aplicación: WindowWrangler

Permite utilizar atajos de teclado para mover la ventana.

Desafortunadamente, no funciona para la única ventana que necesito: Inkscape en un entorno XQuartz.

¿Encontraste alguna solución para xquartz?
La solución que encontré fue conectar un monitor externo: en ese caso, la ventana cambiaba de posición de manera que podía moverla. Lo muevo para que, tras desconectar la pantalla, la barra superior de la ventana quede "accesible".
@gebirgsbärbel Vea la respuesta que acabo de publicar a continuación. Creo que puede resultarle útil.
@gebirgsbärbel Vea la [nueva respuesta] ( apple.stackexchange.com/a/238975/31154 ) que publiqué a continuación, usando xdotoolla utilidad, que finalmente resolvió todos mis problemas

Para un problema específico de X11/XQuartz, aquí hay una solución que encontré.

Requisito previo

Primero, necesitarás xdotool . Uno puede instalarlo usandobrew install xdotool

Los basicos

Puede mover una ventana a la izquierda usando el siguiente script:

xdotool getactivewindow windowmove --relative -- -100 -44

-44 es un valor que creo que es la suma de la altura de la barra de título y la altura de la barra de menú. Si no se establece aquí, la ventana bajará en lugar de mantener la posición y.

Para movimiento a la derecha:

xdotool getactivewindow windowmove --relative -- 100 -44

Para desplazarse hacia arriba :

xdotool getactivewindow windowmove --relative -- x -100

Para bajar:

xdotool getactivewindow windowmove --relative -- x 100

Entonces, ahora puede mover la ventana seleccionada actualmente (a la que puede acceder usando Expose haciendo clic en ella si está fuera de la pantalla).

Exponer vista

Luego puede abrir la terminal y repetir los comandos hasta que aparezca la ventana.

Accede a él a través de un acceso directo

Para hacer que su ventana se mueva usando el atajo de teclado, puede usar la explicación dada aquí

De hecho, agregué estos atajos usando BetterTouchTool.

  1. Preferencias de BetterTouch > Teclado

  2. Agregar nuevo acceso directo

  3. Seleccione el campo de texto Método abreviado de teclado y presione (p. ej.) shift+ ^+ cmd+

  4. Seleccione Activar acción predefinida : Controlar otras aplicaciones > Ejecutar comando de terminal

  5. Ingrese el comando para (por ejemplo) movimiento derecho con la ruta completa a xdotool (puede obtenerlo usando el which xdotoolcomando)

    /usr/local/bin/xdotool getactivewindow windowmove --relative -- 100 -44

  6. Haga clic en el botón Guardar.

Repita lo mismo para otras direcciones y ¡disfrútelo!

fink no tiene xdotool

Además, para completar, me encontré con esto: la aplicación Stay para Mac , aunque aún no la he probado ni la he comprado.

Desde su sitio web:

Stay puede almacenar un conjunto de ventanas para cada combinación de pantallas que use con su computadora. Por ejemplo, si tiene una computadora portátil que a veces está conectada a un monitor externo, puede almacenar dos conjuntos de ventanas en Stay; uno con el monitor externo conectado y otro sin él. Una vez hecho esto, podrá asegurarse de que sus ventanas estén siempre donde quiere que estén haciendo que Stay restaure las ventanas cada vez que conecte o desconecte el monitor externo. Stay puede incluso configurarse para restaurar ventanas automáticamente a medida que las pantallas se conectan y desconectan.

Tengo una solución que funcionó para mí y busqué foros e intenté todo lo que pude.

Al final encontré una manera. Instale una aplicación llamada BetterTouchTool. Esto le permite crear un atajo para hacer varias cosas útiles con su pantalla, etc. Luego configure un atajo específico de la aplicación (mucho más fácil de lo que parece) y hágalo simple. Lo configuré para que "deslizar hacia arriba con dos dedos" diera lugar a una acción de "Maximizar ventana". Esto pegó la aplicación que faltaba en la pantalla de mi computadora portátil y la alejó de la pantalla del monitor fantasma en la que había estado atascada.

Problema resuelto.

Aquí hay una imagen de cómo se veía BetterTouchTool cuando configuré el acceso directo:

Acceso directo a la herramienta BetterTouch

También solucioné el problema usando BetterTouchTool.

Acabo de tener este mismo problema en Mavericks, logré resolver el problema siguiendo estos pasos:

  1. Lleve el puntero a un borde de la ventana que se movió fuera de la pantalla, por ejemplo, al borde de la derecha.
  2. Cuando vea el ícono de cambio de tamaño (en mi caso, el ícono de cambio de tamaño horizontal), haga clic y mantenga presionado.
  3. Mientras "mantienes pulsado el clic" arrastra la ventana. ¡Voila!
Esto solo funciona si la ventana está contra el borde de la otra ventana.

Un amigo mío escribió una herramienta gratuita para recuperar las ventanas, si quieres comprobarlo, ve aquí: http://bring-em-back.com

Parece que esto me sucede con mayor frecuencia cuando la pantalla secundaria está "arriba" (en Preferencias del sistema -> Pantalla -> Disposición). Cuando ocurre el problema, si muevo la pantalla externa "hacia la derecha", vuelven a aparecer las ventanas X11.

En El Capitán, las respuestas simples aquí no funcionaron para mí o no estaban disponibles como opciones. Lo que funcionó fue hacer clic derecho en la aplicación en el Dock (Chrome en mi caso) y seleccionar Opciones > Asignar al escritorio en la pantalla 1. Esto movió todas las ventanas a mi escritorio actual.

En Yosemite, si me funcionó

  1. abrir Preferencias del sistema
  2. abrir Pantalla < Resolución
  3. seleccione 'Escalado'
  4. cambiar la configuración a cualquier otra cosa temporalmente

Para mí, esto fue suficiente para obligar a la aplicación a volver a la pantalla.

Este simple truco solucionó el problema. ¡Gracias!

Sin embargo, es un poco extraño que una ventana (Terminal en mi caso) se perdiera en el arreglo. Probé el zoom, traigo todo al frente, pero nada parecía funcionar.

Finalmente, la ventana → Fusionar todas las ventanas hizo el truco.

Puede crear una aplicación sencilla para hacerlo en el Editor de AppleScript. Ingrese el siguiente texto y guárdelo como una aplicación. Si lo coloca en su carpeta de aplicaciones, será fácil acceder a él a través de SpotLight. Llamé a las mías reunir ventanas.

property processesToIgnore : {}
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 < 0 or _y < 0 or _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
Para completar, deberá explicar cómo evitar "El editor de scripts no tiene acceso de asistencia permitido" (Yosemite)

Otra solución para XQuartz:

brew install wmctrl
wmctrl -i -r $(wmctrl -G -l | grep -i inkscape | cut -d' ' -f1 ) -e 0,0,0,100,100

Reemplaza 'inkscape' con lo que quieras.

Aquí hay una respuesta fácil que toma 15 segundos y es una solución permanente.

https://groups.google.com/forum/#!topic/eggbotuser/48RbZ2Pey5A

Este problema aparece si tiene varias pantallas. El documento se abre, justo a la izquierda, fuera de la pantalla de todas las pantallas. No puede arreglar esto con Applescript: XQuartz no implementa los verbos de secuencias de comandos estándar para obtener y establecer la posición de las ventanas. Tampoco implementa los equivalentes estándar del administrador de ventanas X11.

La causa del problema es un conflicto entre una configuración de preferencia en Inkscape y una configuración de preferencia en Mavericks.

La configuración de preferencia lista para usar para Mavericks en Preferencias del sistema> Control de la misión es [x] Las pantallas tienen espacios separados

La configuración de preferencia lista para usar para Inkscape en su barra de menú Archivo > Preferencias de Inkscape > Windows es (•) Guardar y restaurar la geometría de la ventana para cada documento.

Si cambia la preferencia de OS X (requiere cerrar sesión y volver a iniciarla), o cambia la preferencia de Inkscape a (•) No guardar la geometría de la ventana (lo cual no puede hacer a menos que pueda hacer que Inkscape le muestre una ventana) el Inkscape funciona como se esperaba.

Entonces, si desea el nuevo comportamiento de Mavericks con múltiples pantallas en su Mac, vuelva temporalmente a la forma anterior, cambie una preferencia de Inkscape y luego vuelva a configurar Mavericks en una barra de menú en cada pantalla.

En el elemento de menú de la aplicación 'Ventana', seleccione "Organizar todo". Esto funcionó para Microsoft PowerPoint para Mac, puede que no funcione para todos.

Tengo un problema similar en mi Mac al abrir MS Powerpoint, ya que no se muestra en la pantalla. La forma más sencilla es ir a la barra de menú de Powerpoint en la parte superior de la pantalla de su Mac y hacer clic en "Ventana" y luego debajo de eso, hacer clic en "Organizar todo". Las ventanas de PowerPoint que faltan u ocultas se mostrarán

La solución más simple que he encontrado para este problema es hacer clic con el botón derecho en el ícono correspondiente en la barra de tareas y luego seleccionar 'Ocultar'. Luego puede hacer lo mismo y seleccionar 'Mostrar' y luego vuelve a aparecer la ventana que falta.

Esto no funcionó para mí.

Esto funciona para mí en Mac:

  1. haga el gesto del trackpad de 'tres dedos extendidos' (no estoy seguro de cuál es el nombre técnico) para mostrar las aplicaciones en cada pantalla;
  2. arrastre Photoshop desde la pantalla de mi computadora portátil a la pantalla de mi monitor externo.

Inicialmente, la barra de encabezado de Photoshop todavía está fuera de la pantalla, pero tan pronto como hace clic en cualquier lugar de Photoshop, se ajusta solo.