Program GUI tidak membaca dari input standar mereka, mereka mendapatkan masukan mereka dari X server . Ada alat untuk menyuntikkan keystroke ke jendela. xdotool cukup umum dan nyaman.
Anda harus menemukan ID jendela yang ingin Anda kirimi penekanan tombol. Anda dapat melakukannya dengan xdotool. xdotool search --class Chrome
mengembalikan daftar ID jendela semua jendela Chrome. Jika ini mengembalikan lebih dari satu, Anda harus memilih yang Anda inginkan. Anda dapat menggunakan xdotool search --name
untuk mencocokkan pada judul, bukan kelas. Anda juga dapat menguraikan output wmctrl dan mengekstrak ID jendela yang diinginkan.
Setelah menemukan jendela ID yang benar, Anda dapat menelepon xdotool
untuk menyuntikkan penekanan tombol. Sayangnya, banyak aplikasi menolak acara sintetis, yaitu penekanan tombol dan acara mouse yang dikirim oleh aplikasi lain. Ini adalah kasus dengan versi Chrome saat ini. Dimungkinkan untuk menyuntikkan penekanan tombol dari aplikasi lain dengan mekanisme yang berbeda, tetapi itu membutuhkan jendela untuk fokus. Anda dapat melakukan semua itu dengan xdotool, tetapi itu akan menyebabkan fokus berkedip cepat ke jendela Chrome dan kembali. Cuplikan berikut dikirimkan F5ke jendela Chrome pertama (dalam urutan agak sewenang-wenang).
xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
Atau dengan versi xdotool yang lebih lama:
xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)
Ingat bahwa ini dikirim F5ke jendela itu dan terserah pada program untuk memutuskan apa yang harus dilakukan dengannya. Di Chrome, ini memuat ulang tab saat ini.