我可以仅对某些键启用弹跳键吗?


8

在我的笔记本电脑上,我经常遇到空格键重复输入的问题。经过多次替换,并尝试了多种操作系统,我认为问题出在硬件上,而不是软件上。

幸运的是,我了解到Ubuntu具有称为退回键的功能,由于可以过滤重复的击键,因此它可以使我解决该问题。

但是,为所有键启用解决方案有时会过滤我不想过滤的键。例如,当您键入hello时,我经常快速连续按下两个l,但是有时会过滤其中一个l,这可能会很烦人。我知道我将不再需要如此快速连续地按两次空格键,并且由于我只在空格键方面遇到问题,所以我只想启用空格键。

因此,是否可以 在空格键上启用退回键?


重复了几次?每次都会发生吗?
daltonfury42

它不会每次都发生,但是足以令人讨厌。我会说它大约每段出现三遍。必须回去编辑多余的空间可能会很烦人。
Faiz Saleem 2015年

1
该空间通常重复大约两次。如果你看到我原来的职位的来源,你应该很容易就能看到重复的空间,因为我故意在离开了他们。
法伊兹·萨利姆

我已经更新我的答案,但阅读之前,通过阅读
daltonfury42

谢谢,稍后再试-我一直很忙,所以没有机会。
Faiz Saleem 2015年

Answers:


3

xset-X的用户首选项实用程序

r用于控制自动重复。

xset -r 10

将禁用“ 1”键的自动重复。

设定值10

将为“ 1”键启用自动重复。

xset r [键码]

在我的情况下,空格键的密码是65,请使用以下代码检查您的密码: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

不过,如果您需要更改按键速度,也可以使用rate参数。

并将此命令添加到会话启动脚本文件中。


您可以使用来获得当前启用了自动重复的键的列表xset q。这是一个以十六进制形式转储的256位数组,很难读取。
meuh

我一定会同意的。谢谢!
Faiz Saleem 2015年

1
对我来说很好。享受+100代表!
Faiz Saleem 2015年

4

我为您找到了一种解决方案,但是它不涉及弹跳键。我在这里要做的是每次按下空格键一小段时间就停用空格键/键盘。所以就这样:

我们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>是可以通过xinput命令找到的键盘ID 。现在,您希望将xbindkeys配置为在每次启动计算机时都启动。

打开/etc/rc.local并在xbindkeys之前添加行exit 0

大功告成 打开终端,然后键入xbindkeys以立即启动。看看它是否起作用。如果它在空格丢失后没有捕获到双倍空格或字符,请相应地delay在命令中调整in ~/.xbindkeysrc并重新启动。

参考文献:


我对此答案有一些疑问。链接的xinput命令不会禁用键盘,而是禁用触摸屏。我试图修改命令以禁用键盘,但是那也不起作用。正确的命令是:xinput float 13 ; sleep .1 ; xinput reattach 13 3,它确实起作用。但是,该解决方案本身不起作用。当我使用此命令启动xbindkeys时,空格键不再输入空格。它确实确实会暂时禁用键盘,但是没有输入空格字符。难道我做错了什么?
Faiz Saleem 2015年

我也刚刚找到了一种仅禁用空格键的方法。它取决于xmodmap:xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem

@FaizSaleem,对于第一个问题,我感到抱歉,这是我的错误。我给了我10个键盘ID,您可以输入来找到您的键盘ID xinput。但是我们将不需要它,您已经找到了一种单独禁用空间的方法。
daltonfury42

关于第二个问题,我也仅在停用键盘时进行了测试。我尝试使用手动插入空格xdotool getactivewindow key KP_Space,但是它不起作用。
daltonfury42

xdotool key space也不起作用,并且我尝试插入空格的所有其他方法都失败了。
Faiz Saleem
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.