मैं कीबोर्ड कीज को जबरदस्ती रीमैप करने का तरीका खोजने की कोशिश कर रहा हूं।
मैंने xmodmap और setxkbmap का उपयोग करने की कोशिश की, लेकिन वे एक विशिष्ट एप्लिकेशन के लिए काम नहीं करते हैं। इस तरह के कमांड एक्स थो पर अन्य सामान्य विंडो / एप्लिकेशन के लिए काम करते हैं।
मुझे लगता है कि एप्लिकेशन कीबोर्ड कच्चे डेटा को पढ़ रहा है और एक्स इनपुट की अनदेखी कर सकता है?
तो, xmodmap और setxkbmap का उपयोग किए बिना कुंजियों को रीमैप कैसे करें? यदि कुछ सॉफ्टवेयर का उपयोग करना संभव है।
मैंने xkeycaps, xkbcomp की भी कोशिश की, लेकिन लोडकीक्स की कोशिश नहीं की, क्योंकि यह एक्स पर चल रहा है।
मैंने यहाँ पाया कि मैं कोशिश कर सकता था setkeycodes
, "क्योंकि कर्नेल कीकोड असाइन करने के बाद बटन को xorg में काम करना चाहिए" , लेकिन मैंने यह भी पाया कि "आप USB कीबोर्ड पर 'setkeycodes' का उपयोग नहीं कर सकते हैं" , यह मेरा मामला है (मुझे मामले में दिलचस्पी है किसी को यह ps2 पर काम करने के रूप में मुझे लगता है कि मैं एक अनुकूलक का उपयोग कर सकता है)।
यह "की -कोड में मैप स्कैन्कोड" का वादा करता था , लेकिन कुछ परीक्षणों के बाद भी कुछ नहीं बदला, यहां वे हैं:
मुझे vt1 में "36" ("j" कुंजी) showkey
मिला, जिसमें मुझे स्कैकोड "7e" (कीपैड ") मिला। vt1 साथshowkey --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..
अवलोकन: साथ काम नहीं किया: KEYBOARD_KEY_7e=j
चाबियाँ खोजने के लिए कुछ और वैकल्पिक तरीके (@ vinc17 द्वारा):
evtest /dev/input/by-id/...
या
input-kbd 3
( ls -l /dev/input/by-id/*
पूर्व से प्राप्त आईडी इंडेक्स डालें।)
: पी एस .: * आप अपने आप को परीक्षण पर रुचि रहे हैं, तो आवेदन के लिए संबंधित धागा यह है http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ मुद्दों मैं समान हैं: कुछ कुंजियाँ (KP_Decimal, DownArrow, UpArrow, RightArrow) को अनदेखा किया जाता है और सभी को समान मान के साथ "0x00" माना जाता है
showkey --scancodes
स्केनोड्स udv को उम्मीदें नहीं देता (मान भिन्न हैं); input-kbd
उपयोगिता सही scancodes देता है।
evtest
उपयोगिता भी आप सही scancodes देना चाहिए: एक महत्वपूर्ण टाइप करने के बाद, आप 2 लाइनों मिलना चाहिए और पहले एक फार्म के कुछ के साथ समाप्त होना चाहिए code 4 (MSC_SCAN), value xxx
, जहां xxx
scancode है। लेकिन मेरे कीबोर्ड के लिए ड्राइवर छोटी गाड़ी है, और मुझे MSC_SCAN
कुछ कुंजियों के लिए यह लाइन नहीं मिली, जिन्हें मैं रीमैप करना चाहता था। इसलिए मैंने उपयोग किया input-kbd
, जो चयनित डिवाइस के सभी स्कैन्कोड को सूचीबद्ध करता है।
/etc/udev/hwdb.bin
, नहीं/lib/udev/hwdb.bin
। हालाँकि यह फ़ाइल सही ढंग से अपडेट की गई है, यह मेरे लिए भी काम नहीं करता है, यहां तक कि रिबूट के बाद भी। शायद प्रलेखन में कुछ गायब है। इसके बारे में: bugs.freedesktop.org/show_bug.cgi?id=82311