Ubuntu 14.04 + VMware 6:左 Ctrl 和右 Shift 不起作用

Ubuntu 14.04 + VMware 6:左 Ctrl 和右 Shift 不起作用

在启动 VMware 中的虚拟机之前,所有修饰键均能正常工作。即使在启动 VMware 后,但在启动虚拟机之前,一切正常。

然而,一旦我启动虚拟机左 Ctrl右移键停止工作。它们根本不起作用。

以下几点观察可能会带来一些启发:

  • 我的左移仍在继续工作。
  • 我绘制了我的将 Caps Lock 改为 Ctrl并且它运行正常。
  • 临时执行sudo setxkbmap会将所有内容恢复正常。一旦 VMware 获得焦点并且我输入了一些内容,问题又出现了。
  • 即使我退出 VMware 后问题仍然存在。

这是我第一次使用 Unity(我已经使用 Gnome 很长时间了),我怀疑问题与此有关。您知道为什么会发生这种情况吗?

答案1

总结:

在 Gnome Tweak Tool 中,将“Ctrl 键位置”设置为“Caps Lock 为 Ctrl”,并将“Caps Lock 键行为”设置为“Caps Lock 已禁用”。

完整故事:

问题似乎在于 Ubuntu 如何重新映射 CapsLock 键。当 Gnome Tweak Tool 的“Caps Lock 键行为”属性设置为“将 Caps 设为附加 Ctrl 键”时,xmodmap 报告:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Caps_Lock (0x42),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

问题似乎是两个都锁定和控制列表“Caps_Lock (0x42)”。一切正常,直到您将焦点设置到 VMWare VM(我使用 VMWare Player 进行了测试)。将焦点设置到 VMWare 窗口后,xmodmap将报告一个空映射:

xmodmap:  up to 0 keys per modifier, (keycodes in parentheses):

shift     
lock      
control   
mod1      
mod2      
mod3      
mod4      
mod5      

运行setxkbmap将重置键盘映射并暂时解决问题。使用 后xmodmap,我发现从 lock 中删除 Caps_Lock (0x42) 可阻止 VMWare 刷新键盘映射。,Ubuntu 14.04 忽略.Xmodmap文件,因此没有简单的方法可以使用xmodmap

我们可以通过更改 Gnome Tweak Tool 中的两个设置来解决此情况的根本原因,如本文开头所述。这样做将正确配置键盘映射,以便 Caps_Lock (0x42) 不会出现在两个位置:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_L (0x42),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

相关内容