ใช้ Caps Lock LED เป็นไฟ LED HDD (หรือกำหนดเอง)


23

ฉันได้เปลี่ยนCaps Lockกุญแจใหม่Escแล้วดังนั้นตอนนี้ฉันจึงมี LED บนคีย์บอร์ดของฉันซึ่งไม่เคยเปิด ฉันต้องการใช้เพื่อสิ่งที่มีประโยชน์เช่น HDD หรือกิจกรรม LAN

โดยเฉพาะอย่างยิ่งฉันใช้คอมพิวเตอร์พร้อมกล่อง & ฮีทซิงค์แบบกำหนดเอง (อยู่ในลิ้นชักของฉันดังนั้นฉันไม่ต้องฟัง HDD และไม่ใช้พื้นที่มาก) และไฟ LED ไม่สามารถมองเห็นได้เป็นอย่างอื่น

หากมีห้องสมุดสำหรับควบคุมไฟ LED คีย์บอร์ดฉันสามารถเขียนโค้ดเองได้ถ้าไม่มีวิธีแก้ปัญหาสำหรับเรื่องนี้อยู่แล้ว

ฉันอยู่ที่ Gentoo ~ amd64

แก้ไข:ตกลงลืมเกี่ยวกับ HDD LED มันเป็นเพียงตัวอย่าง

ฉันต้องการให้Caps LockLED สว่างขึ้นเมื่อถึงวันเกิดของฉัน หรือเมื่อฉันมีอีเมล หรือเมื่อฉันพูดว่า " Caps LockLED, โปรดเปล่งแสง!"

ฉันไม่ต้องการใช้สายพิเศษ ในความเป็นจริงมันจะดีถ้ามันใช้งานได้กับคีย์บอร์ดไร้สายเช่นกัน


4
ฉันชอบความคิดนี้! หวังว่าบางคนสามารถตอบ Windows ได้เช่นกัน?
Iszi

1
คุณสามารถแก้ไขข้อกำหนด LED HDD กลับไปที่คำถามของคุณ วิธีแก้ปัญหาอาจไม่กระพริบเร็วเท่ากับ HDD ปกติ แต่มันใช้งานได้ดีบนคีย์บอร์ดของฉัน และมันก็ค่อนข้างมีประโยชน์เพราะฉันไม่เห็น HDD ของฉันเลย
Manwe

คำตอบ:


18

ดีที่จะเปลี่ยนไฟ LED บน VT คอนโซลsetledsคุณสามารถใช้ ดังนั้นหากคุณอยู่ใน VT คุณสามารถพิมพ์ได้

setleds

และคุณจะได้รับสถานะนำในปัจจุบันของคุณ หากคุณไม่ต้องการเปิดใช้งาน numlock เพียงแค่เปิดไฟคุณสามารถพิมพ์:

setleds -L +num 

มันมีเล่ห์เหลี่ยมในXและนี่คือวิธีที่ "ง่ายที่สุด" ในการลองใช้ โปรดทราบว่า X มักจะรันเป็นรูทดังนั้นคุณจะต้องตรวจสอบสิทธิ์บน X-windows tty หรือรันด้วยสิทธิพิเศษรูท โดยปกติ 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ในระบบของคุณฉันเดาว่าคุณจะได้รับมันจากแพ็คเกจอันsys-apps/kbdนี้

หากคุณมีมากขึ้นจากคนที่ชอบสิ่งที่รหัสที่นี่เชื่อมโยงไปยัง en ตัวอย่างรหัสเพื่อเปลี่ยนไฟ LED ใน X ฉันไม่ได้ทดสอบสิ่งนี้ แต่เพียงดูรหัสก็โอเค

และนี่คือเชลล์สคริปต์เพื่อทำสิ่งที่คุณต้องการในตอนแรก มีตัวพิมพ์ใหญ่หรือไฟ 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

1
ขอบคุณสำหรับคำตอบที่ดีวิธีนี้ใช้ได้ดีสำหรับฉันและเป็นตัวอย่างที่ดีที่ฉันสามารถเปลี่ยนสิ่งที่ฉันต้องการได้อย่างง่ายดาย เรียบร้อยแล้วยังมีการsys-apps/kbdติดตั้งเพื่อให้มันทำงานออกจากกล่อง คุณสมควรได้รับความโปรดปรานทั้งหมดที่ฉันให้ได้ :)
อัตติลาโอ

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ที่ไหน
Manwe

