11

Можно ли отправить нажатие клавиши через SSH?  Я хочу иметь возможность отправить ⌘ (CMD)+F2 через ssh из / в Mac OS X.  Если это невозможно, мышиное решение тоже подойдет.

Мне это нужно потому, что у меня только одна клавиатура (но две мыши).  Я использую свой iMac в качестве внешнего дисплея. Чтобы активировать целевой режим отображения на iMac, я должен каждый раз подключать клавиатуру Bluetooth, нажимать CMD+F2, а затем пытаться подключить ноутбук к клавиатуре.

Отправка CMD+F2 через ssh или возможность использовать мою мышь на оригинальном iMac избавит меня от множества неприятностей!

3 ответа3

15

Извините, Джон Шмитт, ваше непроверенное решение не работает, но вы на правильном пути. Это проверено, и это работает.

Правильная команда (если вы встраиваете Applescripts в сценарии оболочки, именно так я и предпочитаю это делать):

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

Сохраните это, например, как ~/bin/tdm.sh, на целевом устройстве отображения.

Затем с основной машины выполните это в терминале:

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

Есть и другие способы сохранить и вызвать команду Applescript. Я считаю более удобным и последовательным встраивать их в сценарии оболочки - мое особое предпочтение, так как я все равно выполняю много сценариев оболочки.

3

Не проверено, но я мог бы рассмотреть возможность создания appleScript в ~/bin/command_f2 на iMac со следующим содержимым:

сообщить приложению "Системные события" о нажатии клавиши "F2" с помощью {command down}

а затем с вашего ноутбука типа:

ssh me @ imac '~/bin/command_f2'

Чтобы получить дополнительную помощь по этому вопросу, рассмотрите возможность изменения заголовка на что-то вроде "Отправка нажатий клавиш через ssh", поскольку "ключи" могут означать путаницу с ключами ssh.

Удачи.

0

У меня есть этот скрипт на моем "дисплее" iMac, и я просто делюсь экраном с портативного компьютера, чтобы щелкнуть и запустить его.  Если iMac заблокирован, я использую удаленный рабочий стол, чтобы разблокировать его.  Я уверен, что есть более эффективный способ, но это очень легко ...

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .