Crie um comando para focar uma janela específica de qualquer lugar no SO


10

Enquanto desenvolvo para a Web, costumo pular muito entre meu editor de texto e o navegador. Eu gostaria de definir um atalho de teclado no nível do sistema operacional que me permita saltar para uma janela específica e definível todas as vezes. Ainda melhor seria a capacidade de emitir um aviso para que o aplicativo execute algo, mas guardarei isso para mais tarde.

Existem tecnologias disponíveis que me permitem fazer isso? Deve haver algo entre C e AppleScript que permita criar esse tipo de interação. Alguém sabe por onde começar?

Obrigado.

Respostas:


2

Você deve experimentar o Automator. Você pode "Gravar" um novo serviço (que você pode publicar posteriormente para todos os aplicativos e atribuir um atalho de teclado), que clica no aplicativo no Dock. De fato, você pode adicionar mais ações e executar seu "dizer ao aplicativo para executar algo".

Tentei criar um (que é relativamente inútil, mas funciona) que clica em Correio no meu Dock e clica no ícone Obter novo email na barra de ferramentas. Diversão ;)

Em anexo está a foto do resultado do Automator:

Automator

Usei o botão Gravar no canto superior direito e, em seguida, realizei as ações (clique no ícone de encaixe do Mail, clique no ícone Obter novo email do Mail na barra de ferramentas e clique em "Parar gravação"). Observe que selecionei "Serviço recebe [sem entrada]" na primeira caixa de combinação, pois não estava interessado em nenhuma entrada.

Isso oferece várias possibilidades para você ter alguns serviços que vão e voltam para o seu TextEditor e seu navegador.

O Automator está localizado usando o Spotlight e digitando Automator (também localizado em /Applications/Automator.app)

Nesse caso, criei um novo "Serviço", mas você provavelmente poderia fugir criando "scripts". Não tenho certeza qual deles seria mais rápido. Experimentar. Automator é seu amigo.


5

Você pode fazer algo assim com AppleScript:

tell application "Terminal"
    activate
    windows where name contains "bash"
    if result is not {} then set index of item 1 of result to 1
end tell

Ou usando Eventos do Sistema:

tell application "System Events" to tell process "Terminal"
    set frontmost to true
    windows where title contains "bash"
    if result is not {} then perform action "AXRaise" of item 1 of result
end tell

1

Uso o BetterTouchTool para definir diferentes atalhos de teclado ou gestos do trackpad no Mac OS X. Uma das ações que ele pode iniciar é o Execute Terminal Command

Portanto, nas configurações do comando, forneço o seguinte:

osascript -e 'tell application "NameOfTheApplicationHere" to activate'

Aqui está um exemplo das preferências do BetterTouchTool:

insira a descrição da imagem aqui


1

Tive muitos problemas para que isso funcionasse com o iTerm2. Aqui está a solução de comando único:

  osascript -e 'tell application "System Events" to tell process "iTerm2"' \
            -e 'set frontmost to true' \
            -e 'if windows is not {} then perform action "AXRaise" of item 1 of windows' \
            -e 'end tell'
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.