以下是我的.xinitrc:
xset r rate 250 100 &
这会将按住键盘键时的重复率设置为相当高的值。但是,每当我插入另一个键盘时,速率就会被重置为低得多的值。为什么会发生这种情况?我该如何解决?
这是否与其中一个键盘是 PS/2 键盘而另一个是 USB 键盘有关?
答案1
我通过编辑我的解决了同样的问题~/.xserverrc
。
它看起来像这样:
exec /usr/bin/X -nolisten tcp -ardelay 300 -arinterval 25 "$@"
它相当于xset r rate 300 40
,因为 xset 使用频率,而 X 启动选项使用延迟(1000/40Hz = 25ms)。 在您的例子中, ardelay 将是 250, arinterval 将是 10。
请注意,我使用startx
来启动我的 X 会话,但您的显示管理器(如果您使用)可能无法读取您的 xserverrc。即使使用 启动,Gnome 似乎也会覆盖速率startx
。
我正在使用连接到笔记本电脑的 USB 键盘,因此我怀疑 PS/2 与此有关。
答案2
既不编辑我的~/.xserverrc
,也不编辑我的/etc/X11/xinit/xserverrc
工作。
我做了一些工作ps aux | grep X
来找出我的 X 服务器是如何启动的。我发现了以下内容:
/usr/lib/Xorg -background none :0 vt01 -nolisten tcp -novtswitch -auth /var/run/lxdm/lxdm-:0.auth
我很高兴看到了lxdm
。这意味着我的 Xorg 会话是由 LXDM 启动的。是的,我记得现在选择了那个桌面管理器。
我查看了 LXDM 设置,对于 Arch Linux在/etc/lxdm/lxdm.conf
。
在那里我找到以 开头的一行arg=
,其中显示了传递给 X 服务器的参数。我在那里附加了-ardelay 300 -arinterval 25
。
我很高兴它对我有用。希望这个通用程序能让你找到自己的桌面管理器,并且对你有用!
答案3
我已经创建https://github.com/SFTtech/xautocfg来解决这个问题。
一旦它从 X 服务器获取到有新键盘的事件,它就可以自动设置键盘重复率。
通常您的桌面环境应该应用此配置,但我认为您的 DE 不支持这一点。
xautocfg
不需要 root 权限并以您的用户身份运行(最好作为 systemd 用户服务)。