![Ubuntu 不释放大写锁定](https://linux22.com/image/1370824/Ubuntu%20%E4%B8%8D%E9%87%8A%E6%94%BE%E5%A4%A7%E5%86%99%E9%94%81%E5%AE%9A.png)
我通常使用 Caps Lock 来写一个单词的第一个大写字母,并且当我释放它时,ubuntu 会等待才有效地释放 caps lock。
即如果我在键盘上按下
CAPS-LOCKMCAPS-LOCKERY
它应该打印
Mery
但事实上我得到了
MEry
现在我必须激活大写锁定,按下米,取消大写锁定,等待大约一秒钟,然后完成书写单词。
有办法解决吗?
更新
很奇怪,我认为键盘发送的信号实际上是符号或指令的 ASCII 码。因此,操作系统必须有某种方法来接收和管理此信号。好吧,它们最终是处理器中断,但我不认为中断是事情这里。您应该编辑您的问题并提供有关 Ubuntu 版本(32 位或 64 位)、图形界面以及可能的键盘品牌的信息。检查任何键盘驱动程序?
我从 Ubuntu 10.04 开始就遇到键盘问题,我目前正在运行 Ubuntu 12.04 LTS x64,USB 键盘品牌是罗技,但我的笔记本电脑集成键盘也存在同样的问题(它是华硕 A55VM)
答案1
这实际上是一个相当有趣的问题,尽管我最初的想法是“只需使用 Shift 键”,但我认为这不是一个选择。毕竟 Linux 主要是关于自定义体验,所以这肯定是它的一部分。
闲话少说,让我们直奔主题。这个 bug 已经早在 2010 年就已被报告为 #27903(并于 2012 年 9 月标记为已解决)freedesktop.org 错误追踪器。我现在将引用该错误报告中的一些评论,以免您来回奔波:
Burak Çalık 2010-04-29 15:12:36 UTC
如果您习惯使用 Capslock 按钮而不是 Shift 按钮来输入大写字母,并且书写速度太快,就会出现问题。
比如你可以看到在windows和linux上写的相同的句子;
在 Windows 中:“你好朋友。你今天感觉怎么样?”
在 Linux 中:“你好朋友。你今天感觉怎么样?”
当您书写时,CapsLock 键在 Linux 上保持打开状态。
Andreas Wettstein 2011-08-07 01:14:52 UTC
创建附件 50006 [详细信息] [评论] 在 xkbcomp 中支持 noLock 和 noUnlock
xkbcomp 的这个补丁允许以更自然的语法指定 noLock 和 noUnlock 标志。现在可以写入“LockMods(modifiers=Shift+Lock,affect=unlock)”,而不是之前显示的 Private 操作。
Peter Hutterer 2011-08-10 23:47:42 UTC
(回复评论#26)
创建了一个附件 (id=49973) [详细信息] _XkbFilterLockState 中的 noLock 和 noUnlock
转发至列表,谢谢。 http://patchwork.freedesktop.org/patch/6691/
Peter Hutterer 2012-03-05 22:15:36 UTC
提交 e3f6a76dd480717eae4b17ad8e2ff707de2ffe4c 作者:Andreas Wettstein 日期:2011 年 8 月 11 日星期四 16:33:33 +1000
xkb: Support noLock and noUnlock flags for LockMods
Peter Hutterer 2012-06-17 22:38:56 UTC
(回复评论#34)
我安装了 xorg server 1.12。我认为我只需要按照评论 #27 中所述定义 caps lock。但我不知道要编辑哪个文件,你能帮忙吗?
xkbcomp -xkb $DISPLAY my_xkbmap then edit my_xkbmap and re-load it as xkbcomp my_xkbmap $DISPLAY
Peter Hutterer 2012-06-18 19:54:25 UTC
(回复评论#37)
非常感谢。大写锁定延迟问题现在已消失。这种方法是永久性的还是每次启动 x 时我都必须加载 my_xkbmap?
Andreas,您能否提交一个 xkeyboard-config 错误,以便将此代码片段默认引入到键盘映射中。我认为它很有用,值得携带。
Andreas Wettstein 2012-10-28 13:18:01 UTC
Andreas,您能否提交一个 xkeyboard-config 错误,以便将此代码片段默认引入到键盘映射中。我认为它很有用,值得携带。
抱歉又浪费了四个月的时间。现在它就在那里,错误 56491。
因此,现在有一个补丁可以解决一半的问题。参考错误报告 #56491存在于同一个错误跟踪器中,但仍具有 NEW 状态。
从那个错误中没有什么可引用的,只有开发人员之间关于为什么和如何修复它的来回讨论。
所以是的,这个问题仍然存在,但人们正在努力解决它。除了我引用的内容外,错误 #27903 中还有进一步的说明、调试信息和解决方法。#56491 中还有一个补丁集,据说可以修复这个错误(但正如所说,他们正在讨论这个问题)。
答案2
发布了针对此问题的简单且非常有效的解决方案这里。
xkbcomp -xkb $DISPLAY /home/username/myxkbmap
现在你将有一个名为映射在您的主目录中。使用文本编辑器打开该文件并编辑关键的 <caps> 条目,如下所示:
key <CAPS> { repeat=no, type[group1]="ALPHABETIC", symbols[group1]=[ Caps_Lock, Caps_Lock ], actions[group1]=[
LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3) ] }; 保存。然后重新加载:
xkbcomp /home/username/myxkbmap "$DISPLAY"
您可以编写一个可执行启动脚本,这样您就不必在每次 X 启动时都执行此操作,如下所示:
#!/bin/sh xkbcomp /home/username/myxkbmap "$DISPLAY"
使用您想要的任何名称保存它,使其可执行,并使其成为您的启动程序之一。