我突然无法输入等号(=)

我突然无法输入等号(=)

我看过其他几篇与此问题类似的帖子,但我没有运气实施解决方案。如果有人可以找到解决此问题的现有帖子,我很乐意将其标记为重复项。

我不太确定时间,但也许在过去一周左右的时间里,等号键不再输入等号(=)。我必须复制并粘贴它才能写这篇文章。

同样的症状也适用于板载键盘(不要与虚拟键盘混淆,虚拟键盘似乎没有相同的键),因此这肯定不是硬件问题。

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 键盘快捷键...什么快捷键?我不知道,但复制粘贴所有这些=标志确实很痛苦。

相关内容