Enviando chave via ssh ou usando o mouse para ativar o Modo de Exibição de Destino?

11

É 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.

A razão pela qual eu 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, sempre que conectar o teclado Bluetooth, pressione CMD+ F2e tente conectar meu laptop ao teclado.

Enviar CMD+ F2via ssh ou poder usar o mouse no iMac original me pouparia muitos problemas!

iDev247
fonte

Respostas:

3

Não testado, mas posso considerar criar um AppleScript em ~ / bin / command_f2 no ​​iMac com o seguinte conteúdo:

diga ao aplicativo "System Events" para pressionar a tecla "F2" usando {command down}

e depois do seu laptop:

ssh me @ imac '~ / bin / command_f2'

Para obter mais ajuda com essa pergunta, considere alterar o título para algo como "Enviando pressionamentos de tecla via ssh" porque "keys" pode significar confundir com as teclas ssh.

Boa sorte.

John Schmitt
fonte
1
No caminho certo. O que eu tentei foi osascript -e 'tell application "System Events" to key code 120 using command down';. Geralmente funciona e pode enviar chaves, mas quando se trata de CMD + F2, parece não funcionar / ativar o Modo de Exibição de Destino. O comando está correto? Existe alguma outra maneira de ativar o modo Target Display com mouse ou comando? Encontrei os códigos-chave aqui
iDev247
Consegui fazer isso com keyboardmaestro.com/main ... Gostaria de saber o que ele envia como comando para fazê-lo funcionar.
IDev247
Não tenho teclado Apple, você poderia compartilhar sua macro, se possível? A gravação de Cmd-F2 usando meu filco não muda.
Florian Doyon
15

Desculpe, John Schmitt, sua solução não testada não funciona, mas você estava no caminho certo. Este é testado e funciona.

O comando certo é (se você incorporar Applescripts em scripts de shell, é como eu prefiro fazê-lo):

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.

Em seguida, na máquina principal, emita isso no Terminal:

ssh username@target-display-machine "~/bin/tdm.sh"

Existem outras maneiras de salvar e chamar o comando Applescript. Acho mais conveniente e consistente incorporá-los em scripts de shell - minha preferência particular, pois eu faço muitos scripts de shell de qualquer maneira.

Jose
fonte
1
Isso não está funcionando para mim, em um iMac de 27 "que estava felizmente entrando no TDM via cmd-f2 em um teclado Apple real ontem, mas não está mais hoje. Alguém sabe como posso forçá-lo a partir do firmware? não precisa / quer MacOS inicialização em tudo nesta máquina.
Robert Atkins
1
Isso funciona para mim, mas apenas se um teclado físico estiver realmente conectado a ele via USB ou bluetooth. Não é possível fazer isso sem ele?
Vivek VK
Isso também pode não ter sido testado, porque não funciona.
hmedia1
@VivekVK É possível. A prova de conceito é que ele pode ser feito a partir do teclado de acessibilidade (sem qualquer teclado real conectado), para que as APIs estão lá ... em algum lugar
hmedia1
não está trabalhando para mim
wukong
0

Eu tenho esse script no iMac "display" e apenas o 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 de que existe uma maneira mais eficiente, mas é super fácil ...

tell application "System Events"
    key code 144 using {command down}
end tell
David
fonte