我没有使用像 Gnome 或 KDE 这样的大型 DE 并使用xset命令更改键盘速率:
xset r rate 250 70
Run Code Online (Sandbox Code Playgroud)
但是在系统挂起 (by pm-suspend) 之后,此设置将丢失,因为 udev 删除并再次添加所有设备。
我尝试使用 udev 规则:
# /etc/udev/rules.d/00-custom-keyboard.rules
ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/bin/xset r rate 250 70" # Not working
ACTION=="add", SUBSYSTEM=="usb", RUN+="touch /tmp/test" # Working pretty!
Run Code Online (Sandbox Code Playgroud)
我认为第一条规则不起作用,因为xset实用程序需要一些在上下文中不可用的evdev上下文数据。
我试图用xorg的配置,却发现只有选项来改变键盘布局,也就是XkbLayout和XkbOptions
有没有办法在系统挂起后自动恢复键盘设置?
通过添加/etc/pm/sleep.d/00-keyboard在系统恢复时(不仅)执行的自定义脚本解决了该问题:
#!/bin/bash
case $1 in
hibernate)
# Going to suspend to disk
;;
suspend)
# Going to suspend to RAM
;;
thaw)
# Resuming after hibernating
;;
resume)
# Resuming after suspending
echo "Restoring keyboard settings..."
/opt/scripts/keyboard.sh
;;
*)
echo "Something went wrong"
;;
esac
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅https://wiki.archlinux.org/index.php/Pm-utils#Creating_your_own_hooks