So öffnen Sie in Chrome ein neues Fenster für externe Links

Wie einige Leute vielleicht wissen, ist das Standardverhalten für externe Links von Google Chrome ziemlich schlecht. Ich verwende Spaces und das Öffnen eines Links in einer Anwendung außerhalb von Google Chrome, während ich mich in einem anderen Space als dem zuletzt verwendeten Chrome-Fenster befinde, führt dazu, dass Chrome zum zuletzt fokussierten Fenster wechselt.

Dieses Verhalten ist einfach schlecht.

Dieses Verhalten möchte ich ändern. Unter Windows ist dies möglich: Wie können Sie Chrome so konfigurieren, dass neue Browserinstanzen in neuen Fenstern und nicht in einem Tab geöffnet werden?

Leider glaube ich nicht, dass dies unter OS X Snow Leopard möglich ist.

Ich verwende bereits ein Tool namens RCDefaultApps. Dies ist eine Systemsteuerung, in der ich Standardanwendungen für verschiedene Protokolle angeben kann. Es fehlt lediglich die Funktion, zusätzliche Befehlszeilenargumente für die Standardanwendung anzugeben.

Kann mir da jemand helfen? Alle Hacks (abgesehen von der Erstellung eines benutzerdefinierten Chromium-Builds) sind akzeptabel.

Antworten (6)

Sie können versuchen, das AppleScript auf dieser Seite zu verwenden .

Ich habe es gerade ausprobiert und es funktioniert perfekt in Chrome 12.0.742.122.

Es ist sehr einfach einzurichten:

  • Laden Sie das Bundle-Archiv herunter
  • Doppelklicken Sie darauf, um es zu entpacken
  • doppelklicken Sie aufOpenUrlInNewChromeWindow
  • Öffnen Sie Safari und legen Sie in den Einstellungen den neuen „Browser“ als Standardbrowser fest.

neuer Standardbrowser

Dies scheint eine (sehr kurze) Verzögerung vor dem Öffnen des Fensters einzuführen, aber es ist genau das, wonach ich gesucht habe. Vielen Dank!
Dieses Applescript funktioniert wunderbar.

Ausgehend von Daves Antwort habe ich festgestellt, dass mit Chrome 45 das Ausführen osascriptnicht mehr erforderlich ist und dass mit OS X 10.10 das Apple Script in den Systemeinstellungen nicht auswählbar ist. Hier ist, wie ich es gelöst habe.

Erstellen Sie ein Apple Script mit dem Apple Script Editor und exportieren Sie es als Anwendung.

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

Installieren Sie die RC-Standard-App .

RCDefaultApp ist ein Einstellungsbereich von Mac OS X 10.2 oder höher, mit dem ein Benutzer die Standardanwendung festlegen kann, die für verschiedene URL-Schemata, Dateierweiterungen, Dateitypen, MIME-Typen und Uniform Type Identifiers verwendet wird

Öffnen Sie in den Systemeinstellungen den neuen Standard-Apps-Bildschirm, gehen Sie zur Registerkarte URL und legen Sie das exportierte Apple-Skript als Handler für http und https fest .

Ich danke dir sehr. Dies ist die einzige Lösung, die für mich funktioniert hat, das macht mich seit Jahren verrückt.
Ich glaube, dass RCDefaultApp nicht mehr existiert. Sein Nachfolger ist offenbar Lord-Kamina/SwiftDefaultApps . Besorgen und installieren Sie das Einstellungsfenster, SwiftDefaultApps.prefpane, aus der aktuellen Version. Weisen Sie dann Ihre AppleScript-App als Standardbrowser zu. Das hat bei mir funktioniert.
Danke dir. Ist es möglich, das neue Fenster zu deaktivieren, wenn Sie beispielsweise die ShiftTaste gedrückt halten?

Ich habe es auch nicht geschafft, es zum Laufen zu bringen.

Was ich versucht habe, war, den folgenden Befehl zu verwenden:

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

Aber das öffnet ein neues Chrome, das sofort geschlossen wird (wenn Chrome bereits geöffnet ist). Ich hatte vor, den obigen Befehl in ein Bash-Skript einzubinden und ihm dann Argumente (für die URL) zu geben.

Aber da der obige Befehl nicht funktioniert hat, denke ich immer noch darüber nach. Bisher glaube ich, dass es ohne eine Änderung an Chromium nicht "möglich" ist, aber ich könnte etwas übersehen. Es ist früh und ich habe noch keinen Kaffee getrunken. ;)

Ja, das habe ich auch versucht. (mit " google.com " statt "Google Chrome.app") Beide Versionen funktionieren nicht.

Das funktioniert bei Mavericks:

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

gefolgt von:

osascript -e 'activate application "Google Chrome"'

Getestet in sh, bash und zsh.

Aus irgendeinem Grund, wenn ich versuche, sie so in dieselbe Zeile zu setzen:

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

...der zweite Teil wird nicht abgeschlossen. Ich nehme an, das liegt daran, dass es dem ersten Befehl zu dicht auf den Fersen ist. Also versuchen Sie Folgendes:

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

Beachten Sie, dass Sie den http://-Teil der URL am Ende nicht angeben müssen, damit es funktioniert, aber wenn Sie dies tun, müssen Sie den Doppelpunkt (:) maskieren.

Um dieses Skript zu meinem Standardbrowser zu machen, habe ich ein Applescript erstellt und es als Anwendung exportiert und dann die Safari-Einstellungen geöffnet und die Anwendung als meinen Standardbrowser festgelegt. Hier ist der Applescript-Code:

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

Ersetzen Sie [myusername] durch Ihren tatsächlichen Benutzernamen.

Der Grund, warum ich diese Lösung der von mwidmann vorziehe, ist, dass diese nach dem Öffnen der URL geschlossen wird, während die andere offen bleiben musste, um zu funktionieren. Dies bedeutete, dass OpenUrlInNewChromeWindow immer in der CMD-Tab-Liste der laufenden Apps war, und jedes Mal, wenn ich eine URL öffnete, musste ich zweimal tippen, um zur vorherigen App zurückzukehren.
Ich kann bestätigen, dass die Verwendung von RCDefaultApp per Michael Schmid auch unter OSX El Capitan (10.11.1) funktioniert.

Sicherheitszusatz zu den anderen Antworten [1]

Man sollte die URL aus Sicherheitsgründen in Anführungszeichen setzen und da sie Sonderzeichen enthalten könnte, die maskiert werden müssen, wenn sie als String in der Bash verwendet werden (z. B. '&' und '$').

Andernfalls könnte die geöffnete URL falsch sein und eine in böser Absicht erstellte URL könnte sogar einen willkürlichen Befehl auf Ihrem Computer ausführen . Getestet auf macOS Catalina (10.15) und niedriger.

Zusammengefasst sollte das aktualisierte Skript so aussehen:

on open location theURL
    do shell script ("open -a 'Google Chrome' --new --args --new-window " & "'" & theURL & "'")
end open location

Oder wenn Sie Ihre Befehle mit vollständigem Pfad bevorzugen (wie in Michaels Fall):

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

Der wichtige Teil in beiden Skripten sind die Anführungszeichen um die URL am Ende der mittleren Zeile.

[1]: Hätte die Antwort der anderen kommentiert, habe aber nicht die erforderliche Reputation, also habe ich eine neue Antwort gegeben.

Die Befehlsoption --new-window hat es für mich getan. ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --new-window https://www.google.com )

Dies ist für Windows – bitte bearbeiten, um auf OS X zu verweisen.