1
blinkd - ดูเหมือนว่า Debian guys นำออกจาก repos เศร้า - bugs.debian.org/cgi-bin/bugreport.cgi?bug=461433
jet

4

คุณสามารถนำ HDD ที่นำออกจากเคสเก่ายืดสายไฟและมัดสายไฟเข้ากับสายคีย์บอร์ดแยกที่เคสและเสียบโดยตรงเข้ากับจัมเปอร์นำ HDD บนเมนบอร์ด เปิดคีย์บอร์ดและติดไฟ LED HDD ที่อยู่ติดกับ LED capslock

ซอฟต์แวร์ฟรีและน่าเกลียด? ตรวจสอบ


ไม่ใช่ความคิดที่ไม่ดีเลย แต่ 1. ฉันสามารถใช้คีย์บอร์ด led ได้ฉันไม่คิดว่าฉันต้องการ led อีกอันจากเคสเก่าและ 2. ฉันต้องการให้มีสาย USB เพียงเส้นเดียวเชื่อมต่อแป้นพิมพ์ของฉัน หรือดีกว่า - คิดว่าคีย์บอร์ดไร้สาย
อัตติลาทุม

4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

ใช้ได้กับCaps Lockฯลฯ


1
ใช้งานได้กับ Scroll Lock สำหรับฉันเท่านั้น
lilydjwg

3

นี่ไม่ใช่ปัญหาซอฟต์แวร์ที่จะแก้ไขด้วยไลบรารี

LED คีย์บอร์ดถูกควบคุมโดยซอฟต์แวร์ - โดยเฉพาะอย่างยิ่งโดยไดรเวอร์อุปกรณ์คีย์บอร์ดที่สร้างคำสั่งที่จะส่งไปยังไมโครโปรเซสเซอร์ของคีย์บอร์ดที่เปิดและปิด LED เพื่อตอบสนองต่อคำขอควบคุม I / O

