web-dev-qa-db-ja.com

Caps Lock LEDをHDD LED(またはカスタム)インジケータとして使用

私は持っています Caps Lock 再マッピングされたキー Esc、これでキーボードのLEDがオンにならないようになりました。 HDDやLANのアクティビティなど、何か便利なものに使用したいと思います。

特に、カスタムボックスとヒートシンクを備えたコンピューターを使用している(引き出しに組み込まれているため、HDDを聞く必要がなく、場所をとらない)ため、LEDは見えません。

キーボードのLEDを制御するためのライブラリがある場合、これに対する解決策がない場合は、自分でコーディングを行うことができます。

Gentoo〜AMD64にいます。

編集: OK、HDD LEDを忘れます。ほんの一例です。

欲しい Caps Lock 誕生日になるとLEDが点灯します。または私が電子メールを持っているとき。または私が言うときCaps Lock LED、点灯してください!」.

余計なワイヤーを使いたくありません。実際、これがワイヤレスキーボードでも機能するのは素晴らしいことです。

23
Attila O.

VTconsoleの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のledsを変更するコード 。私はこれをテストしませんでしたが、コードを見るだけで大​​丈夫に見えました。

そして、あなたがもともと欲しかったことをするためのシェルスクリプトがあります。キャップまたはその他の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
18
Manwe

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
5
jet
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

Caps Lockなどでも使用できます。

4
gcb

古いケースからHDD LEDを取り外し、ワイヤーを延長し、ワイヤーをキーボードワイヤーにタイラップし、ケースで分岐し、メインボードのHDD LEDジャンパーに直接差し込みます。キーボードを開き、capslock LEDの横にあるHDD LEDをホットグルーします。

ソフトウェアは無料で醜いですか?小切手。

4
horatio

AutoHotkey を使用してそれを行うことができます。使用する必要があるコードについて知りたい場合は this threadを確認してください。

そのスレッドとAutoHotkeyのドキュメントを読んだ後、これらのことを実行できます。

また、USBキーボードやワイヤレスキーボードでも動作します。

GentooのWineで使用できます。

3

これは、ライブラリで解決するソフトウェアの問題ではありません。

キーボードのLEDは、ソフトウェアによって制御されます。特に、キーボードデバイスドライバーがコマンドを生成して、I/O制御要求に応答してLEDをオン/オフにするキーボードマイクロプロセッサに送信されるコマンドです。

フロントパネルのハードディスクアクティビティライトは、ハードウェアによって制御されます。それらはメインボードに接続されており、—長い話を短くするために— PCI-to-ATAブリッジチップの出力に配線されています。 (たとえば、ICH10の場合、この出力はSATALED#出力です。)コマンドがSATA/PATAバスを介して送信されると、ハードウェアがこの出力をオンまたはオフにします。 SCSIの使用を覚えている人は、SCSIハードディスクの動作がATAブリッジハードウェアによって駆動されるため、「ハードディスク」LEDに影響を与えなかったことを覚えています。

SATALED#信号の出力がソフトウェアによって受信されるハードウェア割り込みを引き起こし、それがキーボードデバイスドライバーによってコマンドをトリガーするためには、実際的ではなく、かなりの量の追加のソフトウェアとハ​​ードウェアが必要になります。それはかなりナックルヘッドのデザインです。しかし、ディスクデバイスドライバーによって生成されたすべてのディスクI/Oコマンドにキーボードデバイスドライバーを介してサイドトリップを行わせるという逆のアプローチは、「前面パネルのLEDが点灯しています。」割り込み。リンクするには、2つの異なるハードウェアサブシステム(ディスクとキーボード)と、かなりの量のシステムプログラミングが必要です。また、すべてのディスクI/Oをキーボードの速度に効果的に制限します。

これは、非常に簡単に、長いワイヤーで解決するハードウェアの問題です。

フロントパネルが引き出しやテーブルの下に隠れており、フロントパネルのLEDを確認したい場合は、取り外し可能な独自のフロントパネルを作成し、より長いワイヤでメインボードに接続します。 eBayをすばやく確認すると、最長1メートルまでのさまざまな長さのフロントパネルケーブル(LEDとスイッチが接続されている)を販売するコンピューターコンポーネントベンダーが存在することがわかります。

3
JdeBP

Linux 4.7以降:

# echo ide-disk > /sys/class/leds/input17::capslock/trigger

カーネル構成にCONFIG_LEDS_TRIGGER_DISK=yが必要です。

2
atomsymbol

http://members.optusnet.com.au/foonly/whirlpool/code/hddled.c

これでHDD LEDがScroll Lockになります。 CAPS LOCKの変更は単純でなければなりません。

1
Evan Langlois

Dell XPS15に CapsLock LEDを制御する小さなCプログラム を書いたことがあります。 1つのシステムでのみテストされているため、動作するかどうかは保証できません。多分あなたはそれを適応させなければならないでしょうが、それはかなり簡単なはずです。

0
cee