Ouvrez une nouvelle fenêtre Safari dans l'espace actuel depuis Terminal avec plusieurs onglets (URL).

6

Comment ouvrir une nouvelle fenêtre Safari depuis Terminal dans l'espace actuel?

Maintenant, lors de l'utilisation de la open http://example.comcommande, l'URL a été ouverte comme dernier onglet de ma première fenêtre Safari.

Je cherche un moyen d'ouvrir:

  • Nouvelle fenêtre Safari (quel que soit le nombre que j'ai ouvert).
  • Dans l'espace actuel
  • Depuis le terminal avec l'URL fournie.

Il faudra probablement un osascriptscript, mais mes connaissances en AppleScript sont presque nulles ...

Le bonus pourrait être ouvert deux URL, dans deux onglets, dans une nouvelle fenêtre de l'espace actuel.

Quelqu'un pourrait-il aider?

jm666
la source

Réponses:

7

Voici un AppleScript qui devrait vous aider. Ouvrez l'éditeur AppleScript et enregistrez-le en tant que script. J'ai modifié le source que j'ai trouvé ici pour prendre en charge la prise d'arguments sur la ligne de commande.

Utilisez-le comme ceci:

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

Bien sûr, remplacez les URL ci-dessus par vos propres 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

Vous pouvez même créer un alias pour cela dans Terminal et pouvoir l'utiliser plus facilement. J'ajouterais ce qui suit à ~/.bash_profile:

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

Appelez newwindowce que vous voulez. Enregistrez .bash_profileet redémarrez Terminal pour que cela fonctionne.


Si quelqu'un recherche une solution similaire pour Google Chrome, voici la même idée.

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
aglasser
la source
Absolument merveilleux. J'ai simplement créé un script appelé Safari dans ma $PATHavec un shebang #!/usr/bin/osascriptet fonctionne comme un charme. Je vous remercie!
Jm666
1
Je ne savais pas que tu pouvais faire ça avec #!/usr/bin/osascript! Content de pouvoir aider (et merci pour ces nouvelles connaissances!)
aglasser
4

Qu'en est-il de cette réponse par l'utilisateur markhunte.

Vous pouvez placer la fonction ci-dessous avec le code osascript dans votre .profile.

code:

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 terminal:

cd dans votre répertoire personnel.

Courir:

nano .profile

Si vous avez déjà un .profilefichier, il s'ouvrira et il y aura déjà du code.

Entrez le code ci-dessous tout autre code.

Si vous n'en avez pas, un .profilefichier vierge sera ouvert.

Entrez le code dedans.


Après avoir entré le code:

Maintenez enfoncé Ctrlet appuyez sur la xtouche.

Au bas de la fenêtre, il vous sera demandé de sauvegarder les modifications.

Appuyez sur la ytouche pour oui.

On vous demandera maintenant de le sauvegarder sous le nom actuel de .profile.

Appuyez simplement sur la touche Entrée pour le sauvegarder.

Courir :

. ~/.profile

Cela mettra à jour l'environnement.

maintenant tu peux courir:

Safari " http://stackoverflow.com " Notez le capuchon "S" dans Safari.

Vincent
la source
Merci aussi, j'aime plus vimpour l'édition. ;) Accepter la réponse de aglasser parce que résolu le problème de deux url.
Jm666