Caps Lock LED를 HDD LED (또는 사용자 정의) 표시기로 사용


23

나는이 Caps Lock키에 매핑 Esc그래서 지금은에 결코 내 키보드에 LED가. HDD 또는 LAN 활동과 같은 유용한 용도로 사용하고 싶습니다.

특히 사용자 정의 상자 및 방열판이있는 컴퓨터를 사용하고 있습니다 (내 서랍에 내장되어 있으므로 HDD를들을 필요가 없으며 많은 공간을 차지하지 않습니다). 그렇지 않으면 LED가 보이지 않습니다.

키보드 LED를 제어하기위한 라이브러리가 있다면, 이미 해결책이 없다면 직접 코딩 할 수 있습니다.

저는 Gentoo ~ amd64입니다.

편집 : 좋아, HDD LED는 잊어 버려요. 단지 예일뿐입니다.

Caps Lock생일이되면 LED가 점등 되기를 원합니다 . 또는 이메일이있을 때. 또는 " Caps LockLED, 점등하십시오!" 라고 말할 때 .

나는 여분의 와이어를 사용하고 싶지 않습니다. 실제로 이것이 무선 키보드에서도 작동한다면 좋을 것입니다.


4
나는이 아이디어를 좋아한다! 누군가가 Windows에 대해서도 대답 할 수 있기를 바랍니다.
Iszi

1
HDD LED 요구 사항을 질문으로 다시 편집 할 수 있습니다. 솔루션은 일반적인 hdd led만큼 빠르게 깜박이지 않을 수도 있지만 키보드에서 잘 작동합니다. 내 hdd led를 볼 수 없으므로 매우 유용합니다.
만웨

답변:


18

VT 콘솔 의 LED 표시기를 변경하면 사용할 수 있습니다 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.

코드를 작성하는 것을 좋아하는 사람이라면 X의 led를 변경하는 예제 코드 링크 가 있습니다 . 나는 이것을 테스트하지 않았지만 코드를 보면서 괜찮아 보였다.

그리고 원래 원하는 것을 수행하는 쉘 스크립트가 있습니다. 캡 또는 기타 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설치되었으므로 즉시 사용 가능합니다. 당신은 내가 줄 수있는 모든 현상금이 필요합니다 :)
Attila 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있습니까?
Manwe

1
깜박임-데비안 녀석이 repos에서 그것을 제거한 것처럼 보입니다, sad-bugs.debian.org/cgi-bin/bugreport.cgi?bug=461433
jet

4

오래된 케이스에서 HDD를 제거하고 와이어를 연장하고 와이어를 키보드 와이어에 묶고 케이스를 분기하여 메인 보드의 HDD led 점퍼에 직접 꽂을 수 있습니다. 키보드를 열고 Capslock LED 옆에있는 HDD LED를 핫 접착제로 고정하십시오.

자유롭고 못생긴 소프트웨어? 검사.


모두 나쁜 생각은 아니지만 1. 키보드 만 사용하면되는데, 이전 케이스에서 다른 LED가 필요하다고 생각하지 않습니다. 2. 키보드를 연결하는 USB 케이블이 하나만 있어야합니다. 아니면 더 나은-무선 키보드를 생각하십시오.
Attila O.

4
#turn on
xset led named "Scroll Lock"

#turn off
xset -led named "Scroll Lock

와 함께 작동합니다 Caps Lock.


1
이것은 나를 위해 스크롤 잠금에서만 작동합니다.
lilydjwg

3

라이브러리로 해결하는 소프트웨어 문제는 아닙니다.

키보드 LED는 소프트웨어, 특히 I / O 제어 요청에 응답하여 LED를 켜고 끄는 키보드 마이크로 프로세서로 전송되는 명령을 생성하는 키보드 장치 드라이버에 의해 제어됩니다.

