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


23

私は私の持っているCaps Lock鍵がに再マッピングEscので、今、私が上になることはありません私のキーボードのLEDを持っています、。HDDやLANアクティビティなど、何か便利な用途に使用したいと思います。

特に、カスタムボックスとヒートシンクを備えたコンピューターを使用していること(引き出しに組み込まれているため、HDDを聴く必要がなく、スペースをあまり取りません)。そうでない場合、LEDは表示されません。

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

Gentoo〜amd64を使用しています。

編集: OK、HDD LEDは忘れてください。これは単なる例です。

Caps Lock誕生日になったらLEDを点灯させたい。または、メールがあるとき。または、「Caps LockLED、点灯してください!」と言います。

私は絶対に余分なワイヤーを使いたくありません。実際、これがワイヤレスキーボードでも同様に機能する場合は便利です。


4
私はこのアイデアが好きです!誰かがWindows用にも答えることができればいいのですが?
イッツィ

1
HDD LED要件を編集して質問に戻すことができます。ソリューションは、通常のhddほど速く点滅しない場合がありますが、私のキーボードでは非常にうまく機能します。また、HDDのLEDが見えないため、非常に便利です。
マンウェ

回答:


18

さて、使用できる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

1
この素敵な答えをありがとう、この解決策は私にとって完璧に機能し、必要なものに簡単に変更できる良い例です。は既にsys-apps/kbdインストールされているため、そのまま使用できます。あなたは私が与えることができるすべての賞金に値する:)
アッティラO.

5

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

1
どこで見つけることができますblinkか?
マンウェ

1
blinkd - - Debianのみんなのように見えるが、リポジトリから悲しいそれを削除bugs.debian.org/cgi-bin/bugreport.cgi?bug=461433
ジェット

4

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

ソフトウェアは無料でandいですか?チェック。


完全に悪い考えではありませんが、1。キーボードのLEDを使用できます。古いケースの別のLEDは必要ないと思います。またはそれ以上-ワイヤレスキーボードを考えてください。
アッティラO.

4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

などでも機能しますCaps Lock


1
これは私にとってはScroll Lockでのみ機能します。
lilydjwg 14年

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とスイッチが取り付けられている)を販売するコンピューターコンポーネントベンダーが存在することがわかります。


2
HDD LEDは単なる例です。主なアイデアは、キーボードの未使用のLEDを制御したいということです。編集内容をご覧ください。
アッティラO.

3

AutoHotkeyを使用してそれを行うことができます。使用する必要があるコードについて知りたい場合は、このスレッドをチェックしてください。

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

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

GentooのWineで使用できます。


2
WineでAutoHotkeyを実行できましたが、何らかの理由でLEDが点灯しませんでした(エラーメッセージは記録されませんでした)。また、たとえ機能する場合でも、特にを使用する他のソリューションと比較して、ワインを数ミリ秒ごとにパイプ処理したり、ワインプロセスを常に実行したりすることはあまり最適ではありませんsetleds。それでも、これはwindozeユーザーのソリューションになる可能性があるため、投稿していただきありがとうございます。
アッティラO.

2

Linux 4.7以降:

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

CONFIG_LEDS_TRIGGER_DISK=yカーネル設定で必要です。


これは断然最もエレガントな答えであり、トップに上がることを願っています!
mpy

これは非常にうまく機能しますが、マイナス面は、キーボードのプラグを抜き差しするときに機能しなくなることです。
SpecialBomb18年


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.