8 votos

Abrir URLs en una nueva ventana de Chrome

Decido abrir una url en una nueva ventana con el comando

$ open -na 'Google Chrome' 'https://www.etymonline.com/'

Se abrió una nueva ventana en blanco.

0 votos

Si necesitas abrir una url en una pestaña existente... Creo que no es posible usando bash directamente. Se puede con applescript . Puedes activar applescript desde bash si es necesario.

0 votos

He actualizado mi respuesta para utilizar una solución alternativa que puede ser útil, por favor, echa un vistazo.

9voto

user3439894 Puntos 5883

Es necesario utilizar el --args opción Por ejemplo:

open -na 'Google Chrome' --args --new-window 'https://www.etymonline.com/'

En la página del manual del Abrir comando :

--args
Todos los argumentos restantes se pasan a la aplicación abierta en el parámetro argv de main(). Estos argumentos no se abren ni son interpretados por el Abrir herramienta.


Para más información Google Chrome interruptores de línea de comandos que podría añadirse a la --args opción de la open comando , compruebe lo siguiente URL .

De: Lista de interruptores de línea de comandos de Chromium

Hay muchas líneas de comando que se pueden utilizar con el navegador Google Chrome. Algunas cambian el comportamiento de las funciones, otras son para depurar o experimentar. Esta página enumera los interruptores disponibles incluyendo sus condiciones y descripciones.


Otro enfoque sería utilizar AppleScript de la línea de comandos Por ejemplo

osascript -e 'tell application "Google Chrome" to set URL of active tab of (make new window) to "https://www.etymonline.com/"'

Para facilitar el uso, se podría envolver esto en un función y colóquelo en su ~/.bash_profile o ~/.profile archivo, por ejemplo

openurl () 
{ 
    if [ -n "$1" ]; then
        osascript -e "tell application \"Google Chrome\" to set URL of active tab of (make new window) to  \"$1\""
    else
        printf "\n  Missing URL...\n\n    Syntax: openurl 'URL'\n\n    Example: openurl 'http://www.google.com'\n\n"
    fi
}

Entonces en Terminal simplemente utilice lo siguiente, por ejemplo

openurl 'https://www.etymonline.com/'

Si ejecuta openurl sin un argumento se obtiene el siguiente resultado:

$ openurl

  Missing URL...

    Syntax: openurl 'URL'

    Example: openurl 'http://www.google.com'

$

Nota: El URL se muestra entre comillas simples y esto para asegurar que no se produce ninguna expansión cuando la URL se pasa al función si tiene alguna caracteres especiales de la cáscara en él. Las comillas simples pueden omitirse para las URL básicas/simples.

Este mismo enfoque puede aplicarse al open comando también. Dicho esto, la razón por la que elegiría envolver el AppleScript en un función es en algún momento el open comando utilizado de esta manera con Google Chrome puede romperse. Esto se debe a que cuando Google Chrome ya está abierto, está abriendo un segundo instancia que se pasa a la primera instancia y el segundo instancia terminado. Este comportamiento puede resultar problemático a medida que Goggle Chrome se actualiza, donde el AppleScript en un función no lo hará, ya que sólo habla con el primer instancia de Google Chrome .

0 votos

Abrió una en una nueva pestaña.

0 votos

@Yumi Tada, he actualizado mi respuesta con --new-window añadido a la --args opción . Abre la URL en una nueva ventana y me ha funcionado.

2voto

Mike Hardy Puntos 125

Las respuestas anteriores funcionan desde la línea de comandos, pero si quieres que Chrome abra las cosas en una nueva ventana en todas partes por defecto (y no sólo desde la línea de comandos) tienes que cambiar los manejadores de archivos http/https por un script que haga lo que quieres.

Con un manejador por defecto configurado para abrir una nueva ventana, funcionará desde la línea de comandos o cuando hagas clic en un enlace en Mail o similar, y por lo tanto se integrará mucho mejor con Spaces ya que obtendrás una nueva ventana en el espacio actual con tu enlace deseado, en lugar de una nueva pestaña en algún otro espacio que tengas que buscar.

Concretamente necesitas un script como este:

on open location theURL
    tell application "/Applications/Google Chrome.app"
        make new window
        activate
        set URL of active tab of first window to theURL
    end tell
end open location

A continuación, guarde eso desde ScriptEditor como una aplicación, ejecútela para registrarla con LaunchServices y edite el archivo ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist para que su aplicación sea la predeterminada para http/https.

Puedes encontrar una solución integrada con el script como app y (en un comentario actual) un PList editando script para decirle al sistema que use tu app aquí:

https://smoove-operator.blogspot.com/2011/06/open-links-from-external-applications.html

Inspiración de http://pepijndevos.nl/2010/05/open-external-links-in-running-browser/ y https://github.com/primalcurve/macsupportpub/blob/master/scripts/setGoogleChromeAsDefaultBrowser_Scrubbed.sh

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X