ไฟกิจกรรมบนฮาร์ดดิสก์ที่แผงด้านหน้าของคุณถูกควบคุมโดยฮาร์ดแวร์ พวกเขาเชื่อมต่อกับเมนบอร์ดและ - เพื่อตัดเรื่องสั้นที่มีความยาว - เชื่อมต่อกับเอาท์พุทของชิปบริดจ์ PCI-to-ATA (สำหรับ ICH10 เช่นเอาต์พุตนี้เป็นSATALED#เอาต์พุต) ฮาร์ดแวร์เปิดและปิดเอาต์พุตนี้เมื่อคำสั่งถูกส่งผ่านบัส SATA / PATA ผู้ที่จดจำชีวิตด้วย SCSI จะจำได้ว่ากิจกรรมบนฮาร์ดดิสก์ SCSI ไม่ส่งผลกระทบต่อ LED "ฮาร์ดดิสก์" เนื่องจากขับเคลื่อนโดยฮาร์ดแวร์ ATA bridge

มันใช้งานไม่ได้จริง ๆ และจะต้องใช้ซอฟต์แวร์และฮาร์ดแวร์เสริมจำนวนมากSATALED#เพื่อให้สัญญาณออกมาทำให้เกิดการขัดจังหวะของฮาร์ดแวร์ที่ได้รับจากซอฟต์แวร์ซึ่งจะส่งสัญญาณคำสั่งจากไดรเวอร์อุปกรณ์แป้นพิมพ์ มันเป็นการออกแบบที่มีข้อนิ้วพอสมควร แต่วิธีการสนทนาของการมีคำสั่งดิสก์ I / O ทั้งหมดที่สร้างขึ้นโดยไดรเวอร์อุปกรณ์ดิสก์ทำให้การเดินทางด้านข้างผ่านไดรเวอร์อุปกรณ์แป้นพิมพ์นั้นแย่มากถึงแม้ว่ามันจะไม่ต้องการอุปกรณ์ฮาร์ดแวร์ชนิดใหม่ที่ได้รับก็ตาม " ไฟ LED แผงด้านหน้าติดอยู่! " ขัดจังหวะ มันต้องการระบบย่อยฮาร์ดแวร์ที่แตกต่างกันสองระบบ ได้แก่ ดิสก์และแป้นพิมพ์เพื่อเชื่อมโยงและจำนวนโปรแกรมระบบที่พอใช้ นอกจากนี้ยังจะ จำกัด ดิสก์ I / O ทั้งหมดอย่างมีประสิทธิภาพถึงความเร็วของคีย์บอร์ด

นี่เป็นปัญหาฮาร์ดแวร์ที่แก้ได้ง่ายมากโดยใช้ลวดที่ยาวกว่า

หากแผงด้านหน้าของคุณถูกซ่อนอยู่ในลิ้นชักหรือใต้โต๊ะและคุณต้องการเห็นไฟ LED แผงด้านหน้าจากนั้นเพียงแค่สร้างแผงด้านหน้าที่ถอดออกได้ของคุณเองและเชื่อมต่อกับเมนบอร์ดด้วยสายไฟที่ยาวกว่า การตรวจสอบอย่างรวดเร็วบนอีเบย์พบว่ามีผู้จำหน่ายอุปกรณ์คอมพิวเตอร์ที่จะขายสายเคเบิลแผงด้านหน้าให้กับคุณ (พร้อม LED และสวิตช์ที่ต่ออยู่) ที่มีความยาวต่างกันไม่เกิน 1 เมตร


2
HDD LED เป็นเพียงตัวอย่าง แนวคิดหลักคือฉันมี LED ที่ไม่ได้ใช้บนแป้นพิมพ์ที่ฉันต้องการควบคุม โปรดดูการแก้ไขของฉัน
อัตติลาทุม

3

คุณสามารถทำได้โดยใช้AutoHotkey ตรวจสอบกระทู้นี้หากคุณต้องการเรียนรู้เกี่ยวกับรหัสที่คุณต้องการใช้

หลังจากอ่านเธรดนั้นและเอกสารของ AutoHotkey คุณสามารถทำสิ่งเหล่านั้นได้

นอกจากนี้ยังใช้งานได้กับ USB และคีย์บอร์ดไร้สายด้วย

คุณสามารถใช้กับ Wine on Gentoo


2
ในขณะที่ฉันสามารถเรียกใช้ AutoHotkey ด้วย Wine ด้วยเหตุผลบางอย่างมันไม่ได้ทำให้ไฟ LED ของฉันสว่างขึ้น (แม้ว่าจะไม่มีข้อความแสดงข้อผิดพลาดถูกบันทึกไว้) นอกจากนี้แม้ว่ามันจะทำงานต้องผ่านท่อไวน์คู่ของมิลลิวินาทีทุกหรือมีกระบวนการไวน์ทำงานตลอดเวลาไม่ได้ดีที่สุดโดยเฉพาะอย่างยิ่งเมื่อเทียบกับวิธีการแก้ปัญหาอื่น ๆ setledsที่ใช้ อย่างไรก็ตามนี่อาจเป็นวิธีแก้ปัญหาสำหรับผู้ใช้ Windoze ดังนั้นขอขอบคุณที่โพสต์
อัตติลาโอ

2

ตั้งแต่ Linux 4.7:

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

มันต้องการCONFIG_LEDS_TRIGGER_DISK=yในการกำหนดค่าเคอร์เนล


นี่คือคำตอบที่งดงามที่สุดและฉันหวังว่ามันจะสูงขึ้นไปด้านบน!
mpy

วิธีนี้ใช้งานได้ดี แต่ข้อเสียคือสามารถหยุดทำงานได้เมื่อถอดปลั๊กและเสียบคีย์บอร์ดกลับคืนมา
SpecialBomb


0

ฉันเคยเขียนโปรแกรม C ขนาดเล็กเพื่อควบคุม CapsLock LEDบน DELL XPS15 ของฉัน มีการทดสอบในระบบเดียวเท่านั้นดังนั้นฉันไม่สามารถรับประกันได้ว่ามันจะทำงานให้คุณ บางทีคุณอาจต้องปรับตัวเอง แต่มันควรจะตรงไปตรงมา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.