Como abrir novas janelas como instâncias de aplicativos separadas para Chrome, Terminal?


18

Passando do Linux (OpenBox WM) para o MBP, estou lutando para recuperar o nível de produtividade com que estava acostumado ... Uma coisa específica que está acabando, é a insistência da OSX em separar entre "aplicativos" e "janelas", atribuindo chaves diferentes combina entre alternar, cada um com seu próprio comportamento de rotação (suspiro). Isso fica ainda pior porque o OSX insiste em trazer todas as janelas do aplicativo X para a frente sempre que eu mudar para ele. Geralmente, encontro situações em que tenho duas ou mais janelas do Chrome e duas ou mais janelas do Terminal, cada grupo ocupando todo o espaço da área de trabalho, mas não posso ter uma de cada uma na frente ao mesmo tempo.

Outras restrições: não quero mover janelas para áreas de trabalho separadas (ou o que for chamado) apenas para poder trabalhar com elas. Prefiro não usar o mouse, mas estou disposto a fazê-lo se isso resolver o meu problema (não será o caso acima).

Uma coisa que pode resolver meu problema é ser capaz de iniciar novas janelas dos aplicativos importantes (Chrome, Terminal) como instâncias separadas. Isso permitirá que eu alterne entre eles arbitrariamente, sem forçar todos eles para a frente.

Alguém sabe como fazer isso em Yosemite? Muito obrigado!


1
Para ser sincero, volte para o Linux :-) Estou com os mesmos problemas que você há meses e também não consegui resolvê-lo. Você conseguiu finalmente?
flindeberg

Respostas:


15

Você pode tentar a seguinte sintaxe usando o opencomando:

open -na "Google Chrome"

onde -nparâmetros abre uma nova instância, mesmo se uma já estiver em execução.

Adicionar extra --user-data-diriniciará a instância no diretório de perfil separado, por exemplo

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

E usando --profile-directoryvocê pode alterar o nome do perfil padrão.


Definitivamente, isso abre uma nova janela, mas não sei como é uma nova instância. Eu esperava que houvesse vários ícones do Chrome no alternador de tarefas. Acabei por encontrar um aplicativo para fazer algo semelhante a isto: bahoom.com/hyperswitch
kraftydevil

Não sei por que seu sistema não mostra uma nova instância. Quando inicio uma nova instância com o open -nSafari ou o Forklift (como exemplos), eles aparecem no Dock e no alternador de aplicativos como novas versões (assim como no Activity Monitor). Se você procura um alternador alternativo de aplicativos, o Witch by Many Tricks pode ser o que você deseja. Permite alternar por aplicativo e também por janela.
Dustin Wheeler

5
Ah, isso parece ser algo diferente relacionado ao Chrome ... vários aplicativos no meu sistema (iTerm, Safari, Forklift) iniciam novas instâncias, mas o Chrome parece engolir a nova instância (o Activity Monitor mostra uma nova instância quando o opencomando é executado, depois desaparece rapidamente e a nova janela se torna um subprocesso da instância original do Chrome).
Dustin Wheeler

11

Ok, uma resposta completa para o caso geral e especificamente para o Chrome:

Para a maioria dos aplicativos, iniciar com open -naF "App Name"ou open -nF /path/to/application.appdeve ser suficiente (consulte Safari, Forklift, aplicativos do Office etc.).

  • -n abre uma nova instância
  • -adiz openpara procurar na lista de aplicativos registrados (não é necessário especificar o caminho completo, mas pode dar errado se você tiver várias versões de um aplicativo. Às vezes, vejo problemas no meu sistema ao diferenciar aplicativos do macOS e aplicativos instalados pelos sistemas operacionais Parallels… Eu prefiro especificar o caminho diretamente.)
  • -F abre uma nova instância (ignora um estado de salvamento de aplicativo que resta das instâncias anteriores)

Para o Google Chrome, é necessário algo ligeiramente diferente (modificado da fonte nesta postagem do blog ). O Chrome deve ser iniciado a partir da linha de comando com o --user-data-dir=/tmp/dirsinalizador definido "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(especifique seu próprio diretório ... se você precisar apenas de duas instâncias, provavelmente é melhor criar uma segunda base permanente, mas se precisar de um número arbitrário, é melhor criar uma função de shell que cria um diretório temporário aleatório e o exclui ao sair).

O uso desse método resulta em várias instâncias do Chrome na minha máquina e impede que o Chrome as consolide no mesmo processo mestre.

A propósito, você pode incorporar sinalizadores adicionais em sua função de shell para iniciar o Chrome ... uma extensa lista (atualizada automaticamente) está disponível aqui .


2

O método mais simples é o open -ncomando

por exemplo open -n /Applications/Chrome.app/


1
Obrigado. Infelizmente, isso não teve o efeito esperado ... Com o Chrome, ele abriu uma nova janela, mas estava ligada à instância já em execução. Com o Terminal, ele criou uma nova instância que replicava as janelas da instância em execução (de uma maneira muito esquisita). Não sei como proceder aqui, conselhos adicionais são bem-vindos.
garnold

Não tenho muita certeza depois disso, desculpe. Eu apenas uso o Spaces e alterno entre as configurações de trabalho, dependendo do que estou fazendo.
Tetsujin

O comportamento da replicação provavelmente está vinculado ao recurso Continuar, introduzido no OS X 10.7. Você pode desativá-lo por aplicativo usando o defaults writecomando ou pode usar o -Fsinalizador com open( por exemplo, open -nFa "Terminal" ) para abrir uma instância "nova" de um aplicativo (verifique a manpágina para abrir).
Dustin Wheeler

1

Você (eventualmente) precisará executar o aplicativo no Terminal.

Você pode usar o open -ncomando do Terminal (como mencionado por @Tetsujin) ou, no pacote de aplicativos, clicar no executável (geralmente em Application/Contents/MacOS/)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.