使用用户登录系统 (Ubuntu 16.04) 后,某些键打印错误。按下键“o”时,会打印出“6”,按下键“m”时,会打印出“0”,按下键“l”时,会打印出“3”。
登录之前,我在虚拟控制台上尝试了同样的操作,那里运行正常。我尝试调试同样的操作,在谷歌的帮助下发现“xev”在使用用户登录后返回了错误的键码。
请在以用户身份登录后查看以下“xev”输出。按字符“o”
KeyPress event, serial 28, synthetic NO, window 0x3800001,
root 0x4a6, subw 0x0, time 616901, (137,117), root:(934,169),
state 0x10, keycode 85 (keysym 0xffb6, KP_6), same_screen YES,
XLookupString gives 1 bytes: (36) "6"
XmbLookupString gives 1 bytes: (36) "6"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x3800001,
root 0x4a6, subw 0x0, time 616997, (137,117), root:(934,169),
state 0x10, keycode 85 (keysym 0xffb6, KP_6), same_screen YES,
XLookupString gives 1 bytes: (36) "6"
XFilterEvent returns: False
以访客身份登录后,按字符“o”时显示“xev”输出
KeyPress event, serial 28, synthetic NO, window 0x3000001,
root 0x4a6, subw 0x0, time 364101, (90,118), root:(887,170),
state 0x0, keycode 32 (keysym 0x6f, o), same_screen YES,
XLookupString gives 1 bytes: (6f) "o"
XmbLookupString gives 1 bytes: (6f) "o"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x3000001,
root 0x4a6, subw 0x0, time 364183, (90,118), root:(887,170),
state 0x0, keycode 32 (keysym 0x6f, o), same_screen YES,
XLookupString gives 1 bytes: (6f) "o"
XFilterEvent returns: False
之前这个运行良好。我试图弄清楚用户登录后哪个进程正在更改键映射。