Sabayon(Gentooベースのディストリビューション)を実行しているThinkpad Edge E130があり、よく知られているバグが苦労しています。Xorg 255キーコード制限。
私のラップトップにはFn + F4ショートカットがあります。マイクをミュート/ミュート解除。問題は次のとおりです。
showkey -k
キーコードの表示248Fn+F4 キーを押すshowkey -s
キーを押すと何も表示されませんxev
キーを押すと何も表示されません(248 + 8(カーネルによって追加された)が255より大きいため)
キーにキーコードがある場合は、スキャンコードも必要です。そしてスキャンコードを取得プログラムはスキャンコードで26を取得します。
# ./Sabayon/getscancodes/getscancodes /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x17aa product 0x5054 version 0x4101
Input device name: "ThinkPad Extra Buttons"
26 (0x1a)
26 (0x1a)
~によるとこれスレッド、私の考えでは、ショートカットのキーコードを使用しないより小さなキーコードに変更するようです。たとえば、120は私の考えには使用されていないようです。$ xmodmap -pke
私は前に試しました
# setkeycodes 0x1a 120
しかし、成功しませんでした。キーコードは常に248ですshowkey
。 。
キーコードを変更する正しい方法は何ですか?
答え1
showkey
キーストロークスキャンコードを学習するために使用されます。$ sudo showkey -s 0xe0 0xXX
カーネルはコードに8を追加します。
112
代わりに、以下を使用してください。120
$ sudo setkeycodes e0XX 112
xmodmap
キーレポートをkeyymにするには、次の手順を実行XF86AudioMute
します。$ xmodmap -e "keycode 120 = XF86AudioMute"
任意に選択できる。 DE設定で目的の項目のショートカットを作成しながらキーを押します。
答え2
私がしたいのは、「Pause」ボタンを押したときに文字「k」を印刷することです。問題は、「一時停止」ボタンにスキャンコードがないことです(showkey -s
機能しません)。私は次のように問題を解決しました。
- コンソールに切り替える
- 「一時停止」ボタンを知るキーコード
showkey -k
(私の場合は425)
$ showkey -k
keycode 425 press
keycode 425 release
getkeycodes
スキャンコードのキーコード取得のためのマッピングテーブル
e0 68: 128 159 158 157 155 226 225 224
e0 70: 0 192 193 149 148 425 116 0
e0 78: 464 148 0 0 0 0 0 0
- この表で、キーコード425に関連したスキャンコードを見つけてください(私の場合はe075)。
- もう一度Xに切り替える
- 必要なキーコードを見つけるには
xmodmap -pke
(修正することもできます)(私の場合は45)
keycode 45 = k K Cyrillic_el Cyrillic_EL k K
- 8を引いてカーネルキーコードを取得します(45 - 8 = 37)。
setkeycodes
元のスキャンコードe075とカーネルキーコード37の間の相関関係を追加するために使用されます。
sudo setkeycodes e075 37
- テストを見てください。働かなければならない
答え3
ステップ1:xmodmap -pke
キーコードが一覧表示されます。
ステップ2:xmodmap -e 'keycode 51 = backslash bar'
キーコードをバックスラッシュに変更