전면 패널의 하드 디스크 작동 표시등은 하드웨어에 의해 제어됩니다. 메인 보드에 연결되어 있으며, 긴 스토리를 줄이려면 PCI-ATA 브리지 칩의 출력에 연결됩니다. (예를 들어, ICH10의 경우이 출력이 SATALED#출력입니다.) 하드웨어가 명령이 SATA / PATA 버스를 통해 전송 될 때이 출력을 켜거나 끕니다. SCSI의 수명을 기억하는 사람들은 SCSI 하드 디스크 활동이 ATA 브리지 하드웨어에 의해 구동되기 때문에 "하드 디스크"LED에 영향을 미치지 않았다는 것을 기억할 것입니다.

실제로는 실용적이지 않으며 SATALED#신호로 출력하기 위해 상당한 양의 추가 소프트웨어와 하드웨어가 필요하므로 소프트웨어가 하드웨어 인터럽트를 수신하여 키보드 장치 드라이버가 명령을 트리거합니다. 상당히 귀찮은 디자인입니다. 그러나 디스크 장치 드라이버에 의해 생성 된 모든 디스크 I / O 명령이 키보드 장치 드라이버를 통해 측면 트립을 수행하게하는 반대의 접근 방식은 " 전면 패널 LED가 켜져 있습니다! " 인터럽트. 디스크와 키보드의 두 가지 별개의 하드웨어 하위 시스템과 상당한 양의 시스템 프로그래밍이 필요합니다. 또한 모든 디스크 I / O를 키보드 속도로 효과적으로 제한합니다.

이것은 더 긴 와이어 조각으로 해결하는 하드웨어 문제입니다.

전면 패널이 서랍이나 테이블 아래에 숨겨져 있고 전면 패널 LED를 보려면, 분리 가능한 전면 패널을 만들고 더 긴 전선으로 메인 보드에 연결하십시오. eBay를 빠르게 확인하면 길이가 1 미터 이상인 전면 패널 케이블 (LED 및 스위치가 연결된 상태)을 판매 할 컴퓨터 구성 요소 공급 업체가 있음을 알 수 있습니다.


2
HDD LED는 단지 예일뿐입니다. 주요 아이디어는 키보드에서 사용하지 않는 LED를 제어하려는 것입니다. 편집 내용을 확인하십시오.
Attila O.

3

AutoHotkey 를 사용하여이를 수행 할 수 있습니다 . 사용해야하는 코드에 대해 배우려면 스레드를 확인하십시오 .

해당 스레드와 AutoHotkey의 문서를 읽은 후에는 해당 작업을 수행 할 수 있습니다.

또한 USB 및 무선 키보드에서도 작동합니다.

Gentoo에서 Wine과 함께 사용할 수 있습니다.


2
Wine과 함께 AutoHotkey를 실행할 수 있었지만 어떤 이유로 든 오류 메시지가 기록되지 않았지만 LED가 켜지지 않았습니다. 또한, 그것이 효과가 있더라도, 몇 밀리 초마다 와인을 파이프로 연결하거나 와인 프로세스를 항상 실행하는 것은 특히을 사용하는 다른 솔루션과 비교할 때 최적이 아닙니다 setleds. 그럼에도 불구하고 이것은 windoze 사용자를위한 솔루션 일 수 있으므로 게시 해 주셔서 감사합니다.
Attila O.

2

리눅스 4.7부터 :

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

CONFIG_LEDS_TRIGGER_DISK=y커널 설정에 필요합니다 .


이것은 지금까지 가장 우아한 답변이며 이것이 정상에 오르기를 바랍니다!
mpy

이것은 실제로 잘 작동하지만 단점은 키보드를 다시 연결하고 다시 꽂을 때 작동이 멈출 수 있다는 것입니다.
SpecialBomb


0

필자는 DELL XPS15 에서 CapsLock LED를 제어 하는 작은 C 프로그램을 작성했습니다 . 하나의 시스템에서만 테스트되므로 귀하에게 도움이 될 것이라고 보장 할 수 없습니다. 어쩌면 당신은 그것을 적응시켜야 할 것입니다, 그러나 그것은 꽤 직설적이어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.