Otwórz adresy URL w nowym oknie Chrome

6

Postanawiam otworzyć adres URL w nowym oknie za pomocą polecenia:

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

Otworzyło nowe okno puste.

Algebra
źródło
Jeśli musisz otworzyć adres URL w istniejącej karcie ... Myślę, że nie jest możliwe bezpośrednie użycie bash. Możesz z AppleScript . W razie potrzeby możesz uruchomić appleScript z bash.
Joonas,
Zaktualizowałem swoją odpowiedź, aby użyć alternatywnego rozwiązania, które może okazać się przydatne, proszę spojrzeć.
user3439894

Odpowiedzi:

7

Musisz skorzystać z --args opcji , np .:

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

Ze strony podręcznika polecenia open :

--args
Wszystkie pozostałe argumenty są przekazywane do otwartej aplikacji w parametrze argv do main (). Argumenty te nie są otwierane ani interpretowane przez otwarte narzędzie.


Aby uzyskać więcej Google Chrome przełączników wiersza poleceń , które mogą być dodawane do --args opcji tego open polecenia , sprawdź następujący adres URL .

Od: Lista przełączników linii poleceń Chromium

Istnieje wiele wierszy poleceń, których można używać w przeglądarce Google Chrome. Niektóre zmieniają zachowanie funkcji, inne służą do debugowania lub eksperymentowania. Ta strona zawiera listę dostępnych przełączników, w tym ich warunki i opisy.


Innym podejściem byłoby użycie AppleScript z wiersza poleceń , np .:

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

Dla łatwości użycia możesz zawinąć to w funkcję i umieścić w swoim pliku ~/.bash_profilelub ~/.profilepliku, np .:

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
}

Następnie w Terminalu po prostu użyj następujących opcji, np .:

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

Jeśli wykonasz openurlbez argumentu , otrzymasz następujące dane wyjściowe:

$ openurl

  Missing URL...

    Syntax: openurl 'URL'

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

$

Uwaga: Adres URL jest zawinięty w pojedyncze cudzysłowy, aby zapewnić, że nie dojdzie do rozwinięcia, gdy adres URL zostanie przekazany do funkcji, jeśli zawiera on znaki specjalne powłoki . Pojedyncze cudzysłowy można pominąć w przypadku podstawowych / prostych adresów URL.

To samo podejście można zastosować również do open polecenia . To powiedziawszy, powodem, dla którego postanowiłem owinąć AppleScript w funkcję, jest w pewnym momencie open polecenie użyte w ten sposób w przeglądarce Google Chrome . Dzieje się tak, ponieważ gdy Google Chrome jest już otwarty, otwiera drugą instancję , która jest następnie przekazywana do pierwszej instancji, a druga instancja zostaje zakończona. To zachowanie może stać się problematyczne, gdy Goggle Chrome zostanie zaktualizowany, a AppleScript w funkcji nie będzie, ponieważ mówi tylko do pierwszegowystąpienie z Google Chrome .

użytkownik3439894
źródło
Otworzył jeden w nowej karcie.
Algebra
@Yumi Tada, zaktualizowałem swoją odpowiedź --new-windowdodając do --args opcji . Otwiera URL w nowym oknie i działało dla mnie.
user3439894
1

Powyższe odpowiedzi działają z wiersza polecenia, ale jeśli chcesz, aby Chrome domyślnie otwierał wszystko w nowym oknie wszędzie (i nie tylko z wiersza poleceń), musisz zmienić procedury obsługi plików http / https na skrypt, który robi to, co chcesz.

Po ustawieniu domyślnego modułu obsługi do otwierania nowego okna będzie on działał z wiersza polecenia lub po kliknięciu łącza w poczcie lub w podobny sposób, a tym samym znacznie lepiej zintegruje się ze Spaces, ponieważ uzyskasz nowe okno na bieżącym miejscu z pożądany link, zamiast nowej karty w innej Przestrzeni, na którą musisz polować.

W szczególności potrzebujesz takiego skryptu:

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

Następnie zapisujesz go w ScriptEditor jako aplikację, uruchom go, aby zarejestrować go w LaunchServices, i edytuj plik ~ / Library / Preferences / com.apple.LaunchServices / com.apple.launchservices.secure.plist, aby aplikacja była domyślna dla http / https.

Możesz znaleźć zintegrowane rozwiązanie ze skryptem jako aplikacją i (w bieżącym komentarzu) skrypt edycyjny PList, aby poinformować system o używaniu Twojej aplikacji tutaj:

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

Inspiracja z http://pepijndevos.nl/2010/05/open-external-links-in-running-browser/ i https://github.com/primalcurve/macsupportpub/blob/master/scripts/setGoogleChromeAsDefaultBrowser_Scrubbed.sh

Mike Hardy
źródło