¿Cómo abrir nuevas ventanas como instancias de aplicación separadas para Chrome, Terminal?

18

Al pasar de Linux (OpenBox WM) a MBP, estoy luchando por recuperar el nivel de productividad al que estaba acostumbrado ... Una cosa específica que lo está matando es la insistencia de OSX en la separación entre "aplicaciones" y "ventanas", asignando diferentes claves combos para alternar entre ambos, cada uno con su propio comportamiento de rotación (suspiro). Esto empeora aún más porque OSX insiste en traer todas las ventanas de la aplicación X al frente cada vez que cambie a ella. A menudo me encuentro con situaciones en las que tengo dos o más ventanas de Chrome y dos o más ventanas de Terminal, cada grupo abarca todo el espacio del escritorio, pero no puedo tener uno de cada uno al frente al mismo tiempo.

Otras restricciones: no quiero mover ventanas para separar espacios de trabajo (o como se llame) solo para poder trabajar con ellos. Prefiero no usar el mouse, pero estoy dispuesto a hacerlo si eso resuelve mi problema (no lo hará en el caso anterior).

Una cosa que podría resolver mi problema es poder iniciar nuevas ventanas de las aplicaciones que me interesan (Chrome, Terminal) como instancias separadas. Esto me permitirá cambiar entre ellos arbitrariamente sin forzarlos a todos al frente.

¿Alguien sabe de una manera de hacer eso en Yosemite? ¡Muchas gracias!

Garnold
fuente
1
Para ser honesto, vuelva a Linux :-) He tenido los mismos problemas que usted durante meses y tampoco he podido resolverlo. ¿Lo lograste finalmente?
Flindeberg

Respuestas:

15

Puede probar la siguiente sintaxis con el opencomando:

open -na "Google Chrome"

donde los -nparámetros abren una nueva instancia, incluso si ya se está ejecutando.

Agregar extra --user-data-diriniciará la instancia en el directorio de perfil separado, p. Ej.

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

Y usando --profile-directorypuede cambiar el nombre de perfil predeterminado.

kenorb
fuente
Esto definitivamente abre una nueva ventana, pero no puedo decir cómo es una nueva instancia. Esperaba que hubiera varios iconos de Chrome en el conmutador de tareas. Terminé buscando una aplicación para hacer algo similar a esto: bahoom.com/hyperswitch
kraftydevil
No estoy seguro de por qué su sistema no muestra una nueva instancia. Cuando comienzo una nueva instancia con open -nSafari o Forklift (como ejemplos), aparecen en el Dock y el selector de aplicaciones como nuevas versiones (así como en el Monitor de actividad). Si está buscando un conmutador de aplicaciones alternativo, Witch by Many Tricks podría ser lo que desea. Permite cambiar por aplicación, así como por ventana.
Dustin Wheeler
55
Ahh, esto parece ser algo diferente relacionado con Chrome ... varias aplicaciones en mi sistema (iTerm, Safari, Forklift) comienzan nuevas instancias, pero Chrome parece tragar la nueva instancia (Activity Monitor muestra una nueva instancia cuando opense ejecuta el comando, luego desaparece rápidamente y la nueva ventana se convierte en un subproceso de la instancia original de Chrome).
Dustin Wheeler
11

Ok, una respuesta completa para el caso general y para Chrome específicamente:

Para la mayoría de las aplicaciones, iniciar con open -naF "App Name"o open -nF /path/to/application.appdebería ser suficiente (ver Safari, Forklift, aplicaciones de Office, etc.).

  • -n abre una nueva instancia
  • -ale dice openque busque en la lista de aplicaciones registradas (no es necesario especificar la ruta completa, pero puede salir mal si tiene varias versiones de una aplicación. A veces veo problemas en mi sistema al diferenciar entre las aplicaciones macOS y las aplicaciones instaladas por los sistemas operativos Parallels ... Prefiero especificar la ruta directamente).
  • -F abre una nueva instancia (ignora el estado de guardado de una aplicación que quedó de instancias anteriores)

Para Google Chrome, se requiere algo ligeramente diferente (modificado de la fuente en esta publicación de blog ). Chrome debe iniciarse desde la línea de comandos con el --user-data-dir=/tmp/dirindicador establecido "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(especifique su propio directorio ... si solo necesita dos instancias, probablemente sea mejor hacer una segunda casa permanente, pero si necesita un número arbitrario, lo mejor es crear una función de shell que crea un directorio temporal aleatorio y luego lo elimina al salir).

El uso de este método da como resultado múltiples instancias de Chrome en mi máquina y evita que Chrome las consolide bajo el mismo proceso maestro.

Por cierto, es posible que desee incorporar indicadores adicionales en su función de shell para iniciar Chrome ... una lista extensa (actualizada automáticamente) está disponible aquí .

Dustin Wheeler
fuente
2

El método más simple es el open -ncomando

p.ej open -n /Applications/Chrome.app/

Tetsujin
fuente
1
Gracias. Desafortunadamente, esto no tuvo el efecto esperado ... Con Chrome, abrió una nueva ventana, pero estaba vinculada a la instancia que ya se estaba ejecutando. Con Terminal, creó una nueva instancia que replicaba las ventanas de la instancia en ejecución (de una manera muy extraña). No estoy seguro de cómo proceder aquí, apreciamos más consejos.
Garnold
No estoy seguro después de eso, lo siento. Solo uso espacios y cambio entre configuraciones de trabajo, dependiendo de lo que estoy haciendo.
Tetsujin
El comportamiento de replicación probablemente esté vinculado a la función Reanudar que se introdujo en OS X 10.7. Puede deshabilitarlo por aplicación usando el defaults writecomando, o puede usar el -Findicador con open( por ejemplo, open -nFa "Terminal" ) para abrir una instancia "nueva" de una aplicación (verifique la manpágina para abrir).
Dustin Wheeler
1

Tendrá que (eventualmente) terminar ejecutando la aplicación desde la Terminal.

Puede usar el open -ncomando desde la Terminal (como lo menciona @Tetsujin) o puede hacer clic en el ejecutable del paquete de la aplicación (generalmente en Application/Contents/MacOS/)

JMY1000
fuente