6 votos

Abrir una nueva ventana de Safari en el espacio actual desde Terminal con varias pestañas (URL)

¿Cómo abrir una nueva ventana de Safari desde Terminal en el espacio actual?

Ahora, al utilizar el open http://example.com comando abrió la URL como última pestaña en mi primera ventana de Safari.

Estoy buscando una manera de abrir:

  • Nueva ventana de Safari (independientemente de cuántas haya abierto).
  • En el Espacio actual
  • Desde Terminal con la URL proporcionada.

Probablemente necesitará osascript script, pero mis conocimientos de AppleScript son casi nulos....

La bonificación podría ser abrir dos URL, en dos pestañas, en una nueva ventana en el Espacio actual.

¿Alguien puede ayudar?

8voto

Polo Puntos 574

Aquí tienes un AppleScript que debería ayudarte. Abra el Editor AppleScript y guarde esto como un script. He modificado la fuente que encontré aquí para admitir argumentos en la línea de comandos.

Úsalo así:

osascript new_window.scpt http://www.google.com http://www.stackoverflow.com

Por supuesto, sustituya las URL anteriores por sus propias URL.


nueva_ventana.scpt

on run argv
    tell application "Safari"
        if (count argv) = 0 then
            -- If you dont want to open a new window for an empty list, replace the
            -- following line with just "return"
            set {first_url, rest_urls} to {"", {}}
        else
            -- `item 1 of ...` gets the first item of a list, `rest of ...` gets
            -- everything after the first item of a list.  We treat the two
            -- differently because the first item must be placed in a new window, but
            -- everything else must be placed in a new tab.
            set {first_url, rest_urls} to {item 1 of argv, the rest of argv}
        end if

        make new document at end of documents with properties {URL:first_url}
        tell window 1
            repeat with the_url in rest_urls
                make new tab at end of tabs with properties {URL:the_url}
            end repeat
        end tell
        activate
    end tell
end run

Incluso podrías crear un alias para esto en Terminal y poder usarlo más fácilmente. Yo añadiría lo siguiente a ~/.bash_profile :

alias newwindow='osascript /path/to/new_window.scpt'

Llame a newwindow lo que quieras. Guardar .bash_profile y reinicie Terminal para que funcione.


En caso de que alguien esté buscando una solución similar para Google Chrome, he aquí una versión diferente de la misma idea.

chrome_new_window.scpt

on run argv
    tell application "Google Chrome"
        if (count argv) = 0 then
            make new window
        else
            tell (make new window)
                set URL of active tab to item 1 of argv
                repeat with the_url in the rest of argv
                    open location the_url
                end repeat
            end tell
        end if
        set active tab index of first window to 1
        activate
    end tell
end run

0 votos

ABSOLUTAMENTE maravilloso. Simplemente creé un script llamado Safari en mi $PATH con un shebang #!/usr/bin/osascript y funciona a las mil maravillas. Gracias.

1 votos

No sabía que se podía hacer eso con #!/usr/bin/osascript ¡! Encantado de ayudar (¡y gracias por los nuevos conocimientos!)

0 votos

Thx bro, amazing

4voto

Justin Love Puntos 3073

¿Qué pasa con esta respuesta por el usuario markhunte.

Puede colocar la siguiente función con el código osascript en su .profile .

código:

function Safari {
  # Will open a New Safari window with argument 1.

osascript <<EOD
tell application "Safari" to make new document with properties {URL:"$1"}
return
EOD

}

En la terminal:

cd a tu directorio personal.

Corre:

nano .profile

Si ya dispone de un .profile se abrirá y ya habrá algo de código allí.

Introduce el código en él debajo de cualquier otro código.

Si no tenía, un espacio en blanco .profile se abrirá el archivo.

Introduce el código en él.


Después de introducir el código:

Mantén pulsado Ctrl y pulse la tecla x llave.

En la parte inferior de la ventana se le pedirá que guarde los cambios.

Pulsa el botón y tecla para sí.

Ahora se le pedirá que lo guarde con el nombre actual de .profile .

Pulsa la tecla Intro para guardarlo.

Ejecutar :

. ~/.profile

Esto actualizará el entorno.

ahora puedes correr:

Safari " http://stackoverflow.com " Fíjese en la "S" mayúscula de Safari.

0 votos

Gracias también, me gusta más vim para editar. ;) Aceptando la respuesta de aglasser porque solucionado el problema de las dos url.

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