Программы с графическим интерфейсом не читают со своего стандартного ввода, они получают свой ввод с 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 это перезагружает текущую вкладку.