私のラップトップで、オートリピート(xset r on
) 動作しません。 xev
の出力を確認すると、自動繰り返しが失敗する理由は、別のキーが断続的に押されているため(何も押されていないのに)、現在押し続けているキーの自動繰り返しがキャンセルされているためと思われます。キーが押されていない場合、次のイベントが一貫して繰り返されて記録されます。
KeyPress event, serial 33, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
キーコード221のキーが押されていなくても押されているようです。
したがって、xorgがそのキーコードからキー押下信号をまったく受信しないようにキーコードを完全に無効にすることは可能ですか?または、別のキーが押されているかどうかに関係なく、押したときにキーを自動リピートさせることはできますか?
更新:
実行後Sudo evtest
、隠された出力がから来ているときのようです
/dev/input/event11 PEAQ WMI hotkeys
何も押されていない場合、他の入力デバイスはイベントを送信していないようです。オートテストは、evtestでキーボードイベントをチェックするときに機能します。
何も押されていないときに数秒間実行されるxev
の完全な出力:
Outer window is 0x1200001, inner window is 0x1200002
PropertyNotify event, serial 8, synthetic NO, window 0x1200001,
atom 0x27 (WM_NAME), time 1651733, state PropertyNewValue
PropertyNotify event, serial 9, synthetic NO, window 0x1200001,
atom 0x22 (WM_COMMAND), time 1651733, state PropertyNewValue
PropertyNotify event, serial 10, synthetic NO, window 0x1200001,
atom 0x28 (WM_NORMAL_HINTS), time 1651733, state PropertyNewValue
CreateNotify event, serial 11, synthetic NO, window 0x1200001,
parent 0x1200001, window 0x1200002, (10,10), width 50, height 50
border_width 4, override NO
PropertyNotify event, serial 14, synthetic NO, window 0x1200001,
atom 0x15c (WM_PROTOCOLS), time 1651734, state PropertyNewValue
MapNotify event, serial 15, synthetic NO, window 0x1200001,
event 0x1200001, window 0x1200002, override NO
ReparentNotify event, serial 28, synthetic NO, window 0x1200001,
event 0x1200001, window 0x1200001, parent 0x4000d5,
(0,0), override NO
ConfigureNotify event, serial 28, synthetic NO, window 0x1200001,
event 0x1200001, window 0x1200001, (2,0), width 952, height 1033,
border_width 2, above 0x0, override NO
PropertyNotify event, serial 28, synthetic NO, window 0x1200001,
atom 0x15e (WM_STATE), time 1651735, state PropertyNewValue
MapNotify event, serial 28, synthetic NO, window 0x1200001,
event 0x1200001, window 0x1200001, override NO
VisibilityNotify event, serial 28, synthetic NO, window 0x1200001,
state VisibilityUnobscured
Expose event, serial 28, synthetic NO, window 0x1200001,
(0,0), width 952, height 10, count 3
Expose event, serial 28, synthetic NO, window 0x1200001,
(0,10), width 10, height 58, count 2
Expose event, serial 28, synthetic NO, window 0x1200001,
(68,10), width 884, height 58, count 1
Expose event, serial 28, synthetic NO, window 0x1200001,
(0,68), width 952, height 965, count 0
ConfigureNotify event, serial 28, synthetic YES, window 0x1200001,
event 0x1200001, window 0x1200001, (962,18), width 952, height 1033,
border_width 2, above 0x0, override NO
FocusIn event, serial 28, synthetic NO, window 0x1200001,
mode NotifyNormal, detail NotifyNonlinear
KeymapNotify event, serial 28, synthetic NO, window 0x0,
keys: 4294967236 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PropertyNotify event, serial 28, synthetic NO, window 0x1200001,
atom 0x14f (_NET_WM_DESKTOP), time 1651736, state PropertyNewValue
KeyRelease event, serial 30, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1651775, (-509,794), root:(455,814),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
XLookupString gives 1 bytes: (0d) "
"
XFilterEvent returns: False
MappingNotify event, serial 33, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 33, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1653200, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1653200, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1654000, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1654000, (-509,794), root:(455,814),
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 34, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 34, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1654760, (-509,794), root:(455,814),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 35, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 35, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1654800, (-509,794), root:(455,814),
state 0x40, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x1200001,
root 0x123, subw 0x0, time 1654800, (-509,794), root:(455,814),
state 0x40, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 36, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
FocusOut event, serial 36, synthetic NO, window 0x1200001,
mode NotifyGrab, detail NotifyAncestor
ClientMessage event, serial 37, synthetic YES, window 0x1200001,
message_type 0x15c (WM_PROTOCOLS), format 32, message 0x15d (WM_DELETE_WINDOW)
Redhat bugzillaバグ#1497861 に従って、これはカーネル4.13で導入されたバグのようです。
peaq_wmi
モジュールのアンロードも回避策として機能することがわかりました。しかし、誰かがすでに問題を修正するためのパッチを提出しているようです。
(peaq_wmi
モジュールをアンロードするには、コマンドSudo modprobe -r peaq_wmi
を発行できます。)
PEAQWMIホットキーを無効にすると修正されることがわかりました。最初にxinput list
をチェックして、IDを見つけることにより、PEAQWMIホットキーを無効にしました。
[email protected]:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=11 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Dell Dell KM632 Wireless Keyboard and Mouse id=10 [slave keyboard (3)]
↳ Lenovo EasyCamera: Lenovo EasyC id=13 [slave keyboard (3)]
↳ Ideapad extra buttons id=14 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=15 [slave keyboard (3)]
↳ Dell Dell KM632 Wireless Keyboard and Mouse id=18 [slave keyboard (3)]
↳ PEAQ WMI hotkeys id=17 [slave keyboard (3)]
この場合、IDは17です。次に、.xinitrcに、xinput --disable 17
、または問題の原因となっているIDを追加しました。これにより、問題が修正されます。
最新のカーネルアップデート後、elementaryOSで同じ問題が発生します。私はそれについて投稿しました ここ 。答えの1つであるSudo modprobe -r peaq_wmi
を使用して、問題を解決しました。
編集:xinput --disable 17
を.xinitrに追加すると、問題は永続的に解決されませんでしたnotので、起動するたびに上記のコマンドを実行します。 elementaryOSにLenovoYoga500-14IHWがあります。
また、このバグはArch Linux関連ではないので、そのようにマークしてください。そうすると、より多くの人がこの問題の解決策を見つけられるようになります。