Отправка нажатий клавиш в удаленный сеанс X через SSH

12

Поэтому я сижу в нашей гостиной на ноутбуке с Ubuntu и работаю, а также смотрю телевизор, которым управляет Ubuntu HTPC. У меня настроен ИК-пульт и я могу контролировать все, что мне нужно, в 99% случаев.

Однако ввод текста на пульте не очень прост. Мне не нужно делать это очень часто, но когда я это делаю, мне легче пройти 15 футов, чтобы подключить USB-клавиатуру и сделать это таким образом. Однако ... Я уголовно и медицински ленив и чувствую, что ходить на любое расстояние не просто ненужно, это показывает, что они выиграли роботов. Больше не говорю!

Я могу SSH в HTPC нормально ... Теперь, как я могу отправить нажатия клавиш на сеанс X этого удаленного компьютера?

Я должен упомянуть, что я знаю, что могу использовать VNC, но телевизор поддерживает 1080p, а ноутбук - 720p, поэтому возникают проблемы с масштабированием. На техническом уровне я бы предпочел решение, которое дало бы мне возможность временно превратить ноутбук в удаленную клавиатуру.

Оли
источник
Я даже ленивее тебя. Вместо того, чтобы настраивать ИК-пульт (я даже купил его!), Я дополнительно купил трастовую беспроводную клавиатуру .
MadMike

Ответы:

13

Вы должны быть в состоянии сделать это с помощью xdotoolкоманды, указав соответствующий X-дисплей, например, для имитации одного нажатия клавиши «стрелка вниз» в текущем активном окне.

$ DISPLAY=:0 xdotool getactivewindow key Down

Для ввода буквенного текста вы можете использовать, xdotool type <string>например,

$ DISPLAY=:0 xdotool getactivewindow type 'your text here'

xdotoolПакет должен быть доступен из репозитория Universe.

steeldriver
источник
Я не отрицаю, что это работает, но это немного печально, если вы пытаетесь ввести в сетевом расположении по одному ключу за раз.
Оли
3
Вы можете использовать, xdotool typeчтобы отправлять полные строки как напечатанные - см. Мое редактирование выше.
SteelDriver
10

Используя x2xи некоторую пересылку X11, я заставил это работать.

ssh -X htpc x2x -to :0

Единственным недостатком в настоящее время является то, что мне пришлось столкнуться с TTY, чтобы убить SSH, чтобы выйти из него. Все еще смотрю, как бросить курить, когда я закончу! В противном случае это довольно приятный и простой (и ярлык) метод для передачи ввода с одного компьютера на другой.

Редактировать: добавление -nomouseдало мне возможность закрыть перенаправленное x2xокно, и я могу расфокусировать его, чтобы быстро вернуться к другим вещам без необходимости прерывать соединение.

Оли
источник
-nomouseкажется, больше не работает; для меня под Ubuntu 16.04 x2x печатает только информацию об использовании, где бы я ни ставил этот флаг.
Филипп Людвиг