Użyj diody LED Caps Lock jako wskaźnika LED dysku twardego (lub niestandardowego)

23

Caps LockZmapowałem swój klucz Esc, więc teraz mam na klawiaturze diodę LED, która nigdy się nie świeci. Chciałbym go użyć do czegoś pożytecznego, takiego jak HDD lub LAN.

Zwłaszcza, że ​​używam komputera z niestandardowym pudełkiem i radiatorami (wbudowanym w moją szufladę, więc nie muszę słuchać dysku twardego i nie zajmuje on dużo miejsca), a diody LED nie są widoczne inaczej.

Jeśli jest biblioteka do kontrolowania diod LED na klawiaturze, mógłbym sam trochę kodować, jeśli nie ma na to rozwiązania.

Jestem na Gentoo ~ amd64.

EDYCJA: Ok, zapomnij o diodzie LED dysku twardego. To był tylko przykład.

Chcę, aby Caps Lockdioda LED świeciła, kiedy są moje urodziny. Lub kiedy mam e-maila. Lub kiedy mówię „ Caps LockLED, proszę zapalić!”.

Absolutnie nie chcę używać dodatkowego drutu. W rzeczywistości byłoby miło, gdyby działało to również na klawiaturach bezprzewodowych.

Attila O.
źródło
4
Podoba mi się ten pomysł! Mam nadzieję, że ktoś może również odpowiedzieć na system Windows?
Iszi
1
Możesz edytować wymagania dotyczące diod LED dysku twardego z powrotem do pytania. Rozwiązania mogą nie migać tak szybko, jak zwykła dioda HDD, ale działa całkiem nieźle na mojej klawiaturze. I to jest bardzo przydatne, ponieważ nie widzę moich diod HDD.
Manwe,

Odpowiedzi:

18

Cóż, aby zmienić wskaźnik LED na konsoli VT, którego możesz użyć setleds. Więc jeśli jesteś w VT, możesz po prostu pisać

setleds

a otrzymasz swój obecny status led. Jeśli nie chcesz włączać funkcji numlock, po prostu ją podświetl, możesz wpisać:

setleds -L +num 

W X jest trudniej i jest to „najprostszy” sposób na wypróbowanie tego. Należy pamiętać, że X jest zwykle uruchamiany jako root, więc albo musisz sprawdzić uprawnienia na X-Windows tty, albo uruchomić go z uprawnieniami roota. Zwykle X to tty7. /dev/consolepowinien działać jako konsola systemowa i przez to powinno to wpływać na wszystkie VT.

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

Myślę, że to również zadziała:

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

Oto lista opcji światła

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

Jeśli nie masz setledsw swoim systemie, domyślam się, że możesz go pobrać z tego pakietu emerge sys-apps/kbd.

Jeśli jesteś bardziej osoby, która lubi kodu rzeczy oto link do en przykład kodu zmienić diod X . Nie testowałem tego, ale sam kod wyglądał dobrze.

A oto skrypt powłoki do robienia tego, co pierwotnie chciałeś. Aby mieć czapki lub inne diody LED jako wskaźniki dysku twardego.

#!/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
Manwe
źródło
1
Dziękuję za tę miłą odpowiedź, to rozwiązanie działa dla mnie idealnie i jest dobrym przykładem, że mogę łatwo zmienić na wszystko, czego potrzebuję. A już sys-apps/kbdzainstalowałem, więc zadziałało po wyjęciu z pudełka. Zasługujesz na całą nagrodę, jaką mógłbym dać :)
Attila O.
5

sprawdź Gmaila - miga diody LED po otrzymaniu wiadomości e-mail i podaje liczbę wiadomości e-mail

#!/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
strumień
źródło
1
Gdzie można znaleźć blink?
Manwe,
1
blinkd - wygląda na to, że faceci Debiana usunęli go z repozytoriów, smutny - bugs.debian.org/cgi-bin/bugreport.cgi?bug=461433
jet
4

Możesz wyjąć dysk twardy HDD ze starej obudowy, przedłużyć przewody i zawiązać przewody do drutu klawiatury, rozgałęzić obudowę i podłączyć bezpośrednio do zworki LED dysku twardego na płycie głównej. Otwórz klawiaturę i przyklej diodę LED dysku twardego obok diody LED Capslock.

Oprogramowanie wolne i brzydkie? Czek.

horatio
źródło
Nie jest to wcale zły pomysł, ale 1. Mogłem po prostu użyć diody LED klawiatury, nie sądzę, że potrzebuję kolejnej diody LED ze starej obudowy, i 2. Chcę, aby do mojej klawiatury był tylko jeden kabel USB. Albo jeszcze lepiej - pomyśl o bezprzewodowej klawiaturze.
Attila O.
4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

