Jak sprawić, by Chrome otworzył nowe okno dla zewnętrznych linków

10

Jak niektórzy mogą wiedzieć, domyślne zachowanie zewnętrznych linków Google Chrome jest dość złe. Używam Spaces i otwieram link w niektórych aplikacjach poza Google Chrome, będąc w innym Space niż ostatnie okno Chrome, powoduje, że Chrome przełącza się na ostatnio aktywne okno.

To zachowanie jest po prostu złe.

Chcę zmienić to zachowanie. W systemie Windows jest to możliwe: jak skonfigurować Chrome do otwierania nowych instancji przeglądarki w nowych oknach zamiast na karcie?

Niestety nie sądzę, że jest to możliwe w OS X Snow Leopard.

Już używam narzędzia o nazwie RCDefaultApps. To jest panel sterowania systemem, w którym mogę określić domyślne aplikacje dla różnych protokołów. Po prostu brakuje tej funkcji, aby określić dodatkowe argumenty wiersza poleceń dla domyślnej aplikacji.

Czy ktoś może mi tam pomóc? Każdy hack (oprócz tworzenia niestandardowej wersji Chromium) jest akceptowalny.

jsadfeew
źródło

Odpowiedzi:

9

Możesz spróbować użyć AppleScript na tej stronie .

Właśnie go wypróbowałem i działa doskonale w Chrome 12.0.742.122.

Jest niezwykle łatwy w konfiguracji:

  • pobierz archiwum pakietu
  • kliknij dwukrotnie, aby go rozpakować
  • kliknij dwukrotnie OpenUrlInNewChromeWindow
  • otwórz Safari i ustaw nową „Przeglądarkę” jako domyślną przeglądarkę w Preferencjach.

nowa domyślna przeglądarka

mwidmann
źródło
Wydaje się, że wprowadza to (bardzo krótkie) opóźnienie przed otwarciem okna, ale dokładnie tego szukałem. Dzięki!
jsadfeew
Ten AppleScript działa wspaniale.
Nelson,
3

Zaczynając od odpowiedzi Dave'a, stwierdziłem, że w Chrome 45 osascriptnie jest już potrzebne uruchamianie , a w systemie OS X 10.10 skryptu Apple nie można wybierać w preferencjach systemowych. Oto jak to rozwiązałem.

Utwórz skrypt Apple Script za pomocą edytora Apple Script i wyeksportuj go jako aplikację.

on open location theURL
   do shell script "/usr/bin/open '/Applications/Google Chrome.app' --new --args --new-window " & theURL
end open location

Zainstaluj domyślną aplikację RC .

RCDefaultApp to panel preferencji Mac OS X 10.2 lub nowszy, który pozwala użytkownikowi ustawić domyślną aplikację używaną do różnych schematów URL, rozszerzeń plików, typów plików, typów MIME i jednolitych identyfikatorów typów

W preferencjach systemowych otwórz nowy ekran domyślnych aplikacji, przejdź do karty URL i ustaw wyeksportowany skrypt Apple jako moduł obsługi http i https .

Michael Schmid
źródło
Dziękuję bardzo. To jedyne rozwiązanie, które działało dla mnie, od lat doprowadza mnie do szału.
Luke Dubert,
2

Nie byłem w stanie sprawić, żeby to działało.

Próbowałem użyć następującego polecenia:

open Google\ Chrome.app/ --new --args new-window www.google.com

Ale to otwiera nowego Chrome, który natychmiast się zamyka (jeśli Chrome jest już otwarty). Planowałem zawinąć powyższe polecenie w skrypcie bash, a następnie pozwolić mu mieć argumenty (dla adresu URL).

Ale ponieważ powyższe polecenie nie zadziałało, wciąż o tym myślę. Jak dotąd uważam, że nie jest to „możliwe” bez modyfikacji Chromium, ale mogę coś przeoczyć. Jest wcześnie i jeszcze nie piłem kawy. ;)

Martin Marconcini
źródło
Tak, też tego spróbowałem. (z „ google.com ” zamiast „Google Chrome.app”) Obie wersje nie działają.
jsadfeew
2

Działa to w Mavericks:

open /Applications/Google\ Chrome.app --new --args --new-window https\://www.google.ca

śledzony przez:

osascript -e 'activate application "Google Chrome"'

Testowane w sh, bash i zsh.

Z jakiegoś powodu, jeśli spróbuję umieścić je w tej samej linii, tak:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; /usr/bin/osascript -e 'activate application "Google Chrome"'

... druga część nie została ukończona. Zakładam, że dzieje się tak, ponieważ jest zbyt blisko pięt pierwszego polecenia. Spróbuj tego:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; sleep 1; /usr/bin/osascript -e 'activate application "Google Chrome"'

Zauważ, że nie musisz określać http: // części adresu URL na końcu, aby działało, ale jeśli tak, musisz uciec do dwukropka (:).

Aby ustawić ten skrypt jako domyślną przeglądarkę, utworzyłem skrypt Apple i wyeksportowałem go jako aplikację, a następnie otworzyłem Preferencje Safari i ustawiłem aplikację jako moją domyślną przeglądarkę. Oto kod Applescript:

on open location theURL
  do shell script "/Users/[myusername]/bin/openUrlInNewChromeWindow.sh " & theURL
end open location

Zamień [moja nazwa użytkownika] na swoją rzeczywistą nazwę użytkownika.

Dave
źródło
Powodem, dla którego wolę to rozwiązanie od rozwiązania firmy mwidmann, jest to, że to zamknie się po otwarciu adresu URL, podczas gdy drugie wydawało się, że musi pozostać otwarte, aby działać. Oznaczało to, że OpenUrlInNewChromeWindow zawsze znajdował się na liście uruchomionych aplikacji CMD-Tab i za każdym razem, gdy otwierałem adres URL, musiałem tabulować dwa razy, aby wrócić do poprzedniej aplikacji.
Dave
Mogę potwierdzić, że użycie RCDefaultApp dla Michaela Schmida działa również na OSX El Capitan (10.11.1).
Dave
-1

Zrobiła to dla mnie opcja polecenia --new-window. („C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe” - nowe okno https://www.google.com )

użytkownik67297
źródło
2
Dotyczy to systemu Windows - edytuj, aby odnosił się do OS X.
grg