Mengirim penekanan tombol ke sesi X jarak jauh melalui SSH

12

Jadi saya duduk di ruang keluarga kami di laptop Ubuntu yang bekerja sambil menonton TV yang dikendalikan oleh HTPC Ubuntu. Saya memiliki pengaturan jarak jauh IR dan dapat mengontrol semua yang saya perlukan, 99% dari waktu.

Namun input teks pada remote tidak mudah. Saya tidak perlu melakukannya terlalu sering tetapi ketika saya melakukannya, rasanya lebih mudah berjalan 15 kaki untuk menyambungkan keyboard USB dan melakukannya dengan cara itu. Namun ... Saya malas secara kriminal dan medis dan merasa berjalan kaki tidak hanya tidak perlu, itu menunjukkan robot yang telah mereka menangkan. Tidak ada lagi yang saya katakan!

Saya dapat SSH ke dalam HTPC baik-baik saja ... Sekarang, bagaimana cara mengirim penekanan tombol ke sesi X komputer jarak jauh itu?

Saya harus menyebutkan bahwa saya tahu saya bisa VNC tetapi TV 1080p dan laptop 720p jadi ini memperkenalkan beberapa masalah penskalaan. Pada tingkat teknis, saya lebih suka solusi yang memberi saya cara untuk sementara mengubah laptop menjadi keyboard jarak jauh.

Oli
sumber
Aku bahkan lebih malas darimu. Alih-alih mengkonfigurasi remote IR (saya bahkan membelinya!), Saya juga membeli keyboard nirkabel trust .
MadMike

Jawaban:

13

Anda harus dapat melakukannya dengan menggunakan xdotoolperintah, setelah menentukan tampilan X yang sesuai misalnya untuk mensimulasikan satu tekan 'panah bawah' di jendela yang sedang aktif

$ DISPLAY=:0 xdotool getactivewindow key Down

Untuk memasukkan teks literal, Anda dapat menggunakan xdotool type <string>mis

$ DISPLAY=:0 xdotool getactivewindow type 'your text here'

The xdotoolpaket harus tersedia dari repositori Universe.

Steeldriver
sumber
Saya tidak menyangkal itu berfungsi tetapi itu agak menyedihkan jika Anda mencoba mengetikkan lokasi jaringan satu kunci pada suatu waktu.
Oli
3
Anda dapat menggunakan xdotool typeuntuk mengirim string lengkap seperti yang diketik - lihat edit saya di atas.
steeldriver
10

Menggunakan x2xdan beberapa penerusan X11, saya berhasil.

ssh -X htpc x2x -to :0

Satu-satunya downside saat ini adalah saya harus memasukkan TTY untuk membunuh SSH untuk keluar. Masih mencari cara untuk berhenti ketika saya selesai! Jika tidak, ini merupakan metode yang cukup bagus dan sederhana (dan dapat dipotong) untuk mentransfer input dari satu komputer ke komputer lain.

Sunting: menambahkan -nomousememberi saya kemampuan untuk menutup x2xjendela yang diteruskan dan saya dapat membatalkan fokus untuk dengan cepat kembali ke hal-hal lain tanpa perlu mematikan koneksi.

Oli
sumber
-nomousesepertinya tidak berfungsi lagi; bagi saya di bawah ubuntu 16.04 x2x hanya mencetak info penggunaan, di mana pun saya meletakkan bendera itu.
Philipp Ludwig