キーボードキーを強制的に再マップする方法を探しています。
xmodmapとsetxkbmapを使用してみましたが、特定のアプリケーションでは機能しません。このようなコマンドは、X thoの他の通常のウィンドウ/アプリケーションに対して機能します。
アプリケーションがキーボードの生データを読み取り、X入力を無視している可能性があると思いますか?
だから、xmodmapとsetxkbmapを使用せずにキーを再マッピングする方法は?何らかのソフトウェアを使用して実行できる場合。
また、xkeycaps、xkbcompを試しましたが、Xで実行されているため、loadkeysは試しませんでした。
私が見つかりました。ここで私は試みることができることを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..
Obs .:は以下とも機能しませんでした: KEYBOARD_KEY_7e=j
キーを見つけるためのいくつかの代替方法(@ vinc17による):
evtest /dev/input/by-id/...
または
input-kbd 3
(ls -l /dev/input/by-id/*
ex。event3 で見つかったidインデックスを置く)
:あなた自身をテストに興味があるならPS:*は、アプリケーションのための関連スレッドはこれです http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/問題I haveは同じです。一部のキー(KP_Decimal、DownArrow、UpArrow、RightArrow)は無視され、すべて同じ値の「0x00」と見なされます
showkey --scancodes
は、udevが期待するスキャンコードを提供しません(値は異なります)。input-kbd
ユーティリティは、正しいスキャンコードを提供します。
evtest
ユーティリティは正しいスキャンコードを提供する必要があります。キーを入力すると、2行が取得され、最初の行はの形式code 4 (MSC_SCAN), value xxx
で終了しますxxx
。しかし、私のキーボードのドライバーはバグがあり、MSC_SCAN
再マップしたいいくつかのキーについてはこの行を取得できません。そのinput-kbd
ため、選択したデバイスのすべてのスキャンコードを一覧表示するを使用しました。
/etc/udev/hwdb.bin
あり/lib/udev/hwdb.bin
ます。しかし、このファイルは正しく更新されていますが、再起動後でもこれは機能しません。おそらくドキュメントに欠けているものがあります。これについて:bugs.freedesktop.org/show_bug.cgi