使用 Caps Lock LED 作为 HDD LED(或自定义)指示灯

使用 Caps Lock LED 作为 HDD LED(或自定义)指示灯

我已将Caps Lock按键重新映射到Esc,因此键盘上的 LED 灯现在一直亮着。我想用它做一些有用的事情,比如硬盘或 LAN 活动。

特别是我正在使用带有定制盒子和散热器的计算机(内置在我的抽屉里,所以我不必听 HDD,而且它也不会占用太多空间),否则 LED 是不可见的。

如果有一个用于控制键盘 LED 的库,我可以自己做一些编码,如果还没有解决方案的话。

我在 Gentoo ~amd64 上。

编辑:好吧,忘掉 HDD LED 吧。这只是一个例子。

我希望Caps LockLED 在我生日时亮起。或者当我收到电子邮件时。或者当我说“ Caps LockLED,请亮起!”时。

我绝对不想使用额外的电线。事实上,如果这也能用于无线键盘就太好了。

答案1

好吧,改变 VT 上的 led 指示灯安慰你可以使用setleds。所以如果你在 VT 中,你可以输入

setleds

然后你就会得到当前的 le​​d 状态。如果你不想启用 numlock,只需点亮它,你可以输入:

setleds -L +num 

更棘手的是X这是尝试它的“最简单”方法。请注意,X 通常以 root 身份运行,因此您必须检查 X-windows tty 上的权限或以 root 权限运行它。通常 X 是 tty7。/dev/console应该可以作为系统控制台工作,并且所有 VT 都应该受到影响。

sudo su -c 'setleds -L +num < /dev/tty7'

我认为这也行得通:

sudo su -c 'setleds -L +num < /dev/console'

以下是灯光选项列表

 [{+|-}num] [{+|-}caps] [{+|-}scroll]

如果您的系统中没有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

答案2

检查 Gmail - 收到电子邮件时 LED 灯闪烁并显示电子邮件数量

#!/bin/bash
echo "Checking for new email";
mails="$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - \
   https://name1:[email protected]/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

答案3

#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

也适用于Caps Lock等。

答案4

您可以使用自动热键。 查看如果您想了解需要使用的代码,请参阅线程。

阅读完该线程和 AutoHotkey 上的文档后,您就可以做这些事情。

它也适用于 USB 和无线键盘。

您可以将它与 Gentoo 上的 Wine 一起使用。

相关内容