
É possível enviar um pressionamento de tecla via SSH? Quero poder enviar ⌘ (CMD)+ F2via ssh de/para o Mac OS X. Se isso não for possível, uma solução de mouse também seria boa.
Preciso disso porque tenho apenas um teclado (mas dois mouses). Eu uso meu iMac como monitor externo. Para ativar o modo de exibição de destino no iMac, devo conectar o teclado Bluetooth todas as vezes, pressionar CMD+ F2e tentar conectar meu laptop ao teclado.
Enviar CMD+ F2via ssh ou poder usar o mouse no iMac original me pouparia muitos problemas!
Responder1
Não testado, mas posso considerar a criação de um applescript em ~/bin/command_f2 no iMac com o seguinte conteúdo:
diga ao aplicativo "Eventos do Sistema" para pressionar "F2" usando {command down}
e, em seguida, no seu laptop, digite:
ssh me@imac '~/bin/command_f2'
Para obter mais ajuda com esta questão, considere alterar o título para algo como "Enviando pressionamentos de teclas via ssh" porque "chaves" pode significar confusão com chaves ssh.
Boa sorte.
Responder2
Desculpe, John Schmitt, sua solução não testada não funciona, mas você estava no caminho certo. Este foi testado e funciona.
O comando correto é (se você incorporar Applescripts em scripts de shell, que é como eu prefiro):
osascript -e 'tell application "System Events" to key code 144 using command down'
Salve isso, por exemplo, como ~/bin/tdm.sh, na máquina de exibição de destino.
Então, na máquina primária, emita isto no Terminal:
ssh username@target-display-machine "~/bin/tdm.sh"
Existem outras maneiras de salvar e invocar o comando Applescript. Acho mais conveniente e consistente incorporá-los em scripts de shell - minha preferência particular, já que, de qualquer maneira, faço muitos scripts de shell.
Responder3
Eu tenho esse script no meu iMac "display" e apenas compartilhamento de tela do portátil para clicar e executá-lo. Se o iMac estiver bloqueado, uso a Área de Trabalho Remota para desbloqueá-lo. Tenho certeza que existe uma maneira mais eficiente, mas é super fácil...
tell application "System Events"
key code 144 using {command down}
end tell