さて、使用できるVT コンソールの LEDインジケータを変更してくださいsetleds
。したがって、VTを使用している場合は、次のように入力できます。
setleds
現在のLEDステータスを取得します。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を変更するためのサンプルコードへのリンクがあります。これはテストしませんでしたが、コードを見るだけで問題ありませんでした。
そして、元々望んでいたことを行うためのシェルスクリプトを次に示します。HDDインジケーターとしてキャップまたはその他のLEDを使用する。
#!/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