我想从命令行检查锁定键(例如 Caps Lock、Num Lock、Scroll Lock 等)的状态(开/关)。如何通过终端命令检查状态?
答案1
只需运行:
xset q
从man xset
:
q The q option gives you information on the current settings.
在输出的顶部,您将找到您的信息,如下所示:
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000003
XKB indicators:
00: Caps Lock: on 01: Num Lock: on 02: Scroll Lock: off
03: Compose: off 04: Kana: off 05: Sleep: off
06: Suspend: off 07: Mute: off 08: Misc: off
09: Mail: off 10: Charging: off 11: Shift Lock: off
12: Group 2: off 13: Mouse Keys: off
您可以使用grep
以下方法获取具体结果:
$ xset -q | grep Caps
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
答案2
您xset
可以使用以下sed
命令:
xset -q | sed -n 's/^.*Caps Lock:\s*\(\S*\).*$/\1/p'
举个例子,假设你想检查大写锁定是否已启用,如果已启用则禁用它。为此你可以这样做:
caps_lock_status=$(xset -q | sed -n 's/^.*Caps Lock:\s*\(\S*\).*$/\1/p')
if [ $caps_lock_status == "on" ]; then
echo "Caps lock on, turning off"
xdotool key Caps_Lock
else
echo "Caps lock already off"
fi
答案3
如果您不是在 X(“图形模式”)中,而是在终端中:
$ /usr/bin/setleds
Current default flags: NumLock off CapsLock off ScrollLock off
Current flags: NumLock off CapsLock off ScrollLock off
Current leds: NumLock off CapsLock off ScrollLock off
类似地,如果您想知道终端的状态,但您不在其中(例如,您通过 SSH 进入):
setleds < /dev/tty1
由于 /dev/tty* 权限,您可能需要以 root 身份使用。
查看手册页更多信息(该命令甚至可以设置 LED,读取它们只是一个副作用)。