如果数字锁/大写锁打开/关闭,我的 Thinkpad T430 没有可见的指示器 有没有办法在打开/关闭时在屏幕上发出通知?
答案1
您可以尝试通过以下方式获取信息设定:
xset q | grep Caps
结果:
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
但如果没有X你可以尝试知识库信息:
kbdinfo gkbled
结果:
scrolllock:off numlock:on capslock:off
编辑:
如果您想更改状态,xset
可以检查以下内容回答。
或者您可以使用更改状态xdo工具:
xdotool key Caps_Lock
对于屏幕通知程序,您可以检查关键蒙。
您还可以尝试以下脚本:
#!/bin/bash
#lockkey.sh
sleep .2
case $1 in
'num')
mask=2
key="Num"
;;
'caps')
mask=1
key="Caps"
;;
esac
value="$(xset q | grep 'LED mask' | awk '{ print $NF }')"
if [ $(( 0x$value & 0x$mask )) == $mask ]
then
output="$key Lock is on"
else
output="$key Lock is off"
fi
notify-send "$output"
您可以复制脚本/usr/local/bin
并绑定Caps以运行它:
/usr/local/bin/lockkey.sh caps
和/或Num作为:
/usr/local/bin/lockkey.sh num
答案2
T430 可能没有 CapsLock LED,但电源 LED 可以通过软件控制(使用 Linux 内核 4.2 进行测试),因此可以很好地滥用。首先将其添加到您的 /etc/rc.local 中:
echo kbd-capslock >/sys/class/leds/tpacpi::power/trigger
chmod 666 /sys/class/leds/tpacpi::power/brightness
第一行负责文本控制台,并且作为副作用,最初会关闭 LED。为了处理 X11,第二行允许普通用户控制 LED。然后保存这段代码
#!/bin/sh
sleep 0.1
if xset q | grep -q 'Caps Lock: *on'; then
echo 255 >/sys/class/leds/tpacpi::power/brightness
else
echo 0 >/sys/class/leds/tpacpi::power/brightness
fi
作为一些可执行脚本(例如 /usr/local/bin/capsled.sh),并在桌面设置中绑定 CapsLock 键来运行它。丑陋得要死,但可以用(用 XFCE4 测试)。有谁知道在 X11 下重新映射 LED 的更干净的方法吗?
答案3
CAPS_STATUS=`xset q | grep -i caps | cut -c 22-24`
#test on $CAPS_STATUS if its on or off