joj*_*man 6 xorg keyboard xset
如果我用 say 设置键盘重复率xset r rate 250 100
,断开我的 USB 键盘然后运行xset -q
,我可以看到断开连接后键盘重复率自动设置为以下默认值:
$ xset -q | grep delay
auto repeat delay: 660 repeat rate: 25
Run Code Online (Sandbox Code Playgroud)
我可以更改默认值吗?它们存放在哪里?我正在运行 Debian Sid。
你可以改变所谓的座椅默认在/etc/X11/xinit/xserverrc
通过添加相关参数(参考XSERVER(1)
)。
-ardelay milliseconds
sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).
-arinterval milliseconds
sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).
Run Code Online (Sandbox Code Playgroud)
(!) 为了arinterval
从xset
重复频率中计算出以毫秒为单位,计算1000/freq
.
我的现在说 exec /usr/bin/X -nolisten tcp -ardelay 200 -arinterval 20 "$@"
[在https://superuser.com/questions/935801/whenever-i-plug-in-another-keyboard-key-repeating-rate-is-reset-to-some-value 上找到]
(我曾经尝试通过设置使重复率永久化Option "AutoRepeat" "190 70"
/etc/X11/xorg.conf.d/keyboard.conf
,但这不会坚持,所以我(无助地)求助于每分钟运行一次xset
cron 作业 XD)
当我们在 bash 提示符下更改设置时,新设置似乎仅存储在正在运行的 X Server 的内存中。
为了使更改持久,/etc/kbd/config
如果您的系统有该文件,您可能会幸运地取消注释“KEYBOARD_RATE”和“KEYBOARD_DELAY”行。
否则(无论如何,对于 Ubuntu),往往有各种特定于发行版的方法,请参阅: https: //askubuntu.com/q/140255/231504
xset
这就是为什么我猜测仅通过 X Server 中的实时内存设置的值:
当我在 下运行命令时strace
,如下所示:
strace xset r rate 175 37
Run Code Online (Sandbox Code Playgroud)
看来(基于我有限的经验strace
)设置被写入套接字,并且在我的机器上套接字是:
/tmp/.X11-unix/X0
Run Code Online (Sandbox Code Playgroud)
要查看该套接字另一端的内容:
sudo lsof +d /tmp/.X11-unix
Run Code Online (Sandbox Code Playgroud)
...输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Xorg 1635 root 3u unix 0xffff88046ae4bc00 0t0 24945 /tmp/.X11-unix/X0 type=STREAM
Run Code Online (Sandbox Code Playgroud)
...这表明监听套接字的进程是Xorg
(又名 X 服务器)。当然,X 服务器可以假设将这些值持久保存到某个地方的非易失性内存中,但根据用户的多个轶事,情况似乎并非如此。
归档时间: |
|
查看次数: |
5135 次 |
最近记录: |