Abra uma nova janela de terminal no espaço atual, independentemente de outros terminais abertos em outros espaços


14

Ao usar o Spaces no Mac OS X, a tentativa de abrir uma nova instância do terminal faz com que o foco seja puxado para qualquer espaço que tenha a janela do terminal acessada mais recentemente. Com o Finder, posso clicar na área de trabalho e usar - Npara criar uma nova janela do Finder. O que estou procurando é um método para executar a mesma função nas janelas do Terminal.

Como posso criar uma nova instância do Terminal no espaço atual, independentemente de haver ou não outra instância do Terminal em um ou mais outros espaços.

Obrigado.


Eu gosto da pergunta, mas acho que deveria estar no superusuário.

Respostas:


4

Você pode criar um novo serviço usando o automator (na pasta de aplicativos). Na parte superior da janela do automator, digite: O serviço recebe 'nenhuma entrada' em 'qualquer aplicativo'. Em seguida, no fluxo de trabalho, adicione 'Executar AppleScript'. Faça com que o AppleScript contenha o seguinte:

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

(Você pode adicionar qualquer comando que desejar na linha do script entre "" (por exemplo, algo útil para executar quando o terminal for aberto pela primeira vez como uptimese você quiser, ou apenas deixá-lo em branco).

Salve o serviço como 'Terminal Aberto' ou o nome que desejar. Agora deve aparecer no seu menu de serviços.

Então, se você deseja adicionar um atalho de teclado, basta acessar a guia Preferências do Sistema -> Teclado -> Atalhos de Teclado, selecionar serviços no menu à esquerda e encontrar seu novo serviço (provavelmente na parte inferior). Basta clicar no espaço à direita do nome do seu serviço e atribuir a ele o atalho de teclado que você quiser, e pronto! tudo deve funcionar


1
Deve-se notar que isso realmente fornece a funcionalidade solicitada. Como uma edição menor, você precisa da do shell script " "linha para abrir uma nova janela no espaço atual, mas não é necessário que o shell script seja um espaço em branco. Se for um espaço em branco, ele fará com que o Terminal execute o espaço em branco como um comando, levando a atrasos na execução e a uma linha estranha na nova janela do Terminal. Apenas crie uma string completamente vazia: do shell script ""e então ela abre uma nova janela do Terminal, mas não emite nenhum comando.
Dakota

Sim, você está certo. Atualizei a resposta para remover o espaço entre as aspas. No entanto, a fim de trabalhar ele precisa ser do script "", e não do shell script "", como @dakota sugeriu
tmdavison

3

Nas atribuições de aplicativos em Preferências do Sistema -> Espaços, defina Terminal como "Every Space" ou exclua a entrada. Portanto, não deverá ser um problema abrir uma nova janela do Terminal onde quiser, por exemplo, clicando no menu de contexto da doca "Nova Janela" (funciona mesmo se você tiver a opção "Ao mudar para um aplicativo, alterne para o espaço com janelas abertas a partir dessa janela"). app "ativada).


A primeira frase é irrelevante, pelo que sei. A configuração para "Every Space" ainda altera o Space ao abrir uma nova janela por meio de algo como AppleScript ou uma combinação de teclas, e o menu de contexto da dock nunca altera o espaço, independentemente dessa configuração. A única coisa interessante nesta resposta é a opção "Ao alternar para um aplicativo, alterne para o espaço com janelas abertas desse aplicativo". Desativá-lo "corrige" a caixa de atalhos de teclas / AppleScript, mas infelizmente "quebra" a guia de comandos. Se apenas o OS-X tivesse uma ligação de teclas adequada para "janelas de ciclo" que funcionasse em todas as janelas em todos os aplicativos e espaços.
Laurence Gonsalves

@LaurenceGonsalves, você pode percorrer todas as janelas do Terminal em todos os Espaços com Comando-Esquerda / Direita. Isso ajuda?
Chris Página

@ Chris Esse é um conjunto interessante de atalhos, obrigado, mas eles não resolvem o problema ao qual estou me referindo. Se a configuração "Ao alternar para um aplicativo ..." estiver desabilitada e você estiver em um espaço sem janelas do Terminal e você guia a opção "Terminal", ela não muda para um espaço que possui uma janela do Terminal e command-backtick não fará nada. Surpreendentemente, comando-esquerda / seta-direita também não faz nada (pelo menos no Snow Leopard). Essas chaves alternarão entre janelas entre espaços se uma janela no aplicativo atual tiver o foco, mas se nenhuma janela tiver o foco, elas não farão nada.
Laurence Gonsalves

2
tell application "Terminal"
    do script ""
    activate
end tell

Para fazer isso funcionar no Lion, digite o texto acima em uma nova janela AppleScript e salve-a. Invoque o script através de um iniciador de comandos como o QuickSilver ou atribua-o a um atalho de teclado. Isso deve funcionar, mesmo se você definiu a configuração "Ao alternar para um aplicativo, alterne para um espaço com janelas abertas para o aplicativo" ativada no Controle da Missão. O truque é executar o comando ativar por último, e não no começo.


Como alternativa, crie um Serviço usando o Automator e atue-o usando um atalho de teclado definido em Preferências do Sistema: apple.stackexchange.com/a/13655/36722
Dakota

0

Se você usar o menu dock para abrir uma nova janela, ela será aberta no espaço atual.


Existe uma maneira de fazer isso no teclado?
Laurence Gonsalves

Control-F3 é "Mover o foco para o Dock". Você pode usar as teclas de seta para navegar pelo menu do ícone Dock do Terminal. Você também pode digitar para selecionar itens de menu por nome, por exemplo, digite "N" ou "Novo W". Consulte Preferências do sistema> Teclado> Atalhos do teclado> Entrada de teclado e texto para ver todos os atalhos do teclado para selecionar e navegar pela interface do usuário.
Chris Page

É possível fazer isso. Você precisa criar um Serviço especial usando o Automator, que pode ser vinculado a um atalho de teclado nas Preferências do Sistema: apple.stackexchange.com/a/13655/36722
Dakota

0

Você pode desativar os espaços de comutação OSX automaticamente quando alterna entre aplicativos, usando os seguintes comandos:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

Trabalhos em 10.6.8


Há uma configuração de GUI para isso também, está em "Mission Control".
SilverWolf - Restabelece Monica
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.