Envoi de clé via ssh ou à l'aide de la souris pour activer le mode d'affichage cible?


11

Est-il possible d'envoyer une frappe via SSH? Je veux pouvoir envoyer ⌘ (CMD)+ F2via ssh depuis / vers Mac OS X. Si ce n'est pas possible, une solution de souris serait également bonne.

La raison pour laquelle j'ai besoin de cela est que je n'ai qu'un seul clavier (mais deux souris). J'utilise mon iMac comme écran externe. Pour activer le mode d'affichage cible sur l'iMac, je dois connecter le clavier Bluetooth à chaque fois, appuyez sur CMD+ F2, puis essayez de connecter mon ordinateur portable au clavier.

L'envoi de CMD+ F2via ssh ou la possibilité d'utiliser ma souris sur l'iMac d'origine m'éviterait des ennuis!

Réponses:


3

Non testé, mais je pourrais envisager de créer un script Apple dans ~ / bin / command_f2 sur l'iMac avec le contenu suivant:

dire à l'application "Evénements système" d'appuyer sur "F2" en utilisant la commande {bas}

puis à partir de votre type d'ordinateur portable:

ssh me @ imac '~ / bin / command_f2'

Pour obtenir plus d'aide avec cette question, envisagez de changer le titre en quelque chose comme "Envoi de touches via ssh" parce que "touches" pourrait signifier confondu avec les touches ssh.

Bonne chance.


1
Sur le bon chemin. Ce que j'ai essayé, c'est osascript -e 'tell application "System Events" to key code 120 using command down';. Il fonctionne généralement et peut envoyer des clés, mais en ce qui concerne CMD + F2, il ne semble pas fonctionner / activer le mode d'affichage cible. La commande est-elle correcte? Existe-t-il un autre moyen d'activer le mode d'affichage cible avec la souris ou la commande? Codes clés trouvés ici
iDev247

J'ai pu le faire avec keyboardmaestro.com/main ... Je me demande ce qu'il envoie comme commande pour le faire fonctionner.
iDev247

Je n'ai pas de clavier Apple, pourriez-vous partager votre macro si possible? L'enregistrement de Cmd-F2 à l'aide de mon filco ne change pas.
Florian Doyon

15

Désolé, John Schmitt, votre solution non testée ne fonctionne pas, mais vous étiez sur la bonne voie. Celui-ci est testé et cela fonctionne.

La bonne commande est (si vous incorporez des Applescripts dans des scripts shell, c'est ainsi que je préfère le faire):

osascript -e 'tell application "System Events" to key code 144 using command down'

Enregistrez-le, par exemple, sous ~ / bin / tdm.sh, sur la machine d'affichage cible.

Ensuite, à partir de la machine principale, émettez ceci dans le terminal:

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

Il existe d'autres façons d'enregistrer et d'appeler la commande Applescript. Je trouve plus pratique et cohérent de les intégrer dans des scripts shell - ma préférence particulière, car je fais quand même beaucoup de scripts shell.


1
Cela ne fonctionne pas pour moi, sur un iMac 27 "qui entrait heureusement TDM via cmd-f2 sur un vrai clavier Apple hier, mais qui ne l'est plus aujourd'hui. Quelqu'un sait-il comment je peux le forcer à partir du firmware? n'a pas besoin / ne veut pas démarrer MacOS du tout sur cette machine
Robert Atkins

1
Cela fonctionne pour moi, mais uniquement si un clavier physique y est réellement connecté via USB ou Bluetooth. N'est-il pas possible de le faire sans lui?
Vivek VK

Cela peut aussi être non testé, car cela ne fonctionne pas.
hmedia1

@VivekVK C'est possible. La preuve de concept est que cela peut être fait à partir du clavier d'accessibilité (sans aucun clavier connecté), donc les API sont là ... quelque part
hmedia1

ne fonctionne pas pour moi
wukong

0

J'ai ce script sur mon "affichage" iMac et je partage simplement l'écran du portable pour le cliquer et l'exécuter. Si l'iMac est verrouillé, j'utilise Remote Desktop pour le déverrouiller. Je suis sûr qu'il existe un moyen plus efficace, mais c'est super facile ...

tell application "System Events"
    key code 144 using {command down}
end tell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.