화면을 비워 두고 키보드와 마우스로 무엇을 하든 공백을 해제하라는 명령(잠금과 같은)을 받을 때까지 화면을 비워 두고 싶습니다.
내가 아는 명령은 다음과 같습니다.
xset dpms force off
sleep 2
xset dpms force on
나는 단지 2초 동안 공백으로 두었다가 다시 공백을 없애기를 원하지만, 그럼에도 불구하고 그 2초 동안은 완전히 공백으로 유지되기를 원합니다. 이것이 가능합니까?
답변1
넌 그냥 할 수 있어키보드와 마우스 비활성화지속. 먼저 키보드 및 마우스 ID를 가져옵니다.
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Logitech M325 id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ SIGMACHIP USB Keyboard id=11 [slave keyboard (3)]
제 컴퓨터에 여러가지가 연결되어 있고 노트북을 사용하고 있어서 출력이 xinput --list
꽤 깁니다. 명확성을 위해 여기에서 편집했습니다. 비활성화해야 하는 장치의 ID가 무엇인지 파악해야 합니다. 제 경우에는 14
and 입니다 11
.
이제 화면을 끄고 키보드와 마우스를 비활성화한 후 2초 동안 기다린 후 모든 것을 다시 켜세요.
xinput set-prop 'Logitech M325' 'Device Enabled' 0 &&
xinput set-prop 'SIGMACHIP USB Keyboard' 'Device Enabled' 0 &&
xset dpms force off &&
sleep 2 &&
xinput set-prop 'Logitech M325' 'Device Enabled' 1 &&
xinput set-prop 'SIGMACHIP USB Keyboard' 'Device Enabled' 1 &&
xset dpms force on
내 시스템에서 SIGMACHIP USB
여러 장치가 일치합니다. 어떤 이유에서는 마우스로도 인식됩니다. 올바른 장치를 100% 확신하려면 이름 앞에 클래스를 추가하면 됩니다.
xinput set-prop 'pointer:Logitech M325' 'Device Enabled' 0 &&
xinput set-prop 'keyboard:SIGMACHIP USB Keyboard' 'Device Enabled' 0 &&
xset dpms force off &&
sleep 2 &&
xinput set-prop 'pointer:Logitech M325' 'Device Enabled' 1 &&
xinput set-prop 'keyboard:SIGMACHIP USB Keyboard' 'Device Enabled' 1 &&
xset dpms force on
답변2
당신은 그것을 사용할 수 있습니다랜달. 예를 들어 모니터가 HDMI1인 경우 다음을 수행할 수 있습니다.
xrandr --output HDMI1 --off
sleep 2
xrandr --output HDMI1 --auto
이름을 통해 찾을 수 있습니다.
xrandr|grep ' connected'
답변3
마침내 적어도 효과가 있는 답을 찾았습니다내 거시스템(Lenovo ThinkPad X201 및 ThinkPad X201 Tablet 모두 LVDS 패널 사용) 이는 실제로 백라이트를 비활성화하지만 반투과형 또는 반사형 LCD(특이함)가 없는 한 실제로는 LCD를 끄는 것과 동일해야 합니다.
먼저 제가 설치한인텔 GPU 도구(읽어보기여기더 많은 정보를 알고 싶다면). 데비안에서는 다음과 같이 수행됩니다.
# apt-get install intel-gpu-tools
이 패키지에는 intel_backlight
Intel GPU의 레지스터와 직접 상호 작용하므로 sysfs
밝기 레벨 0이 항상 "낮은 밝기 레벨에서 켜져" 있어야 하는 최신 Linux 커널 파일 시스템의 "안전 경계"로 제한되지 않는 프로그램이 포함되어 있습니다.
불행하게도 이 프로그램은 루트로 실행해야 하며 실제로는 입력 내용을 잘 삭제하지 않습니다. (단지 맹목적으로 이를 atoi()
스크립트의 첫 번째 인수로 받아들이고 실제로 숫자라고 가정합니다.) 저는 여전히 적절한 해결책을 찾고 있지만 현재 귀하가 선택할 수 있는 옵션은 다음과 같습니다.
- 루트로 실행
- 특정 ACPI 이벤트에서 이를 트리거하는 스크립트와 acpid 구성을 작성합니다.
나는 후자의 옵션을 선택했습니다. acpi_listen
ACPI 이벤트를 트리거하는 것으로 감지되었지만 내 노트북에서 어떤 작업도 수행하도록 매핑되지 않은 키 조합을 선택했습니다 . 저는 fn+f1을 선택했습니다. 이론적으로는 밝기 낮추기 키를 눌러 활성화하고 밝기가 최소에 도달했는지 확인한 다음 그렇다면 백라이트를 끌 수도 있습니다.
저는 다음 파일을 작성했습니다.
/etc/acpi/events/fnf1-toggle-lcd:
event=button/fnf1
action=/etc/acpi/toggle-thinklight-or-tablet-lcd.sh "%e"
/etc/acpi/toggle-thinklight-or-tablet-lcd.sh:
#! /bin/bash
# intel_backlight appears to require root privs.
# is the light on or off?
export INTEL_BACKLIGHT="/usr/bin/intel_backlight"
export light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
if [ "$light_state" -eq 0 ]; then # if the backlight is currently off
# restore brightness level
cat /root/brightness > /sys/class/backlight/acpi_video0/brightness
else # the backlight is currently on
# back up current brightness level
cat /sys/class/backlight/acpi_video0/brightness > /root/brightness
# turn off backlight
"$INTEL_BACKLIGHT" 0
fi
쉘 스크립트가 실행 가능으로 표시되어 있는지 확인하십시오.
의도한 바가 정확히 아닐 수도 있습니다. 파티에 늦었다는 건 알지만 여기서는 괜찮습니다.
또는 eDP 패널에서 이 방법이 echo 0 > /sys/class/backlight/acpi_video0/bl_power
작동할 수도 있습니다. 이건 확실히~하지 않을 것이다분명히 일부 커널 개발자는 그것이 좋은 생각이라고 생각했기 때문에 LVDS 패널에서 작업하고 있습니다.