¿Cómo hacer que un enlace se abra en una ventana específica de Safari en macOS?

Tengo varias ventanas de Safari para la organización de pestañas. Normalmente tengo varias pestañas en cada ventana.

Cuando hago clic en un enlace de una aplicación que no sea Safari, se abre el enlace en una nueva pestaña en Safari, ya que Safari es mi navegador predeterminado.

El problema es que a menudo se abre en una ventana de Safari que actualmente está minimizada o que actualmente no estoy usando. Por lo tanto, no abre el enlace en mi ventana principal, activa y actual (básicamente la última que usé). En cambio, elige su propia "ventana predeterminada" para abrir enlaces, que puede ser una ventana que ni siquiera estoy usando.

Sin embargo, me gustaría que estos enlaces se abran siempre en la última ventana que usé y no en una ventana que no estoy usando. ¿Es posible hacer que los enlaces siempre se abran en la última ventana activa que utilizó, o al menos configurar la ventana "predeterminada" que abrirá nuevos enlaces?

Actualmente estoy ejecutando macOS Sierra 10.12.1, con la versión predeterminada de Safari que viene con él.

Deberá proporcionar más información para que la comunidad pueda ayudarlo. Tal como está su pregunta actualmente, no tenemos idea de si está hablando de Safari en un dispositivo iOS o en una Mac. Además, ¿qué sistema operativo estás usando? Es decir, si es macOS, ¿es macOS Sierra, El Capitan, etc.? Si es un iPhone, ¿tienes iOS 10, iOS 9 u otro? Independientemente, proporcione la versión exacta. Y, si es una Mac, también proporcione la versión exacta de Safari que está ejecutando.
Tienes toda la razón, me olvidé de todo eso. ¡Actualizaré la pregunta!
Dijiste " este es el que tiene todas las demás ventanas cerradas y está en primer plano ", ¿quisiste decir minimizado , no cerrado ?
@ user3439894 ugh, actualicé la pregunta nuevamente para que sea más clara.
Creo que la respuesta será no, no es posible configurar la ventana "predeterminada" que abrirá nuevos enlaces cuando otra aplicación los inicialice.
@ user3439894 desafortunadamente ese parece ser el caso. Sin embargo, tal vez alguien sepa de un ajuste que le permita hacer algo al respecto :)
Tengo algunas preguntas. (1) ¿Safari es su navegador preferido o es flexible al respecto? (2) Suponiendo que Safari es su navegador preferido, ¿también tiene que ser su navegador predeterminado? (3) Si hubiera una manera de obligar a Safari a abrir siempre un enlace externo (es decir, uno de otra aplicación) en una nueva ventana, ¿sería suficiente? (4) ¿Tiene que ser una solución gratuita o estaría dispuesto a pagar por una (suponiendo que el costo fuera razonable)?
(1) Sí, personalmente prefiero Safari (aunque otras personas pueden diferir en esto, no sé si esa fue la intención detrás de la recompensa; de hecho, ¡no sé por qué se dio una recompensa!) (2) Sí , preferiblemente debería ser el navegador predeterminado porque es el que quiero enlaces para abrirlo y mi navegador principal. (3) Sí, eso parece estar bien. La principal fuente de molestia es cuando abre el enlace en una pestaña no utilizada. (4) Sí, pagar una cantidad razonable también debería estar bien :)
Creo que tengo una solución. ¿Puede mostrarnos, paso a paso, cómo reproducir el comportamiento actual de Safari? Yo (1) abrí tres ventanas de Safari, (2) minimicé dos de ellas, (3) abrí una nota en Notes.app con una URL en la que se puede hacer clic. (4) Safari lanzó la URL en la ventana abierta de Safari. ## ¿Estaban todas las aplicaciones en el mismo espacio?
@oa- Creo que podría haber descubierto el problema. Parece que si abro el enlace desde una aplicación desde un espacio diferente, abrirá el enlace en la ventana minimizada. Sin embargo, si lo abro desde el espacio actual, lo abre en la ventana en primer plano. Lo probé en la aplicación Notes.
@SkeletonBow: ¡Hola desde el futuro! - ja ja. Sé que hizo su pregunta hace dos años y medio, y tengo curiosidad por saber si el comportamiento que describió en su pregunta todavía ocurre en High Sierra o Mojave. He estado usando Mojave desde diciembre de 2018 y mi impresión es que un enlace en el que se hace clic desde fuera de Safari siempre se abre en cualquier ventana de Safari que esté al frente. Tengo una configuración de tres pantallas y generalmente la ejecuto con la configuración "Las pantallas tienen espacios separados" (en las preferencias de Mission Control) activada, pero por lo demás, normalmente no uso espacios.
@jdmc ¡Hola, gracias por el comentario! No he usado Safari por un tiempo (estoy usando Chrome por varias razones), pero por lo que recuerdo, todavía tenía este problema en Mojave cuando lo estaba usando. Voy a hacer un poco más de pruebas y ver qué pasa!
Me parece que ellos/Safari cambiaron este comportamiento y que ahora lo abre en la última ventana usada/activa.

