我刚刚将 Arch Linux 更新为 gnome shell 3.18,然后我重新启动后,我的“m”不见了,按下它时它什么也没做。我试过使用它,当我搜索应用程序或在 Alt+F2 命令框中输入时它可以工作,但我无法在控制台、浏览器或任何其他地方使用它。这是 m 键的 xev 输出 >
FocusOut 事件,序列 36,合成 NO,窗口 0x2800001,
模式 NotifyGrab,细节 NotifyAncestorFocusIn 事件,序列 36,合成 NO,窗口 0x2800001,
模式 NotifyUngrab,细节 NotifyAncestorKeymapNotify 事件,序列 36,合成 NO,窗口 0x0,
键:2 0 0 0 0 0 0 4 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 0KeyRelease 事件,序列 36,合成 NO,窗口 0x2800001,
根 0xd4,subw 0x0,时间 635522,(301,-434),根:(808,373),
状态 0x10,键码 58(keysym 0x6d,m),same_screen YES,
XLookupString 给出 1 个字节:(6d)“m”
XFilterEvent 返回:False
此处为任何其他键。我必须说 (shift + m) 工作正常。
KeyPress 事件,序列 36,合成 NO,窗口 0x2800001,
根 0xd4,subw 0x0,时间 724970,(425,97),根:(932,904),
状态 0x10,键码 57(keysym 0x6e,n),same_screen YES,
XLookupString 给出 1 个字节:(6e)“n”
XmbLookupString 给出 1 个字节:(6e)“n”
XFilterEvent 返回:FalseKeyRelease 事件,序列 36,合成 NO,窗口 0x2800001,
根 0xd4,subw 0x0,时间 725051,(425,97),根:(932,904),
状态 0x10,键码 57(keysym 0x6e,n),same_screen YES,
XLookupString 给出 1 个字节:(6e)“n”
XFilterEvent 返回:False
我认为可能有一些键盘快捷键与字符 m 绑定,但是我搜索了所有 dconf 并没有发现任何东西。
localectl 状态输出:
系统区域设置:LANG=es_ES.UTF-8
VC 键盘映射:es
X11 布局:es,us
X11 变体:,
PD:我可以通过设置大写锁定并使用 shift+m 来写 m,但这很痛苦。
答案1
您的键盘工作正常,但您的m按键被其他程序劫持。输出中的前两节显示了这一点:您能看到“Modify{Grab|Ungrab}”行吗?它们表明按键的输出被其他程序劫持。
该程序到底是什么,谁也说不准。X11 的最新版本确实具有调查此问题的功能,但在原始 X11 安装中,此功能通常被禁用。在 Linux 中,您需要安装该软件包xdotools
才能使用这些功能。
你可以通过以下命令激活它
xdotools key $KEY
其中 是以下$KEY
之一:
XF86LogGrabInfo:打印当前抓取的列表
/var/log/Xorg.0.log
XF86Ungrab:删除当前抓取,但不会终止执行抓取的进程
XF86ClearGrab:终止获取您密钥的进程。
这是讨论在非常有用的 Arch Linux Wiki 中以及其中的参考文献,特别是他们建议一个可爱的小技巧看看谁在passively
抢你的钥匙。它由以下一行代码组成(已根据您的情况进行了调整):
xdotool keydown "m"; xdotool key "XF86LogGrabInfo"; xdotool keyup "m"; tail /var/log/Xorg.0.log