
Можно ли отправить нажатие клавиши через SSH? Я хочу иметь возможность отправлять ⌘ (CMD)+ F2через ssh из/в Mac OS X. Если это невозможно, то решение с мышью тоже было бы хорошим.
Причина, по которой мне это нужно, в том, что у меня только одна клавиатура (но две мыши). Я использую свой iMac как внешний дисплей. Чтобы активировать режим целевого дисплея на iMac, мне нужно каждый раз подключать клавиатуру Bluetooth, нажимать CMD+ F2, а затем пытаться подключить свой ноутбук к клавиатуре.
Отправка CMD+ F2через ssh или возможность использовать мышь на оригинальном iMac избавили бы меня от множества проблем!
решение1
Не тестировалось, но я бы рассмотрел возможность создания скрипта AppleScript в ~/bin/command_f2 на iMac со следующим содержимым:
указать приложению «Системные события» нажать клавишу «F2» с помощью {command down}
и затем на своем ноутбуке введите:
ssh мне@imac '~/bin/command_f2'
Чтобы получить больше помощи по этому вопросу, попробуйте изменить заголовок на что-то вроде «Отправка нажатий клавиш через ssh», поскольку «ключи» можно спутать с ключами ssh.
Удачи.
решение2
Извините, Джон Шмитт, ваше непроверенное решение не работает, но вы были на правильном пути. Это проверено, и оно работает.
Правильная команда выглядит так (если вы встраиваете 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
У меня есть этот скрипт на моем "дисплее" iMac, и я просто делюсь экраном с портативного компьютера, чтобы щелкнуть и запустить его. Если iMac заблокирован, я использую Remote Desktop, чтобы разблокировать его. Я уверен, что есть более эффективный способ, но он очень простой...
tell application "System Events"
key code 144 using {command down}
end tell