Respuestas (3)

Esto se puede hacer con una aplicación AppleScript que abre el enlace en Safari y hace que esta aplicación sea el navegador predeterminado.

Encontré dos versiones durante la prueba: abrir en nuevas ventanas o en nuevas pestañas si ya hay una ventana en el espacio actual.

  • Abra Script Editor.app (o incluso mejor Script Debugger)

  • Si desea que los enlaces se abran en una nueva ventana, use esto

    on open location theURL    
        tell application "Safari"  
            make new document with properties {URL:theURL}  
            activate  
        end tell  
    end open location  
  • Si desea que los enlaces se abran en una nueva pestaña (si hay una ventana disponible en el espacio actual), use esto:
    on open location theURL  
        tell application "System Events"  
            tell process "Safari"  
                try  
                    set frontWinName to name of window 1 
                on error  
                    my openNewWindow(theURL)  
                    return  
                end try  
            end tell  
        end tell  

        tell application "Safari"  
            try  
                tell (first window whose name is frontWinName and miniaturized is false)  
                    set current tab to make new tab with properties {URL:theURL}  
                    activate  
                end tell  
            on error  
                my openNewWindow(theURL)  
            end try  
        end tell  
    end open location  


    on openNewWindow(theURL)  
        tell application "Safari"  
            make new document with properties {URL:theURL}  
            activate  
        end tell  
    end openNewWindow  
  • Guardar como aplicación

  • Si no desea que la aplicación se muestre en el Dock

    • Haga clic derecho en la aplicación, vaya al paquete y busqueInfo.plist

    • Agrega esto enInfo.plist

        <key>LSUIElement</key>  
        <true/>
    
  • Configure la aplicación como navegador predeterminado (utilicé RCDefaultApp).

Si quieres ver lo molesto que es el comportamiento del enlace predeterminado de macOS, te sugiero que vuelvas a Safari como navegador predeterminado después de algunas horas...

Todavía estoy en 10.14.6 y no conozco posibles restricciones en Catalina.

¡Esto funciona! Y es la única solución que he visto en la web. Para configurar el navegador predeterminado, utilicé SwiftDefaultApps ( github.com/Lord-Kamina/SwiftDefaultApps/releases/tag/v2.0.1 ) ya que RCDefaultApp no ​​funciona con Catalina. No edité Info.plist y la aplicación no se mostró en el muelle independientemente.
Cabe destacar que en las versiones más recientes de macOS esto también requiere permisos de Automatización en System Preferences/Settings > Security & Privacy. No pude hacer que se activara sin alguna combinación de editar el script para llamar a Eventos del sistema en el inicio (para probar), volver a generar la aplicación a través del Editor de Export > Appscripts y ejecutarlo manualmente, e iniciar la aplicación manualmente para activar esto . Un enfoque más sistemático para obtener los permisos adecuados sería una actualización bienvenida de esta solución.

Como desarrollador, investigué la posibilidad de que las extensiones pudieran lograr lo que deseas al abrir siempre una nueva ventana al hacer clic en un enlace contenido fuera de Safari. Lamento decir que no creo que este enfoque sea posible.

Desafortunadamente, Safari no brinda a las extensiones una forma de determinar el origen de una nueva pestaña/ventana. Lo que quiero decir con esto es que se puede crear una nueva pestaña porque el usuario hace clic en un enlace en un correo electrónico, hace clic con el botón Comando en un enlace en Safari, abre un marcador de Safari mientras mantiene presionado Comando, hace clic en un enlace dentro de un documento PDF o cualquier una de varias otras acciones que abrirán una página en una nueva pestaña. Independientemente del método, Safari no proporciona cómo se abrió la ventana a una extensión de Safari.

Dado que todos estos eventos tienen el mismo aspecto, ninguna extensión puede obligar a los enlaces desde fuera de Safari a abrirse en ventanas nuevas sin afectar también a los enlaces abiertos de otras formas (incluso al navegar dentro de Safari).

Aunque no se abre de forma nativa en la ventana deseada, siempre puede tomar la pestaña y cambiarla de posición en otra ventana de safari directamente después de que se haya abierto.

No estoy seguro si esto ayuda o no, solo una sugerencia.

¡Gracias por la respuesta! Lo único es que estoy buscando una opción que evite esto en primer lugar :)