Використовуйте світлодіод Caps Lock як світлодіодний індикатор (або спеціальний)


23

У мене Caps Lockперезапущена клавіша Esc, тому тепер на клавіатурі у мене світлодіод, який ніколи не вмикається. Я хотів би використати це для чогось корисного, як-от HDD або LAN-діяльність.

Тим більше, що я використовую комп’ютер із власною коробкою та радіаторами (вбудований у мій ящик, щоб мені не доводилося слухати жорсткий диск і він не займає багато місця), а світлодіоди не видно інакше.

Якщо є бібліотека для управління світлодіодними панелями клавіатури, я можу зробити кодування самостійно, якщо для цього вже немає рішення.

Я на Gentoo ~ amd64.

EDIT: Гаразд, забудьте про світлодіод HDD. Це був лише приклад.

Я хочу, щоб Caps Lockсвітлодіод загорівся, коли в мене день народження. Або коли я маю електронний лист. Або коли я кажу " Caps LockСвітлодіод, будь ласка, засвіти!".

Я абсолютно не хочу використовувати зайвий провід. Насправді було б непогано, якби це працювало і на бездротових клавіатурах.


4
Мені подобається ця ідея! Сподіваємось, хтось також може відповісти за Windows?
Іссі

1
Ви можете змінити вимогу світлодіодного жорсткого диска до свого запитання. Рішення може не блимати так швидко, як звичайний hdd led, але це працює дуже добре на моїй клавіатурі. І це дуже корисно, тому що я не бачу своїх hdd світлодіодів.
Manwe

Відповіді:


18

Добре, щоб змінити світлодіодний індикатор на консолі VT ви можете використовувати setleds. Отже, якщо ви знаходитесь у ЗП, ви можете просто набрати

setleds

і ви отримаєте свій поточний статус під керівництвом Якщо ви не хочете ввімкнути numlock, просто запаліть його, ви можете ввести:

setleds -L +num 

Це стає складніше в X, і це "найпростіший" спосіб спробувати. Зауважте, що X зазвичай використовується як root, тому вам доведеться або перевірити дозволи на X-windows tty, або запустити його з правами root. Зазвичай X дорівнює tty7. /dev/consoleповинна працювати як системна консоль, і тим самим слід впливати на всі ПТ.

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

Я думаю, це також спрацює:

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

ось список варіантів освітлення

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

Якщо у вас немає setledsсистеми, я гадаю, що ви можете отримати її з цього нового пакету sys-apps/kbd.

Якщо ви більше людей , яка любить код річ тут посилання на ан прикладу код для світлодіодів зміни в X . Я цього не тестував, але просто переглянувши код, виглядав нормально.

І ось сценарій оболонки, щоб зробити те, що ви спочатку хотіли. Мати кришки чи інші світлодіоди як індикатори жорсткого диска.

#!/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 - блимає світлодіодами, коли отримано електронні листи та повідомляється кількість електронних листів

#!/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
jet

4

Ви можете вийняти жорсткий жорсткий диск зі старого корпусу, простягнути дроти та прив’язати дроти до дроту клавіатури, відгалужити на корпусі та підключити безпосередньо до перемички, приведеної на жорсткому диску на материнській платі. Відкрийте клавіатуру та наклейте гарячим клеєм світлодіод поруч із світлодіодним шаблоном.

Програмне забезпечення вільне та некрасиве? Перевірка.


Зовсім не погана ідея, але 1. Я міг би просто використовувати світлодіодне підключення клавіатури, я не думаю, що мені потрібен ще один світлодіод зі старого корпусу, і 2. Мені хочеться, щоб між моєю клавіатурою був лише один USB-кабель. Або ще краще - подумайте про бездротову клавіатуру.
Аттіла О.

4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

також працює з Caps Lockтощо.


1
Це працює лише для блокування прокрутки для мене.
lilydjwg

3

Це не проблема програмного забезпечення, яку слід вирішити за допомогою бібліотеки.

Світлодіодні індикатори клавіатури керуються програмним забезпеченням - зокрема, драйвером пристрою клавіатури, який генерує команди, що надсилаються мікропроцесору клавіатури, який умикає та вимикає світлодіоди у відповідь на запити управління вводу / виводу.

Індикатори активності жорсткого диска на передній панелі керуються апаратними засобами. Вони підключені до материнської плати і - щоб скоротити довгу історію, - підключені до виходу мікросхеми PCI-ATA. (Для ICH10, наприклад, цей вихід є SATALED#вихідним.) Апаратне забезпечення вмикає та вимикає цей вихід, коли команди надсилаються через шину SATA / PATA. Ті, хто пам’ятає життя з SCSI, пам’ятають, що активність жорсткого диска SCSI не впливала на світлодіод «жорсткого диска», оскільки він керується обладнанням моста ATA.

Це не дуже практично - і вимагає значної кількості додаткового програмного та апаратного забезпечення - для виведення SATALED#сигналу, щоб викликати апаратні перерви, які отримує програмне забезпечення, яке потім запускає команди драйвером пристрою клавіатури. Це досить стильна конструкція. Але зворотний підхід: створення всіх команд вводу / виводу диска, генерованих драйвером дискового пристрою, робить зворотну поїздку через драйвер клавіатури пристрою майже так само погано, хоча для цього не потрібен цілий новий апаратний пристрій, який отримує " Світлодіод на передній панелі горить! " перебиває. Для цього потрібно пов'язати дві різні апаратні підсистеми - диск і клавіатуру, і досить багато системного програмування. Це також ефективно обмежить введення / виведення диска на швидкість клавіатури.

Це апаратне завдання вирішити дуже просто за допомогою довшого шматка дроту.

Якщо передня панель прихована у шухляді або під столом, і ви хочете побачити світлодіоди на передній панелі, просто зробіть самостійну знімну передню панель і підключіть її до материнської плати довшими проводами. Швидка перевірка на eBay виявляє, що існують постачальники комп'ютерних компонентів, які продаватимуть вам такі кабелі на передній панелі (із приєднаними світлодіодами та вимикачами) різної довжини, щонайменше до 1 метра.


2
Світлодіод HDD був лише прикладом. Основна ідея полягає в тому, що у мене на клавіатурі є невикористаний світлодіод, який я хотів би контролювати. Подивіться, будь ласка, мої зміни.
Аттіла О.

3

Це можна зробити за допомогою функції AutoHotkey . Перевірте цю тему, якщо хочете дізнатися про коди, які потрібно використовувати.

Прочитавши цей потік та документацію на AutoHotkey, ви можете зробити це.

Також він працює і з клавіатурами USB та Wireless.

Ви можете використовувати його з Wine on Gentoo.


2
Поки мені вдалося запустити AutoHotkey з Wine, чомусь він не засвітив мої світлодіоди (хоча жодних повідомлень про помилки не було зафіксовано). Крім того, навіть якщо це буде спрацьовувати, випробовувати вино кожні пару мілісекунд або весь процес роботи вина не дуже оптимальний, особливо порівняно з іншим рішенням, яке використовує 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 на своєму DELL XPS15. Вона перевірена лише в одній Системі, тому я не можу гарантувати, що вона буде працювати для вас. Можливо, вам доведеться це адаптувати, але це має бути досить прямо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.