Gunakan LED Caps Lock sebagai indikator LED (atau custom) HDD

23

Saya telah Caps Lockmemetakan kembali kunci saya Esc, jadi sekarang saya memiliki LED di keyboard yang tidak pernah hidup. Saya ingin menggunakannya untuk sesuatu yang bermanfaat, seperti aktivitas HDD atau LAN.

Khususnya saya menggunakan komputer dengan kotak khusus & heatsink (terpasang di laci saya jadi saya tidak perlu mendengarkan HDD dan tidak memakan banyak ruang), dan LED tidak terlihat sebaliknya.

Jika ada perpustakaan untuk mengendalikan LED keyboard, saya bisa melakukan beberapa pengkodean sendiri, jika belum ada solusi untuk ini.

Saya di Gentoo ~ amd64.

EDIT: Ok, lupakan LED HDD. Itu hanya sebuah contoh.

Saya ingin Caps LockLED menyala saat ulang tahun saya. Atau ketika saya punya email. Atau ketika saya mengatakan " Caps LockLED, tolong nyalakan!".

Saya benar-benar tidak ingin menggunakan kawat ekstra. Bahkan, alangkah baiknya jika ini akan bekerja pada keyboard nirkabel juga.

Attila O.
sumber
4
Aku suka ide ini! Semoga seseorang dapat menjawab untuk Windows juga?
Iszi
1
Anda dapat mengedit persyaratan HDD LED kembali ke pertanyaan Anda. Solusi mungkin tidak berkedip secepat yang dipimpin hdd normal, tetapi bekerja cukup baik pada keyboard saya. Dan ini sangat berguna, karena saya tidak dapat melihat led hdd saya.
Manwe

Jawaban:

18

Nah untuk mengubah indikator yang dipimpin pada konsol VT yang bisa Anda gunakan setleds. Jadi, jika Anda menggunakan VT, Anda bisa mengetik

setleds

dan Anda akan mendapatkan status dipimpin saat ini. Jika Anda tidak ingin mengaktifkan numlock, cukup nyalakan Anda dapat mengetik:

setleds -L +num 

Muncul lebih rumit dalam X dan ini adalah cara "paling sederhana" untuk mencobanya. Harap dicatat bahwa X biasanya dijalankan sebagai root sehingga Anda harus memeriksa izin pada X-windows tty atau menjalankannya dengan hak akses root. Biasanya X adalah tty7. /dev/consoleharus berfungsi sebagai konsol sistem dan semua VT harus terpengaruh.

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

Saya pikir ini juga akan berhasil:

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

inilah daftar opsi cahaya

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

Jika Anda tidak memiliki setledssistem Anda, tebakan saya adalah Anda bisa mendapatkannya dari paket emerge ini sys-apps/kbd.

Jika Anda lebih dari orang yang suka hal-hal kode di sini adalah link ke en contoh kode untuk leds perubahan X . Saya tidak menguji ini, tetapi hanya dengan melihat kode tampak ok.

Dan inilah skrip shell untuk melakukan apa yang Anda inginkan. Untuk memiliki penutup atau led lain sebagai indikator 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
Manwe
sumber
1
Terima kasih atas jawaban yang bagus ini, solusi ini sangat cocok untuk saya, dan merupakan contoh yang baik bahwa saya dapat dengan mudah mengubah apa pun yang saya butuhkan. A sudah sys-apps/kbddiinstal, jadi itu bekerja di luar kotak. Anda pantas mendapatkan semua hadiah yang bisa saya berikan :)
Attila O.
5

periksa Gmail - berkedip LED ketika e-mail diterima dan menyebutkan jumlah email

#!/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
jet
sumber
1
Di mana Anda dapat menemukan blink?
Manwe
1
blinkd - sepertinya orang-orang Debian menghapusnya dari repo, sedih - bugs.debian.org/cgi-bin/bugreport.cgi?bug=461433
jet
4

Anda dapat melepas HDD yang mengarah dari case lama, rentangkan kabel dan ikat kabel ke kabel keyboard, cabut pada case, dan colok langsung ke jumper yang dipimpin HDD di mainboard. Buka keyboard dan rekatkan LED HDD di sebelah LED capslock.

Perangkat lunak bebas dan jelek? Memeriksa.

horatio
sumber
Bukan ide yang buruk sama sekali, tetapi 1. Saya hanya bisa menggunakan led keyboard, saya tidak berpikir saya perlu led lain dari case lama, dan 2. Saya ingin hanya ada satu kabel USB yang menghubungkan keyboard saya. Atau lebih baik lagi - pikirkan keyboard nirkabel.
Attila O.
4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

juga bekerja dengan Caps Lock, dll.

gcb
sumber
1
Ini hanya berfungsi untuk Scroll Lock untuk saya.
lilydjwg
3

