
나는 Vim에 경고음 대신 전체 화면이 깜박이게 만드는 시각적 종소리 같은 것이 있다는 것을 알고 있습니다. 여러 터미널 프로그램에도 동일한 기능이 있습니다.
저는 X의 모든 가상 데스크톱에서 모든 화면을 깜박이게 하는 비슷한 유형의 시각적 벨을 찾고 있습니다. 직장에는 헤드폰만 있고 PC 스피커는 너무 조용해서 다른 벨이 필요합니다. 확실히 나의 관심을 끌 수 있는 알림 방법입니다.
그것이 존재하는지 아는 사람이 있습니까?
답변1
저는 정확히 그런 것은 아니지만 명령줄 도구인 inform-send를 사용하여 데스크탑에 팝업을 표시할 수 있습니다. 우분투에서는 패키지가 libnotify-bin입니다. 예를 들어:
notify-send -u normal -t 10000 -i info 'hw' 'Hello world'
답변2
저도 같은 문제가 있어서 이에 대한 프로그램을 작성했습니다.
https://github.com/rianhunter/xvisbell
실행하려면:
$ git clone https://github.com/rianhunter/xvisbell.git
$ cd xvisbell
$ make
$ xset b on
$ xset b 100
$ ./xvisbell &
$ xkbbell # test
도움이 되길 바랍니다.
답변3
필요한 것에 따라 xmessage
오래되고 보기 흉하지만 X에 포함되어 있는 기능도 있습니다. 화면을 깜박이지는 않지만 메시지가 팝업되며 어떤 버튼이 있는지 지정할 수 있습니다. 를 누르면 종료 상태로 돌아갑니다) 그것이 중요한 경우.
답변4
예, 가능합니다!
다음은 모니터의 LCD 백라이트를 어둡게 한 다음 원래 위치로 되돌리는 구현입니다.
1단계: 백라이트를 안정적으로 변경하는 방법을 찾으세요[1][2]. 여기서는 가장 간단한 것을 사용하겠습니다. 하지만 ymmv입니다.
/sys/class/backlight에는 커널(?) 수준의 제어 기능이 있습니다. 정확한 하위 디렉터리 이름은 설정에 따라 달라집니다. 이 예에서는 이 방법을 사용하고 있지만 작동하는 다른 명령을 찾으면 2단계를 건너뛰고 3단계의 스크립트를 변경하여 get_brightness
및 set_brightness
함수에서 선택한 방법을 사용할 수 있습니다.
이것은 당신에게 당신의현재의밝기 수준
cat /sys/class/backlight/intel_backlight/brightness
이제 변경해 보세요.
export BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness
echo 50 |sudo tee $BRIGHTNESS; sleep 1; echo 80 |sudo tee $BRIGHTNESS
이렇게 하면 화면이 1초 동안 어두워졌다가 레벨 80으로 높아집니다(이전에 얻은 값을 사용하지 않으면 디스플레이가 너무 어두워질 수 있음). 화면이 너무 어두워도 문제가 발생하지 않도록 동일한 명령으로 묶었습니다. 이 테스트에서는 루트 역할을 합니다. 다음에는 귀하의 계정에 대한 액세스 권한을 얻으겠습니다. (안되면 여기서 멈추세요!)
2단계:자신의 계정에 대한 액세스 권한을 얻으세요:
sudo chmod g+w /sys/class/backlight/intel_backlight/brightness
sudo chgrp video /sys/class/backlight/intel_backlight/brightness
sudo usermod -a -G video my_username
(참고로 재부팅 후에도 유지되지 않을 수 있습니다. 그렇다면 돌아와서 수정하겠습니다. 하지만 분기별로만 재부팅하므로 양해해 주세요.)
3단계:다음과 같은 스크립트를 작성하세요.
#!/bin/sh
help() { cat <</help
Blink/flash the whole X display (on one LCD monitor)
Usage: visual-bell [BLINK_COUNT]
0.2+20140327 Copyright (c) 2010+ by Adam Katz <www.khopis.com/scripts>, LGPL 2+
/help
}
SLEEP_TIME=0.03
BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness
get_brightness() {
cat $BRIGHTNESS
}
set_brightness() {
echo $1 > $BRIGHTNESS
}
COUNT=${1:-1} # read count from first argument (default to one blink)
# if the argument wasn't a number greater than zero, show help and exit
if ! [ "$COUNT" -gt 0 ] 2>/dev/null; then
help
exit 1
fi
LEVEL=`get_brightness`
while [ $COUNT -gt 0 ]; do
set_brightness 0 # blacken the screen
sleep $SLEEP_TIME
set_brightness $LEVEL # revert the screen to previous brightness
sleep $SLEEP_TIME
COUNT=$((COUNT-1)) # decrement counter
done
가셔도 좋습니다. 다른 이름으로 저장 /usr/local/bin/visual-bell
하고 실행 가능하게( chmod +x visual-bell
) 만든 다음 실행하면 됩니다. 이 스크립트는 지정된 횟수(기본값은 1회)만큼 깜박이므로 visual-bell 3
세 번 깜박이도록 실행할 수 있습니다.
사용하는 경우 이론적으로 여러 모니터를 깜박일 수 있지만 /sys/class/backlight/*/brightness
모니터마다 밝기 스케일이 다를 수 있다는 점에 유의하세요. 내 Dell LCD(DisplayPort-VGA 어댑터를 통해 연결됨)는 여기서 작동하지 않지만 내 노트북 디스플레이는 작동합니다.
추가 단계: pidgin과 같은 프로그램에서 "사운드 명령"으로 설치합니다. 터미널 에뮬레이터에서 이 작업을 수행하는 방법을 모르겠습니다.