Klavye tuşlarını zorla yeniden eşleştirmenin bir yolunu bulmaya çalışıyorum.
Ben xmodmap ve setxkbmap kullanmayı denedim, ancak belirli bir uygulama için çalışmıyor. Bu tür komutlar X tho'daki diğer normal pencereli / uygulamalar için çalışır.
Bence uygulama klavye ham verilerini okuyor ve X girişini yok sayıyor olabilir mi?
Peki, xmodmap ve setxkbmap kullanmadan anahtarları nasıl yeniden eşleyebilirim? bazı yazılımlar kullanılarak yapılması mümkün ise.
Ayrıca xkeycaps, xkbcomp'ı denedim, ancak X üzerinde çalıştığı için loadkey'leri denemedim.
Burada deneyebileceğimi buldum setkeycodes
, "çünkü çekirdek anahtar kodunu atadıktan sonra düğme xorg'da çalışmalı" , ama aynı zamanda "USB klavyelerde 'setkeycode'ları kullanamazsınız" , bu benim durumumla ilgileniyorum Birisi ben bir adaptör kullanabilirsiniz düşünüyorum gibi ps2 üzerinde çalışmasını sağlamak).
Bu, umut verici "
Tarama kodlarını anahtar kodlarına eşleştir " gibi görünüyordu , ancak birkaç testten sonra hiçbir şey değişmedi, işte bunlar: vt1'de "36" ("j" tuşu) anahtar kodunu showkey
"7e" (tuş takımı ".") Buldum vt1 ileshowkey --scancodes
$cat >/etc/udev/hwdb.d/90-custom-keyboard.hwdb
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_7e=36
$udevadm hwdb --update #updates file: /lib/udev/hwdb.bin
$udevadm trigger #should apply the changes but nothing happened
$cat /lib/udev/hwdb.bin |egrep "KEYBOARD_KEY_7e.{10}" -ao
KEYBOARD_KEY_7eleftmeta
$#that cat on hwdb.bin did not change after the commands..
Obs .: ile de çalışmadı: KEYBOARD_KEY_7e=j
Anahtarları bulmak için başka alternatif yollar (@ vinc17 ile):
evtest /dev/input/by-id/...
veya
input-kbd 3
( ls -l /dev/input/by-id/*
ör. Event3'te bulunan kimlik dizinini yerleştirin )
Not: * Kendinizi test etmekle ilgileniyorsanız, uygulama için ilgili konu şudur: http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ Sorunlar I aynı: bazı anahtarlar (KP_Decimal, DownArrow, UpArrow, RightArrow) yok sayılır ve hepsi aynı değerde "0x00" olarak kabul edilir
showkey --scancodes
klavyemle udev'in beklediği tarama kodlarını vermiyor (değerler farklı); input-kbd
programı doğru scancodes verir.
evtest
program da size doğru tarama kodlarını vermelidir: bir anahtar yazdıktan sonra, 2 satır almalısınız ve ilki formun bir şeyiyle bitmelidir code 4 (MSC_SCAN), value xxx
, burada xxx
tarama kodu. Ama klavyemin sürücüsü buggy ve MSC_SCAN
tekrarlamak istediğim bazı tuşlar için bu satırı alamıyorum . Bu yüzden input-kbd
, seçili cihaz için tüm tarama kodlarını listeleyen kullandım .
/etc/udev/hwdb.bin
, değil/lib/udev/hwdb.bin
. Ancak bu dosya doğru bir şekilde güncellenmiş olsa da, bu yeniden başlatmadan sonra bile benim için çalışmıyor. Belgelerde eksik olan bir şey olabilir. Bu konuda: bugs.freedesktop.org/show_bug.cgi?id=82311