współpracuje również z Caps Lockitp.

gcb
źródło
1
Działa to tylko dla Scroll Lock dla mnie.
lilydjwg
3

To nie jest problem oprogramowania do rozwiązania z biblioteką.

Diody LED klawiatury są kontrolowane przez oprogramowanie - w szczególności przez sterownik urządzenia klawiatury generujące polecenia wysyłane do mikroprocesora klawiatury, które włączają i wyłączają diody LED w odpowiedzi na żądania sterowania we / wy.

Kontrolki aktywności dysku twardego na panelu przednim są sterowane sprzętowo. Są one podłączone do płyty głównej i - krótko mówiąc - podłączone do wyjścia układu mostka PCI-AT-ATA. (Na przykład dla ICH10, to wyjście jest SATALED#wyjściem.) Sprzęt włącza i wyłącza to wyjście, gdy polecenia są wysyłane przez magistralę SATA / PATA. Ci, którzy pamiętają życie z SCSI, będą pamiętać, że aktywność dysku twardego SCSI nie wpłynęła na diodę LED „twardego dysku”, ponieważ jest napędzana przez sprzęt mostka ATA.

To nie jest naprawdę praktyczne - i wymagałoby znacznej ilości dodatkowego oprogramowania i sprzętu - aby sygnał wyjściowy SATALED#powodował przerwy sprzętowe odbierane przez oprogramowanie, które następnie wyzwala polecenia sterownika urządzenia klawiatury. To dość golonka. Ale odwrotne podejście, polegające na tym, że wszystkie polecenia We / Wy płyty generowane przez sterownik urządzenia dysku powodują, że boczny przejazd przez sterownik urządzenia klawiatury jest prawie tak samo zły, chociaż nie wymaga zupełnie nowego typu urządzenia sprzętowego, które odbiera Dioda LED na przednim panelu świeci! ” przerywa. Wymaga połączenia dwóch odrębnych podsystemów sprzętowych - dysku i klawiatury oraz sporego programowania systemów. Skutecznie ograniczyłoby to także wszystkie wejścia / wyjścia płyty do prędkości klawiatury.

Jest to problem sprzętowy do rozwiązania, bardzo prosto, za pomocą dłuższego kawałka drutu.

Jeśli panel przedni jest schowany w szufladzie lub pod stołem, a chcesz zobaczyć diody LED na panelu przednim, po prostu utwórz własny odłączany panel przedni i podłącz go do płyty głównej dłuższymi przewodami. Szybka kontrola w serwisie eBay ujawnia, że ​​istnieją dostawcy komponentów komputerowych, którzy będą sprzedawać takie kable na panelu przednim (z dołączonymi diodami LED i przełącznikami) o różnych długościach, do co najmniej 1 metra.

JdeBP
źródło
2
Dioda LED dysku twardego była tylko przykładem. Główną ideą jest to, że mam nieużywaną diodę LED na klawiaturze, którą chciałbym kontrolować. Proszę spojrzeć na moje zmiany.
Attila O.
3

Możesz to zrobić za pomocą AutoHotkey . Sprawdź ten wątek, jeśli chcesz dowiedzieć się o kodach, których musisz użyć.

Po przeczytaniu tego wątku i dokumentacji AutoHotkey możesz zrobić te rzeczy.

Działa również z klawiaturami USB i bezprzewodowymi.

Możesz używać go z Wine na Gentoo.

Mavromatis Lozay
źródło
2
Chociaż byłem w stanie uruchomić AutoHotkey z Wine, z jakiegoś powodu nie zapalił moich diod LED (chociaż nie zarejestrowano żadnych komunikatów o błędach). Również, nawet jeśli zadziałałoby, konieczność przepuszczania wina co kilka milisekund lub ciągły proces produkcji wina nie jest zbyt optymalny, szczególnie w porównaniu z innym używanym rozwiązaniem setleds. Mimo to może to być rozwiązanie dla użytkowników windoze, więc dziękuję za wysłanie.
Attila O.
2

Od Linuksa 4.7:

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

Wymaga to CONFIG_LEDS_TRIGGER_DISK=yw konfiguracji jądra.

symbol atomowy
źródło
To zdecydowanie najbardziej elegancka odpowiedź i mam nadzieję, że osiągnie szczyt!
mpy
Działa to naprawdę dobrze, ale wadą jest to, że może przestać działać po odłączeniu i ponownym podłączeniu klawiatury.
SpecialBomb
0

Kiedyś napisałem mały program C do sterowania diodą CapsLock na moim DELL XPS15. Jest testowany tylko na jednym Systemie, dlatego nie mogę zagwarantować, że będzie działał dla Ciebie. Być może będziesz musiał to dostosować, ale powinno to być całkiem proste.

cee
źródło