Я использую Raspberry Pi в сочетании с Chromium (режим киоска), чтобы показать некоторые характеристики. У Pi нет подключенной клавиатуры, поэтому я искал решение для отправки нажатий клавиш с терминала на процесс Chromium (вкладка) . Обычный ввод работает, но как я могу отправить что-то вроде F5
(специальный ключ: обновление браузера) через это решение?
# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0
Ответы:
Программы с графическим интерфейсом не читают со своего стандартного ввода, они получают свой ввод с X-сервера . Существуют инструменты для ввода нажатия клавиши в окне. xdotool довольно распространенный и удобный.
Вам нужно будет найти идентификатор окна, которому вы хотите отправить нажатие клавиши. Вы можете сделать это с помощью xdotool.
xdotool search --class Chrome
возвращает список идентификаторов всех окон Chrome. Если это возвращает более одного, вам нужно выбрать тот, который вы хотите. Вы можете использовать,xdotool search --name
чтобы соответствовать по названию вместо класса. Вы также можете проанализировать вывод wmctrl и извлечь нужный идентификатор окна.Как только вы нашли правильный идентификатор окна, вы можете позвонить,
xdotool
чтобы ввести нажатие клавиши. К сожалению, многие приложения отклоняют синтетические события, то есть нажатия клавиш и события мыши, отправленные другим приложением. Это касается текущих версий Chrome. Можно ввести нажатие клавиши из другого приложения с помощью другого механизма, но для этого необходимо сфокусировать окно. Вы можете сделать все это с помощью xdotool, но это приведет к быстрому переключению фокуса на окно Chrome и обратно. Следующий фрагмент отправляет F5в первое окно Chrome (в произвольном порядке).Или с более старыми версиями xdotool:
Помните, что это отправляет F5это окно, и программа сама решает, что с ним делать. В Chrome это перезагружает текущую вкладку.
источник
--windowid
флаг теперь--window
(команда предупреждает вас больше)--title
Вариант теперь--name
(команда точно так же предупреждает)xdotool search --class Chrome key F5
Решение, предложенное выше, использует xdotool как это
который не работал для меня. После некоторых экспериментов я достиг
Однажды, похоже, это сработало, я определил некоторые скрипты и обновил свой файл .lircrc, как показано здесь:
http://pcfellow.com/ClementineRemote.html
источник
У меня был похожий случай использования Raspberry Pi с Raspbian Wheezy. Мне нужно было вращать вкладки в Chrome, используя режим киоска (к сожалению, установка расширения для этого на старом Chrome больше нецелесообразна). Пример принятого ответа имеет некоторые опечатки или просто не работает с моими версиями программного обеспечения, вот что работает для меня:
источник
Если вы используете Chromium для отображения пользовательской веб-страницы и хотите, чтобы она регулярно обновлялась, вы можете добавить к ней следующий тег:
автоматически обновлять его каждые 5 секунд (вы можете установить его короче или длиннее, если хотите).
источник
Я исторически использовал Auto Hot Key, чтобы делать такие вещи, как отправка нажатий клавиш, однако это не доступно в Linux, но быстрый поиск в Google показывает, что есть IronAHK ( http://www.ironahk.net/ ), там не так много документация еще доступна, но это может помочь.
источник