我的笔记本电脑一直存在一个问题,就是空格键的按键重复。经过多次更换,并尝试了多个操作系统后,我判断这个问题是硬件问题,而不是软件问题。
幸运的是,我了解到 Ubuntu 有一个称为弹跳键的功能,它可以让我解决这个问题,因为重复的击键会被过滤掉。
但是,启用所有键的解决方案有时会过滤掉我不想过滤的键。例如,当我输入你好,我经常按两个升s 连续出现,但有时其中一个升s 被过滤了,这可能相当烦人。我知道我永远不需要如此快速地连续按两次空格键,而且由于我只遇到空格键的问题,所以我只想启用空格键上的弹跳键。
那么,有可能吗仅有的 在空格键上启用弹跳键?
答案1
xset - X 的用户首选项实用程序
r 控制自动重复。
xset-r 10
将禁用“1”键的自动重复功能。
xset r 10
将启用“1”键的自动重复功能。
xset r [键码]
在我的情况下,空格键的键码是 65,请使用以下代码检查您的键码:xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
但是如果您需要改变按键速度,您也可以使用速率参数。
并将此命令添加到会话启动脚本文件中。
答案2
我为你找到了一个解决方案,但它不涉及弹跳键。我在这里所做的是每次按下空格键时,短暂停用空格键/键盘。所以它就是这样:
我们用它xbindkeys
来捕捉空格键按下(在本例中为释放)并xdotool
插入空格。如果您的系统上没有安装它们,请安装它们:
sudo apt-get install xbindkeys xdotool
xbindkeys 配置文件应该已经出现在您的主文件夹中,否则.xbindkeysrc
请创建一个如下文件:
xbindkeys -d > ~/.xbindkeysrc
复制代码片段并将其粘贴到您的 .xbindkeysrc 文件中。
"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
m:0x0 + c:65 + Release
space
这<kbd-id>
是可以通过命令找到的键盘 ID xinput
。现在您要配置 xbindkeys 以在每次启动计算机时启动。
打开并在 之前/etc/rc.local
添加该行。xbindkeys
exit 0
您已完成。打开终端并键入xbindkeys
以暂时启动它。看看它是否能完成工作。如果它没有捕捉到双空格或空格后缺少的字符,请相应地调整delay
我们的命令~/.xbindkeysrc
并重新启动。
参考: