我看过其他几篇与此问题类似的帖子,但我没有运气实施解决方案。如果有人可以找到解决此问题的现有帖子,我很乐意将其标记为重复项。
我不太确定时间,但也许在过去一周左右的时间里,等号键不再输入等号(=)。我必须复制并粘贴它才能写这篇文章。
同样的症状也适用于板载键盘(不要与虚拟键盘混淆,虚拟键盘似乎没有相同的键),因此这肯定不是硬件问题。
Shift + 等号键仍然会键入加号 (+),但物理键盘上的组合键不会在 Web 浏览器和大多数其他应用程序中产生等号 (=)。到目前为止,我发现的物理键盘的两个例外是 GNOME 终端。在终端中,Ctrl 或 Windows 键与等号键的组合会产生等号。此外,Windows 键和等号键在大多数文本编辑器(LibreOffice Writer、Visual Studio Code、Xed 文本编辑器)中键入等号。
在 tty 中(Ctrl + Alt + F2)时,我也可以正常使用等号键,而无需修饰键。只有在 Cinnamon 中我才遇到这个问题。
我只有一种键盘布局 - 英语(美国)。
系统规格:
System:
Host: {HostName}
Kernel: 5.3.0-28-generic x86_64
bits: 64
compiler: gcc
v: 7.4.0
Desktop: Cinnamon 4.4.8
wm: muffin
dm: LightDM
Distro: Linux Mint 19.3 Tricia
base: Ubuntu 18.04 bionic
Machine:
Type: Laptop
System: Acer
product: Aspire A717-72G
v: V1.19
serial: <filter>
Mobo: CFL
model: Charizard_CFS
v: V1.19
serial: <filter>
UEFI: Insyde
v: 1.19
date: 07/13/2018
过去几周进行了内核更新。我避免将内核回滚到以前的版本,因为我不想抓住救命稻草,让自己陷入更糟糕的麻烦,所以我想我应该先发布这个。
更新:
这是正是问题所在我遇到了,但这个问题是在 Windows 中。
我已经重新启动了好几次,并且多次检查了多个修改器是否有卡住的按键,但无济于事。我纠结了好几天才最终决定发布这个问题。如果它像重新启动或卡住键一样简单,我希望现在已经解决了。
使用xev
以下内容已揭示(我是新手xev
,仍在学习这意味着什么):
等号键:
KeymapNotify event, serial 28, synthetic NO, window 0x0,
keys: 66 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 0 0 0 0
我尝试过的所有其他按键示例(即 Shift + 等号键):
KeyPress event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11019227, (-650,-317), root:(211,139),
state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11019779, (-650,-317), root:(211,139),
state 0x11, keycode 21 (keysym 0x2b, plus), same_screen YES,
XLookupString gives 1 bytes: (2b) "+"
XmbLookupString gives 1 bytes: (2b) "+"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11019879, (-650,-317), root:(211,139),
state 0x11, keycode 21 (keysym 0x2b, plus), same_screen YES,
XLookupString gives 1 bytes: (2b) "+"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11020216, (-650,-317), root:(211,139),
state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
同等的按键注册为 KeymapNotify 事件而不是 KeyPress 事件。当指定 时xev -event keyboard
,相等的按键(KeymapNotify 事件)会产生与鼠标光标穿过固定窗口时相同的输出。
有趣的是,使用 Shift 以外的修饰符(例如 Windows/Super、Ctrl 或 Alt)+ 等号键会导致xev
响应指示等号:
KeyPress event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11051562, (-650,-317), root:(211,139),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11051836, (-650,-317), root:(211,139),
state 0x18, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XmbLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11051930, (-650,-317), root:(211,139),
state 0x18, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7800001,
root 0x242, subw 0x0, time 11052111, (-650,-317), root:(211,139),
state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
用于xev | gawk '/keycode/{if($0!=l)print;l=$0;}'
过滤掉多余的数据,每次按键都会返回一行,但等号键除外(认为 Shift + 等号键确实如此 - 请参阅第 3 行和第 4 行)。
state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
state 0x10, keycode 20 (keysym 0x2d, minus), same_screen YES,
state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
state 0x11, keycode 21 (keysym 0x2b, plus), same_screen YES,
state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
state 0x14, keycode 54 (keysym 0x63, c), same_screen YES,
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
尽管键码已映射,但 X 服务器似乎没有看到此按键:
xmodmap -pke | grep equal
结果是keycode 21 = equal plus equal plus
。
附加信息:
$ setxkbmap -query
rules: evdev
model: pc105
layout: us
options: terminate:ctrl_alt_bksp`
答案1
我在 PuppyLinux 中遇到了同样的问题,我可以输入)但不能输入0.然后我尝试了另一个 Linux 发行版,发现它可以工作。
以下是我犯错误的原因:我最近添加了一个新的键绑定,并错误地输入了一个无效的代码(我不记得是哪个),但这就是干扰角色的原因0
。
(旁注:我的窗口管理器是我的窗口管理器jwm
或乔的窗口管理器,但实际上,您使用哪个发行版或窗口管理器并不重要。)
结论:检查自问题出现以来添加的任何新键绑定,无论是从设置自己的键绑定的新程序还是您自己添加的键绑定。
答案2
我遇到了与您完全相同的问题:=
符号在真实键盘和虚拟键盘上都不起作用,但+
符号可以。
我将在此处留下此消息,以防它至少对一个人有帮助:我设法通过按Alt+Z并将键盘快捷键设置回默认值来解决此问题。
原来我的=
标志是 Windows 键盘快捷键...什么快捷键?我不知道,但复制粘贴所有这些=
标志确实很痛苦。