Criar atalho global para executar aplicativos de linha de comando

31

Quais etapas eu preciso para executar um programa de linha de comando por meio de um atalho global?

Configurei o Automator para criar um novo Run Shell Script e tentei atribuir um atalho em Preferências do Sistema -> Teclado -> Atalhos de Teclado, mas nada aconteceu.

Adam Flott
fonte
1
Minha pergunta é diferente. Não quero abrir uma janela de terminal.
z-buffer
1
Se você não deseja que uma janela do Terminal seja aberta, está perguntando a mesma coisa que a postagem vinculada.
Daniel

Respostas:

8

Apêndice:

do shell script "ls ~/Desktop"

Adicione o que você deseja lá e poderá executar o Applescript por meio de um aplicativo global de teclas de atalho. Eu recomendaria Spark

Ah, e não sei como atribuir um atalho através das Preferências do Sistema

daviesgeek
fonte
Bingo. Estranha que essa funcionalidade ainda não esteja embutida no OSX. Muito obrigado!
Adam Flott
@ Adam Sim, é um pouco estranho.
Daviesgeek,
8
Exceto que ele foi incorporado ao OS X por meio dos Serviços do Automator, @AdamFlott, é só que a resposta que você aceitou não usa esse método.
Daniel
2
Além disso, AppleScript e Automator fazem parte do OS X.
Daniel
1
-1 por usar terceiros sem um bom raciocínio.
Cregox
32

Sem saber as especificidades do que você está procurando, sugiro criar um novo serviço por meio do Automator . Os serviços podem ser vinculados a gatilhos de pressionamento de tecla e podem executar scripts de shell (entre outras coisas). insira a descrição da imagem aqui

Para configurar o atalho do teclado, vá para Preferências do sistema -> Teclado -> Atalhos -> Serviços, selecione o serviço que você acabou de salvar e clique no botão "Adicionar atalho".

Daniel
fonte
Não está claro para mim, depois de salvar o serviço, como você configura um atalho de teclado.
Liron Yahdav 06/02
@LironYahdav Veja acima edit
Daniel
12

O FastScripts inclui todos os scripts em ~ / Library / Scripts /, para que você não precise adicionar arquivos manualmente. Ele também suporta scripts específicos de aplicativos.

Outros aplicativos que podem ser usados ​​para atribuir atalhos para a execução de scripts:

Você também pode criar um serviço Automator:

  1. Abra o Automator e escolha o modelo de Serviço
  2. Adicionar uma ação Executar Script do Shell ou Executar AppleScript
  3. Verifique se o tipo de entrada e o escopo do aplicativo estão corretos
  4. Cole o script e salve o serviço
  5. Atribuir um atalho no painel de preferências Teclado

Há um bug nas versões 10.7 e 10.8 em que os atalhos para serviços nem sempre funcionam até que o menu de serviços seja mostrado na barra de menus. Os atalhos para serviços não funcionam quando o aplicativo mais à frente não possui uma barra de menus ou um menu de serviços. Também há um pequeno atraso antes da execução dos serviços.

Lri
fonte
mais uma por mencionar outros aplicativos que fazem isso também. Quase fui instalar o spark quando já usava o QuickSilver. Eu não sabia que tinha essa opção.
Marlon
Além disso, a seção no painel "Preferências do teclado" para adicionar um atalho estará na seção "Serviços", se estiver usando a abordagem do Automator.
Brad Parks
7

Eu tentei todas essas opções, mas elas são muito complexas e não confiáveis ​​ou muito caras. Então acabei escrevendo minha própria solução (de código aberto e gratuito).

iCanHazShortcut

Não pode fazer muito agora, mas é um começo. Sinta-se à vontade para contribuir adicionando solicitações e sugestões de recursos.

desequilibrado
fonte
1
Estou tentando encontrar uma solução fácil para esse problema há algumas horas e seu aplicativo é o único que funciona e faz o que deve fazer sem sinos e assobios complicados. Obrigado!
Stijn Martens
@StijnMartens, de nada! Essa é a idéia por trás disso - se você só precisa de um atalho para um comando, recebe um atalho para um comando. Nada mais nada menos.
deseven
Isso funcionou lindamente.
27718 Brian Schermerhorn
2

O Quicksilver pode ser usado para vincular teclas de atalho a ações.

Se você se encontra fazendo algo com frequência, pode acelerar a tarefa ainda mais atribuindo um "gatilho" a ela. Os gatilhos podem ser ativados por atalhos de teclado ou movimentos do mouse

Se você deseja executar um comando ou script de shell do Unix, este post do Stackoverflow fornece mais informações sobre o uso do "módulo Terminal" do Quicksilver.

binarybob
fonte
1

Vou adicionar minha resposta aqui usando o BTT , pois é fácil e pode ser vinculado diretamente a um script de linha de comando:

  1. Selecione Teclado no BTT

Selecione Teclado no BTT

  1. Insira seu atalho (ou sequência de teclas!)

Insira seu atalho (ou sequência de teclas!)

  1. Selecione "Acionar ação predefinida" e digite "shell" para encontrar a ação.

Selecione "Acionar ação predefinida" e digite "shell" para encontrar a ação.

  1. Você pode colar seu script e shell que deseja executar:

Você pode colar seu script e shell que deseja executar:

Clique em Salvar e pronto! Agora teste seu script com o gatilho do teclado que você configurou.

  1. EXTRA: Você pode adicionar notas para lembrar para que serve o atalho ...

Você pode adicionar notas para lembrar para que serve o atalho ...

cody.codes
fonte
Obrigado, acabou indo por esse caminho desde que eu tenho BTT.
Leo Ufimtsev
0

Parece que isso estava disponível na versão 10.6 (consulte http://hints.macworld.com/article.php?story=20090903085255430 ), mas algo ocorreu na versão 10.7.2 (e possivelmente na versão anterior 10.7)

Descobri, porém, que o atalho de teclado dos Serviços é respeitado quando as Preferências do Sistema estão na vanguarda, mas não em nenhum outro aplicativo, incluindo o Finder.

No entanto, a sugestão anterior de usar o Spark funcionou perfeitamente no lion, exceto que eu não poderia usar Ctrl no atalho do teclado. (não um showstopper!)

adamrmcd
fonte
somente quando o menu do aplicativo estiver em foco. Se você clicar na área de trabalho e tentar o atalho, ele não funcionará. clique no menu para encontrar e tente e funcione. Eu tenho um serviço para o Terminal que tem um atalho e aparece em todos os aplicativos ... mas ele não funciona se eu não estiver dentro de um aplicativo e, mesmo assim, o menu precisa ter foco.
Marlon
@Lri mesmo depois de sair e voltar a entrar, reiniciar a máquina, etc. Ele ainda não funciona, a menos que eu faça o que descrevi acima. A configuração no Quicksilver funciona. Gostaria de saber como o QuickSilver pode capturar esses atalhos "globais" e não o sistema operacional.
Marlon