Ini bukan masalah perangkat lunak untuk dipecahkan dengan perpustakaan.

LED keyboard dikendalikan oleh perangkat lunak - khususnya oleh driver perangkat keyboard yang menghasilkan perintah untuk dikirim ke mikroprosesor keyboard yang menghidupkan dan mematikan LED, sebagai respons terhadap permintaan Kontrol I / O.

Lampu aktivitas hard disk di panel depan Anda dikontrol oleh perangkat keras. Mereka terhubung ke mainboard, dan - untuk mempersingkat cerita - disambungkan ke output dari chip PCI-to-ATA. (Untuk ICH10, misalnya, output ini adalah SATALED#output.) Perangkat keras menghidupkan dan mematikan output ini saat perintah dikirim melintasi bus SATA / PATA. Mereka yang mengingat kehidupan dengan SCSI akan ingat bahwa aktivitas hard disk SCSI tidak memengaruhi LED "hard disk", karena didorong oleh perangkat keras jembatan ATA.

Ini tidak terlalu praktis - dan akan membutuhkan sejumlah besar perangkat lunak dan perangkat keras tambahan - untuk output pada SATALED#sinyal yang menyebabkan gangguan perangkat keras yang diterima oleh perangkat lunak, yang kemudian memicu perintah oleh driver perangkat keyboard. Ini desain yang cukup knuckleheaded. Tetapi pendekatan sebaliknya, memiliki semua perintah I / O disk yang dihasilkan oleh driver perangkat disk melakukan perjalanan samping melalui driver perangkat keyboard hampir sama buruknya, meskipun itu tidak memerlukan perangkat hardware jenis baru yang menerima " LED panel depan menyala! " menyela. Dibutuhkan dua subsistem perangkat keras yang berbeda - disk dan keyboard - untuk dihubungkan, dan cukup banyak pemrograman sistem. Ini juga akan secara efektif membatasi semua disk I / O hingga kecepatan keyboard.

Ini adalah masalah perangkat keras yang harus dipecahkan, sangat sederhana, dengan sepotong kawat yang lebih panjang.

Jika panel depan Anda disembunyikan di laci atau di bawah meja, dan Anda ingin melihat LED panel depan, cukup buat panel depan sendiri yang bisa dilepas dan sambungkan ke mainboard dengan kabel yang lebih panjang. Pemeriksaan cepat di eBay mengungkapkan bahwa ada vendor komponen komputer yang akan menjual kepada Anda kabel panel depan seperti itu (dengan LED dan sakelar terpasang) dengan panjang yang bervariasi, hingga setidaknya 1 meter.

JdeBP
sumber
2
LED HDD hanyalah sebuah contoh. Gagasan utamanya adalah bahwa saya memiliki LED yang tidak digunakan pada keyboard saya yang ingin saya kendalikan. Silakan lihat hasil edit saya.
Attila O.
3

Anda dapat melakukannya menggunakan AutoHotkey . Periksa utas ini jika Anda ingin mempelajari tentang kode yang perlu Anda gunakan.

Setelah membaca utas itu dan dokumentasi tentang AutoHotkey Anda dapat melakukan hal-hal itu.

Juga berfungsi dengan keyboard USB dan Nirkabel juga.

Anda dapat menggunakannya dengan Wine on Gentoo.

Mavromatis Lozay
sumber
2
Sementara saya bisa menjalankan AutoHotkey dengan Wine, untuk beberapa alasan itu tidak menyala LED saya (meskipun tidak ada pesan kesalahan yang dicatat). Juga, bahkan jika itu akan berhasil, harus menyalurkan melalui anggur setiap beberapa milidetik, atau memiliki proses anggur berjalan sepanjang waktu tidak terlalu optimal, terutama dibandingkan dengan solusi lain yang menggunakan setleds. Namun, ini mungkin menjadi solusi untuk pengguna windoze, jadi terima kasih telah memposting.
Attila O.
2

Sejak Linux 4.7:

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

Ini membutuhkan CONFIG_LEDS_TRIGGER_DISK=ykonfigurasi kernel.

simbol atom
sumber
Sejauh ini, ini adalah jawaban yang paling elegan dan saya harap ini akan naik ke puncak!
mpy
Ini bekerja dengan sangat baik, tetapi downside adalah bahwa ini dapat berhenti bekerja ketika mencabut dan menyambungkan kembali keyboard.
SpecialBomb
0

Saya pernah menulis sebuah program C kecil untuk mengontrol CapsLock LED pada DELL XPS15 saya. Ini hanya diuji pada satu Sistem, oleh karena itu saya tidak dapat menjamin bahwa itu akan bekerja untuk Anda. Mungkin Anda harus menyesuaikannya, tetapi itu harus cukup mudah.

cee
sumber