Как отправить нажатие клавиш (F5) с терминала на процесс?

Я использую Raspberry Pi в сочетании с Chromium (режим киоска), чтобы показать некоторые статистические данные. У Pi нет подключенной клавиатуры, поэтому я искал решение для отправки нажатий клавиш с терминала на процесс Chromium (tab) . Обычный ввод работает, но как я могу отправить что-то вроде F5 (специальный ключ: обновление браузера) через это решение?

 # pidof chromium 20809 20790 20788 20786 20783 # echo 'some text' > /proc/20809/fd/0 

5 Solutions collect form web for “Как отправить нажатие клавиш (F5) с терминала на процесс?”

Программы GUI не читаются со своего стандартного ввода, они получают свой вход с X-сервера . Есть инструменты для ввода нажатия клавиши в окно. xdotool довольно распространен и удобен.

Вам нужно будет найти идентификатор окна, на который вы хотите отправить нажатие клавиши. Вы можете сделать это с помощью xdotool. xdotool search --class Chrome возвращает список идентификаторов окон всех окон Chrome. Если это возвращает более одного, вам нужно выбрать тот, который вы хотите. Вы можете использовать xdotool search --name для соответствия заголовку вместо класса. Вы также можете проанализировать вывод wmctrl и извлечь желаемый идентификатор окна.

После того, как вы нашли нужный идентификатор окна, вы можете вызвать xdotool для ввода нажатия клавиши. К сожалению, многие приложения отклоняют синтетические события, то есть нажатия клавиш и события мыши, отправленные другим приложением. Это относится к текущим версиям Chrome. Можно вводить нажатие клавиши из другого приложения другим механизмом, но для этого требуется, чтобы окно было сфокусировано. Вы можете сделать все это с помощью xdotool, но это заставит фокус быстро мерцать в окне Chrome и обратно. Следующий фрагмент отправляет F5 в первое окно Chrome (в несколько произвольном порядке).

 xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow) 

Или со старыми версиями xdotool:

 xdotool windowactivate $(xdotool search --class Chrome) && xdotool key F5 && xdotool windowactivate $(xdotool getactivewindow) 

Помните, что это отправляет F5 в это окно, и это зависит от программы, чтобы решить, что с ней делать. В Chrome это перезагружает текущую вкладку.

В предлагаемом выше решении используется xdotool, как это

  xdotool key --windowid <window> <keystroke> 

который не работал для меня. После некоторых экспериментов я пришел к

  xdotool windowactivate --sync <window> key <keystroke> 

Однажды, казалось, работала, я определил некоторые скрипты и обновил файл .lircrc, как показано здесь:

http://pcfellow.com/ClementineRemote.html

Если вы используете Chromium для отображения пользовательской веб-страницы и хотите регулярно обновлять ее, вы можете добавить к ней следующий тег:

 <meta http-equiv="refresh" content="5"> 

автоматически обновлять его каждые 5 секунд (вы можете установить его короче или дольше, если хотите).

Я исторически использовал Auto Hot Key, чтобы делать такие вещи, как send key presses, однако это недоступно в Linux, но быстрый поиск в Google показывает, что есть IronAHK ( http://www.ironahk.net/ ), что не так много еще есть документация, но это может сделать трюк.

У меня был аналогичный вариант использования на малине Pi, в котором работает Raspbian Wheezy. Мне нужно было повернуть вкладки в Chrome с помощью режима киоска (к сожалению, установка расширения для этого в старых Chrome уже не является разумной). В примере принятого ответа есть некоторые опечатки или просто не работает с моими версиями программного обеспечения, вот что работает для меня:

 xdotool key --window "$(xdotool search --class Chromium | head -1)" Ctrl+Tab 
  • Попытка запустить программу, которая требует X11-сервера на безголовой установке Raspbian
  • Запуск gui из события acpi
  • Как я могу запустить сеанс сервера VNC и немедленно приземлиться в KDE?
  • Вставить текст в другое приложение из сценария через ярлык
  • Xfce 4.10 не работает после жесткого сброса Debian 7.11
  • Монитор, показывающий тот же рабочий стол дважды
  • Могу ли я изменить X, поворачивая xf86-video-fbdev во время выполнения?
  • SSH переадресация окна с Xming
  • удаленное подключение к RHEL с X-сервером из Windows
  • Работа Anacron жалуется: «Gtk-WARNING **: невозможно открыть дисплей»
  • Как X11 взаимодействует с ядром / выполняет вход в систему
  • Interesting Posts

    Почему сортировки корневых процессов не будут сортироваться при попытке сортировки пользователей на основе количества запущенных процессов?

    SSH для сервера, а также команды выполнения и печати

    флаги ext4, чтобы указать режим «экстентов»?

    При попытке открыть / dev / mtd2 для доступа для чтения / записи: разрешение отклонено

    Настройте локальную точку доступа Wi-Fi на компьютере

    Проблема с передачей переменной sed

    Использование sed из оболочки андроида

    Название «уведомлено» ресурсом из «уведомленного» ресурса в кукольном

    Как «замазка» отличается от «telnet»?

    Вставка многострочного текста в несколько файлов через командную строку

    Какая часть этой конфигурации bash PS1 определяет цвет?

    find и exec: почему эта команда не работает?

    что такое этимология `loop device`

    Как иметь дело с утилитами с таким же именем, но вести себя по-разному между вариантами Unix?

    IPtables: ограничение количества новых подключений ssh ​​в минуту

    Linux и Unix - лучшая ОС в мире.