Saya mencoba mengubah Minitel menjadi komputer dengan Raspberry Pi.
Ini adalah minitel:
Jadi saya menyolder matriks keyboard minitel ke pc keyboard usb, seperti ini:
Semuanya berfungsi ok, saya menerima beberapa tombol dari keyboard kustom saya. Saya hanya perlu memetakan kembali tombol-tombolnya dengan tepat.
Jadi saya mencoba membuat program yang akan meminta saya untuk menekan a
dan menjebak kode kunci yang sesuai, dan kemudian dengan semua tombol keyboard kustom saya, untuk akhirnya menghasilkan file xmodmap.
Satu-satunya masalah yang saya miliki adalah bahwa saya tidak tahu bagaimana cara mendapatkan kode kunci itu (dan hanya itu!). Saya mencoba xev
tetapi ada terlalu banyak data yang ditampilkan untuk memfilternya.
Saya tahu saya bisa melacak semua kode kunci dengan tangan, tapi saya akan mengubah 10 Minitels, jadi saya lebih suka cara yang lebih cepat!
sumber
Jawaban:
Saya berasumsi Anda mencoba melakukan ini di shell atau serupa (kalau tidak, Anda hanya akan menggunakan perpustakaan X secara langsung). Jika demikian, Anda mungkin menemukan
xinput --test «device-name»
lebih mudah mengurai.Sayangnya, ini benar-benar tidak bersahabat dengan shell-scripting. Tapi Anda bisa membuatnya bekerja
stdbuf
. Ini berjalan sampai Anda membunuhnya, tetapi skrip shell Anda dapat mengirimkannya ke piparead
.Jadi, Anda dapat melakukan sesuatu seperti ini:
Anda harus menggunakan nama keyboard yang benar sebagai pengganti "AT Translated Set 2 keyboard". Anda dapat menemukannya dengan
xinput list
:Sayangnya, Anda harus menggunakan perangkat tertentu — Anda tidak dapat menggunakan keyboard inti.
(Juga, Anda harus menemukan cara untuk membunuh xinput di atas, atau cukup isi diri Anda untuk menekan Control-C ketika Anda telah memasukkan semua kunci. Dan Anda mungkin ingin membuat daftar lebih banyak kunci daripada qwerty. )
sumber
id
keyboard bukan namanya, karena saya memiliki konflik dengan 2 nama yang sama. Jadi dixinput test 18
mana 18 adalah id dari keyboard saya.test.c
, sepertinya fungsi yang relevanprint_events
. Mungkin xorg akan mengambil tambalan untuk menambahkan bendera untuk berhenti setelah n acara?xinput --query-state
memberikan kondisi saat ini, dan segera keluar. Anda bisa sibuk melakukannya.