Програми 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 це перезавантажує поточну вкладку.