Ubuntu 不释放大写锁定

Ubuntu 不释放大写锁定

我通常使用 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"

使用您想要的任何名称保存它,使其可执行,并使其成为您的启动程序之一。

相关内容