14 votes

Comment faire en sorte que Chrome ouvre une nouvelle fenêtre pour les liens externes ?

Comme certains le savent peut-être, le comportement par défaut de Google Chrome pour les liens externes est assez mauvais. J'utilise Spaces, et l'ouverture d'un lien dans une application extérieure à Google Chrome alors que je suis dans un autre Space que la dernière fenêtre utilisée de Chrome entraîne le basculement de Chrome vers la dernière fenêtre utilisée.

Ce comportement est juste mauvais.

Je veux changer ce comportement. Sous Windows, c'est possible : Comment configurer Chrome pour qu'il ouvre les nouvelles instances du navigateur dans de nouvelles fenêtres plutôt que dans un onglet ?

Malheureusement, je ne pense pas que cela soit possible sous OS X Snow Leopard.

J'utilise déjà un outil appelé RCDefaultApps. Il s'agit d'un panneau de contrôle du système où je peux spécifier des applications par défaut pour différents protocoles. Il manque juste la fonctionnalité permettant de spécifier des arguments de ligne de commande supplémentaires pour l'application par défaut.

Quelqu'un peut-il m'aider ? Tous les hacks (à part la création d'une version personnalisée de Chromium) sont acceptables.

9voto

mwidmann Points 2073

Vous pouvez essayer d'utiliser l'AppleScript trouvé sur cette page .

Je viens de l'essayer et il fonctionne parfaitement dans Chrome 12.0.742.122.

Il est extrêmement facile à mettre en place :

  • télécharger le Archives de la liasse
  • double-cliquez dessus pour le décompresser
  • double-cliquez sur OpenUrlInNewChromeWindow
  • ouvrez Safari et définissez le nouveau "Navigateur" comme navigateur par défaut dans les Préférences.

new default browser

6voto

Michael Schmid Points 418

En commençant par la réponse de Dave, j'ai constaté qu'avec Chrome 45, en exécutant osascript n'est plus nécessaire, et qu'avec OS X 10.10, le script d'Apple n'est pas sélectionnable dans les préférences système. Voici comment j'ai résolu le problème.

Créez un script d'Apple en utilisant l'éditeur script d'Apple, et exportez-le en tant qu'application.

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

Installer Application RC par défaut .

RCDefaultApp est un panneau de préférences pour Mac OS X 10.2 ou supérieur qui permet à l'utilisateur de définir l'application par défaut utilisée pour divers schémas d'URL, extensions de fichiers, types de fichiers, types MIME et identifiants de type uniforme.

Dans les préférences du système, ouvrez le nouvel écran des applications par défaut, allez à l'onglet URL, et définissez le script exporté par Apple comme gestionnaire pour http y https .

2voto

UnkwnTech Points 21942

Je n'ai pas réussi à le faire fonctionner non plus.

Ce que j'essayais de faire était d'utiliser la commande suivante :

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

Mais cela ouvre un nouveau Chrome qui se ferme instantanément (si Chrome est déjà ouvert). Je prévoyais d'envelopper la commande ci-dessus dans un bash script et de lui laisser des arguments (pour l'URL).

Mais comme la commande ci-dessus n'a pas fonctionné, je continue à y réfléchir. Jusqu'à présent, je pense que ce n'est pas "possible" sans une modification de Chromium, mais je pourrais négliger quelque chose. Il est tôt et je n'ai pas encore pris de café ;)

2voto

Ray Points 1523

Cela fonctionne sur Mavericks :

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

suivi par :

osascript -e 'activate application "Google Chrome"'

Testé en sh, bash et zsh.

Pour une raison quelconque, si j'essaie de les mettre sur la même ligne, comme ceci :

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

...la deuxième partie n'est pas complète. Je suppose que c'est parce qu'elle est trop proche de la première commande. Alors essayez ceci :

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

Notez que vous n'avez pas besoin de spécifier la partie http:// de l'url à la fin pour que cela fonctionne, mais si vous le faites, vous devez échapper les deux points ( :).

Pour faire de ce script mon navigateur par défaut, j'ai créé un applescript et l'ai exporté en tant qu'application, puis j'ai ouvert les préférences de Safari et défini l'application comme mon navigateur par défaut. Voici le code de l'applescript :

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

Remplacez [myusername] par votre nom d'utilisateur réel.

2voto

Z0B Points 103

Complément de sécurité aux autres réponses [1]

Il faut citer l'URL pour des raisons de sécurité et parce qu'il peut contenir des caractères spéciaux qui doivent être échappés lorsqu'ils sont utilisés comme chaîne de caractères dans bash (par exemple, '&' et '$').

Sinon, l'URL ouverte pourrait être erronée et une URL malveillante peut même exécuter une commande arbitraire sur votre machine. . Testé sur MacOS Catalina (10.15) et inférieur.

Pour mettre tout cela ensemble, le script mis à jour devrait ressembler à ceci :

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

Ou si vous préférez vos commandes avec le chemin complet (comme dans le cas de Michael) :

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

La partie importante dans les deux scripts sont les guillemets autour de l'URL à la fin de la ligne centrale.

[1] : J'aurais bien commenté la réponse des autres mais je n'ai pas la réputation requise, donc j'ai fait une nouvelle réponse.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X