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

6

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

Ahora, al usar el comando open http://example.com , 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 la cantidad que haya abierto).
  • En el espacio actual
  • Desde la Terminal con la URL proporcionada.

Probablemente necesitará una secuencia de comandos osascript , pero mi conocimiento de AppleScript es casi cero ...

El bono podría ser abrir dos URL, en dos pestañas, en una nueva ventana en el espacio actual.

¿Alguien podría ayudar?

    
pregunta jm666 12.08.2014 - 00:58

2 respuestas

7

Aquí hay un AppleScript que debería ayudarte. Abra el Editor de AppleScript y guárdelo como un script. He modificado la fuente que encontré here para admitir la toma de argumentos en la línea de comandos.

Úsalo así:

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

Por supuesto, reemplaza las URL anteriores con tus propias URL.

new_window.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ía crear un alias para esto en Terminal y poder usarlo más fácilmente. Yo agregaría lo siguiente a ~/.bash_profile :

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

Llama a newwindow lo que quieras. Guarde .bash_profile y reinicie Terminal para que funcione.

En caso de que alguien esté buscando una solución similar para Google Chrome, aquí hay una opinión diferente sobre 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
    
respondido por el aglasser 12.08.2014 - 03:36
4

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

Puede colocar la siguiente función con el código de 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 de inicio.

Ejecutar:

nano .profile

Si ya tienes un archivo .profile , se abrirá y ya habrá algo de código.

Ingresa el código debajo de cualquier otro código.

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

Introduce el código en él.

Después de ingresar el código:

Mantenga presionada la tecla Ctrl y presione la tecla x .

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

Presione la tecla y para sí.

Ahora se te pedirá que lo guardes con el nombre actual de .profile .

Simplemente presiona la tecla enter para guardarlo.

Ejecutar:

. ~/.profile

Esto actualizará el entorno.

ahora puedes ejecutar:

Safari " enlace " Tenga en cuenta la tapa "S" en Safari.

    
respondido por el Vincent 12.08.2014 - 04:33

Lea otras preguntas en las etiquetas