Att*_* O. 24 linux keyboard gentoo
我的Caps Lock键被重新映射到Esc,所以现在我的键盘上有一个 LED 从来没有亮过。我想用它来做一些有用的事情,比如 HDD 或 LAN 活动。
尤其是我使用的是带有定制盒和散热器的计算机(内置在我的抽屉里,所以我不必听硬盘,它也不占用太多空间),否则 LED 是不可见的。
如果有一个用于控制键盘 LED 的库,如果还没有解决方案,我可以自己编写一些代码。
我在 Gentoo ~amd64 上。
编辑:好的,忘记 HDD LED。这只是一个例子。
我希望Caps LockLED 在我生日时亮起。或者当我有电子邮件时。或者当我说“ Caps LockLED,请点亮!”。
我绝对不想使用额外的电线。事实上,如果这也适用于无线键盘,那就太好了。
Man*_*nwe 19
好吧,您可以使用更改 VT控制台上的 LED 指示灯setleds。所以如果你在 VT 你可以输入
setleds
Run Code Online (Sandbox Code Playgroud)
您将获得当前的 LED 状态。如果您不想启用 numlock,只需将其点亮,您可以输入:
setleds -L +num
Run Code Online (Sandbox Code Playgroud)
它在X 中变得更加棘手,这是尝试它的“最简单”的方法。请注意,X 通常以 root 身份运行,因此您必须检查 X-windows tty 的权限或以 root 权限运行它。通常 X 是 tty7。/dev/console应该作为系统控制台工作,因此所有 VT 都应该受到影响。
sudo su -c 'setleds -L +num < /dev/tty7'
Run Code Online (Sandbox Code Playgroud)
我认为这也将起作用:
sudo su -c 'setleds -L +num < /dev/console'
Run Code Online (Sandbox Code Playgroud)
这是灯光选项列表
[{+|-}num] [{+|-}caps] [{+|-}scroll]
Run Code Online (Sandbox Code Playgroud)
如果您的setleds系统中没有,我猜您可以从这个emerge 包中获取它sys-apps/kbd。
如果您更喜欢编写代码,这里有一个链接,指向在 X 中更改 LED 的示例代码。我没有对此进行测试,但仅通过查看代码就可以了。
这是一个 shell 脚本,可以执行您最初想要的操作。将盖子或其他 LED 作为 HDD 指示灯。
#!/bin/bash
# Check interval seconds
CHECKINTERVAL=0.1
# console
CONSOLE=/dev/console
#indicator to use [caps, num, scroll]
INDICATOR=caps
getVmstat() {
cat /proc/vmstat|egrep "pgpgin|pgpgout"
}
#turn led on
function led_on()
{
setleds -L +${INDICATOR} < ${CONSOLE}
}
#turn led off
function led_off()
{
setleds -L -${INDICATOR} < ${CONSOLE}
}
# initialise variables
NEW=$(getVmstat)
OLD=$(getVmstat)
##
while [ 1 ] ; do
sleep $CHECKINTERVAL # slowdown a bit
# get status
NEW=$(getVmstat)
#compare state
if [ "$NEW" = "$OLD" ]; then
led_off ## no change, led off
else
led_on ## change, led on
fi
OLD=$NEW
done
Run Code Online (Sandbox Code Playgroud)
检查 Gmail - 收到电子邮件时 LED 闪烁并显示电子邮件数量
#!/bin/bash
echo "Checking for new email";
mails="$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - \
https://name1:password1@mail.google.com/mail/feed/atom \
--no-check-certificate | grep 'fullcount' \
| sed -e 's/.*<fullcount>//;s/<\/fullcount>.*//' 2>/dev/null)"
echo $mails;
#blink LEDs
if [ "$mails" -gt "0" ];
then
blink -s -r 5;
fi
#speak announcements
if [ "$mails" -gt "0" ];
then
espeak "$mails new emails in main account.";
fi
sleep 4;
blink;
exit
Run Code Online (Sandbox Code Playgroud)
#turn on
xset led named "Scroll Lock"
#turn off
xset -led named "Scroll Lock
Run Code Online (Sandbox Code Playgroud)
也适用于Caps Lock等。
| 归档时间: |
|
| 查看次数: |
13402 次 |
| 最近记录: |