스크롤 잠금 키를 사용하여 키보드의 백라이트를 전환하려면 어떻게 해야 합니까?

스크롤 잠금 키를 사용하여 키보드의 백라이트를 전환하려면 어떻게 해야 합니까?

최근에 조명을 전환하기 위해 스크롤 잠금이 필요한 백라이트 키보드를 구입했습니다. 몇 가지 간단한 bash 명령으로 해결된 몇 가지 문제가 발생했습니다.이것철사.

간단히 말해서, 이 문제를 해결하기 위해 찾은 명령은 다음과 같습니다.

xset led named "Scroll Lock"

Scroll Lock이 활성화되고(표시등이 켜짐)

xset -led named "Scroll Lock"

Scroll Lock을 비활성화하고 조명을 끄십시오.

Scroll Lock 키 이벤트가 수신되고 (Scroll Lock) 기능이 꺼져 있을 때 전자 명령을 실행하고 그렇지 않으면 후자 명령을 실행하려는 경우 어떤 옵션을 사용할 수 있습니까? 그건,

if(ScrollLockIsEnabled)
    systemCommand('xset -led named "Scroll Lock");
else
    systemCommand('xset led named "Scroll Lock"`);

아니면 그런 것.

나는 적어도 Scroll Lock의 마지막 상태를 유지할 수 있는 변수를 저장하기 위해 일종의 Bash 스크립트를 수행할 수 있다고 생각했습니다. 그런 다음 xbindkeys(사용자가 입력한 주요 이벤트에 따라 명령 실행)을 사용하여 이 스크립트를 실행할 수 있습니다 .

답변1

비슷한 질문을 검색하다가 발견했습니다. 1년이 지났으니 대답을 하는게 나을 것 같습니다.

질문과 같이 사용하면 xset led named "Scroll Lock"LED 조명이 활성화되고 xset -led named "Scroll Lock"키보드 LED 조명이 비활성화됩니다. 체크하면 현재 상태정보를 출력한다는 xset --help내용이 나옵니다 .xset q

다음은 터미널의 표준 출력의 잘린 예입니다.

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000002
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off

Scroll lock: off이 문자열은 Scroll Lock이 꺼진 경우에만 출력에 나타나므로 grep을 사용하여 이 문자열을 확인할 수 있습니다. xset q | grep "Scroll Lock: off"우리의 목적에 맞게 잘 작동합니다. 그런 다음 쉘 스크립트에서 빈 문자열을 확인하여 언제 켜져 있는지 확인할 수 있습니다.

#!/bin/sh

result=$(xset q | grep "Scroll Lock: off")
if [ -z "$result" ]; then # Scroll Lock must be on
  echo "Off"
  xset -led named "Scroll Lock"
else
  echo "On"
  xset led named "Scroll Lock"
fi

그런 다음 원하는 경우 창 관리자 또는 데스크탑 환경 구성을 사용하여 스크롤 잠금을 누를 때 이 스크립트를 실행하면 됩니다.

답변2

bash를 사용하면 이 작업을 수행할 수 있습니다. 저는 스크롤 잠금 백라이트 키보드에서 사용합니다. 루트로 실행해야 함

#!/usr/bin/env bash
if [[ $EUID -ne 0 ]]; then
    echo "this program requires root user" 2>&1
    exit 1
fi

dir1=$(find /sys/devices/ -name brightness | grep scrolllock)
while :
do
    var1=`cat $dir1`
    if [ $var1 == 0 ] ; then
        echo 1 > $dir1
    fi
    sleep 5
done

나는 이것을 루트 crontab에서 사용합니다

@reboot sh ~/sh/backlight.sh &

답변3

이것은 오래된 질문이지만 다음은 한 줄 명령입니다.

xset q | grep -q 'Scroll Lock: off' && xset led named 'Scroll Lock' || xset -led named 'Scroll Lock'

xbindkeys 또는 sxhkd(최신)와 함께 사용

이 키보드가 더 이상 흔하지 않다는 것을 알기 때문에 이것이 오늘 누군가에게 도움이 되기를 바랍니다.

관련 정보