Saya menggunakan Raspberry Pi dalam kombinasi dengan Chromium (mode kios) untuk menampilkan beberapa statistik. Pi tidak memiliki keyboard yang terhubung jadi saya mencari solusi untuk mengirim penekanan tombol dari terminal ke proses Chromium (tab) . Input normal berfungsi tetapi bagaimana saya mengirim sesuatu seperti F5
(kunci khusus: refresh browser) melalui solusi ini?
# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0
Jawaban:
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 menggunakanxdotool 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).Atau dengan versi xdotool yang lebih lama:
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.
sumber
--windowid
flag sekarang--window
(perintah memperingatkan Anda sebanyak)--title
pilihan adalah sekarang--name
(perintah setia memperingatkan sebanyak)xdotool search --class Chrome key F5
Solusi yang disarankan di atas menggunakan xdotool seperti ini
yang tidak berhasil untuk saya. Setelah beberapa percobaan, saya tiba di
Suatu kali, itu sepertinya berfungsi, saya mendefinisikan beberapa skrip dan memperbarui file .lircrc saya seperti yang ditunjukkan di sini:
http://pcfellow.com/ClementineRemote.html
sumber
Saya memiliki kasus penggunaan yang sama pada Raspberry Pi menjalankan Raspbian Wheezy. Saya perlu memutar tab di Chrome menggunakan mode kios (sayangnya, memasang ekstensi untuk melakukan ini di Chrome lama tidak lagi masuk akal). Contoh jawaban yang diterima memiliki beberapa kesalahan ketik atau sama sekali tidak berfungsi dengan versi perangkat lunak saya, inilah yang bekerja untuk saya:
sumber
Jika Anda menggunakan Chromium untuk menampilkan halaman web khusus dan Anda ingin me-refresh secara teratur, Anda dapat menambahkan tag berikut untuk itu:
untuk menyegarkan secara otomatis setiap 5 detik (Anda dapat mengaturnya lebih pendek atau lebih lama jika Anda mau).
sumber
Saya secara historis menggunakan Kunci Panas Otomatis untuk melakukan hal-hal seperti mengirim penekanan tombol, namun itu tidak tersedia di Linux, tetapi pencarian Google cepat mengungkapkan bahwa ada IronAHK ( http://www.ironahk.net/ ) tidak ada banyak dokumentasi belum tersedia, tetapi mungkin bisa dilakukan.
sumber