23 votes

Comment ouvrir de nouvelles fenêtres en tant qu'instances d'applications distinctes pour Chrome, Terminal ?

En passant de Linux (OpenBox WM) à MBP, j'ai du mal à retrouver le niveau de productivité auquel j'étais habitué... Une chose spécifique qui me tue est l'insistance d'OSX à séparer les "applications" et "Windows", en assignant différentes combinaisons de touches pour basculer entre les deux, chacune avec son propre comportement de rotation (soupir). C'est encore pire parce qu'OSX insiste pour amener tous les fenêtres de l'application X à l'avant chaque fois que je passe à celle-ci. Je me retrouve souvent dans des situations où j'ai deux ou plusieurs fenêtres Chrome et deux ou plusieurs fenêtres Terminal, chaque groupe occupant tout l'espace du bureau, mais je ne peux pas avoir une de ces fenêtres à l'avant en même temps.

Autres contraintes : Je ne veux pas déplacer Windows vers des espaces de travail séparés (ou quel que soit le nom que l'on donne à cela) juste pour pouvoir travailler avec eux. Je préfère ne pas utiliser la souris, mais je suis prêt à le faire si cela peut résoudre mon problème (ce qui n'est pas le cas dans le cas ci-dessus).

Une chose qui pourrait résoudre mon problème serait de pouvoir démarrer de nouvelles fenêtres des applications qui m'intéressent (Chrome, Terminal) en tant qu'instances séparées. Cela me permettrait de passer de l'une à l'autre de manière arbitraire sans avoir à les mettre toutes au premier plan.

Quelqu'un connaît-il un moyen de faire cela dans Yosemite ? Merci beaucoup !

2 votes

Pour être honnête, revenez à Linux :-) J'ai le même problème que toi depuis des mois et je n'ai pas réussi à le résoudre non plus. Avez-vous finalement réussi ?

19voto

kenorb Points 11627

Vous pouvez essayer la syntaxe suivante en utilisant open commandement :

open -na "Google Chrome"

-n ouvre une nouvelle instance même si une autre est déjà en cours d'exécution.

Ajout d'un supplément --user-data-dir lancera l'instance dans le répertoire de profil séparé, par exemple

open -na "Google Chrome" --args --user-data-dir="$PWD/Foo"

Et en utilisant --profile-directory vous pouvez modifier le nom du profil par défaut.

1 votes

Cela ouvre bien une nouvelle fenêtre mais je ne peux pas dire comment il s'agit d'une nouvelle instance. Je m'attendais à ce qu'il y ait plusieurs icônes Chrome dans le sélecteur de tâches. J'ai fini par trouver une application pour faire quelque chose de similaire : bahoom.com/hyperswitch

1 votes

Je ne sais pas pourquoi votre système ne montre pas une nouvelle instance. Lorsque je commence une nouvelle instance avec open -n de Safari ou de Forklift (par exemple), elles apparaissent dans le Dock et le sélecteur d'applications comme de nouvelles versions (ainsi que dans le moniteur d'activité). Si vous recherchez un autre sélecteur d'applications, Sorcière par Many Tricks pourrait être ce que vous voulez. Il permet de passer d'une application à l'autre et d'une fenêtre à l'autre.

8 votes

Ahh, il semble que ce soit quelque chose de différent lié à Chrome plusieurs applications sur mon système (iTerm, Safari, Forklift) commencent de nouvelles instances, mais Chrome semble avaler la nouvelle instance (Activity Monitor montre une nouvelle instance lorsque le bouton open est exécutée, puis elle disparaît rapidement et la nouvelle fenêtre devient un sous-processus de l'instance originale de Chrome).

15voto

Dustin Wheeler Points 602

Ok, une réponse complète pour le cas général et pour Chrome spécifiquement :

Pour la plupart des applications, le lancement avec open -naF "App Name" ou open -nF /path/to/application.app devrait suffire (voir Safari, Forklift, Office apps, etc.).

  • -n ouvre une nouvelle instance
  • -a dit à open pour regarder dans la liste des applications enregistrées (il n'est pas nécessaire de spécifier le chemin complet, mais cela peut mal se passer si vous avez plusieurs versions d'une application. J'ai parfois des problèmes sur mon système pour différencier les apps MacOS des apps installées par les OS Parallels Je préfère spécifier le chemin directement).
  • -F ouvre une nouvelle instance (ignore l'état de sauvegarde de l'application laissé par les instances précédentes)

Pour Google Chrome, quelque chose de légèrement différent est nécessaire (modifié à partir de la source en cet article de blog ). Chrome doit être lancé depuis la ligne de commande avec l'option --user-data-dir=/tmp/dir défini dans "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" (spécifiez votre propre répertoire si vous n'avez besoin que de deux instances, il est probablement préférable de créer une deuxième maison permanente, mais si vous avez besoin d'un nombre arbitraire, il est préférable de créer une fonction shell qui crée un répertoire temporaire aléatoire puis le supprime à la sortie).

L'utilisation de cette méthode donne lieu à plusieurs instances de Chrome sur mon ordinateur et empêche Chrome de les consolider sous le même processus maître.

A propos, vous pouvez incorporer des drapeaux supplémentaires dans votre fonction shell pour lancer Chrome une liste exhaustive (mise à jour automatiquement) est disponible ici .

2voto

Tetsujin Points 95239

La méthode la plus simple est la open -n commande

par exemple open -n /Applications/Chrome.app/

1 votes

Merci. Cela n'a malheureusement pas eu l'effet escompté... Avec Chrome, cela a bien ouvert une nouvelle fenêtre, mais elle était liée à l'instance déjà en cours. Avec Terminal, cela a créé une nouvelle instance qui a répliqué les fenêtres de l'instance en cours d'exécution (d'une manière très bizarre). Je ne suis pas sûr de savoir comment procéder, j'apprécierais des conseils supplémentaires.

0 votes

Je ne suis pas vraiment sûr après ça, désolé. J'utilise juste Spaces et je passe d'une configuration de travail à l'autre, en fonction de ce que je fais.

0 votes

Le comportement de réplication est probablement lié à la fonction Resume qui a été introduite dans OS X 10.7. Vous pouvez la désactiver sur un sur la base d'une application en utilisant le defaults write ou vous pouvez utiliser la commande -F drapeau avec open ( par exemple, open -nFa "Terminal" ) pour ouvrir une instance "fraîche" d'une application (vérifiez l'icône de l'application). man page pour ouvrir).

1voto

JMY1000 Points 4874

Vous devrez (éventuellement) finir par exécuter l'application à partir du Terminal.

Vous pouvez soit utiliser le open -n à partir du Terminal (comme mentionné par @Tetsujin) ou vous pouvez, à l'intérieur du paquetage de l'application, cliquer sur l'exécutable (généralement dans la section Application/Contents/MacOS/ )

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