
Eu sei que existe um sino visual no Vim que faz a tela inteira piscar em vez de apitar. Vários programas de terminal também possuem o mesmo recurso.
Estou procurando um tipo semelhante de campainha visual que pisque todas as minhas telas, em todos os meus desktops virtuais, em X. Só tenho fones de ouvido no trabalho e o alto-falante do meu PC está muito silencioso, então preciso de algum outro método de notificação que definitivamente chamará minha atenção.
Alguém sabe se existe?
Responder1
Não faço nada exatamente assim, mas você pode usar a ferramenta de linha de comando notificar-enviar para exibir pop-ups na área de trabalho. No Ubuntu o pacote é libnotify-bin. Por exemplo:
notify-send -u normal -t 10000 -i info 'hw' 'Hello world'
Responder2
Eu tive o mesmo problema, então escrevi um programa para isso:
https://github.com/rianhunter/xvisbell
Para correr:
$ git clone https://github.com/rianhunter/xvisbell.git
$ cd xvisbell
$ make
$ xset b on
$ xset b 100
$ ./xvisbell &
$ xkbbell # test
Espero que ajude.
Responder3
Dependendo do que você precisa, existe também xmessage
- é antigo, é feio, mas está incluído no X. Ele não pisca a tela, mas irá exibir uma mensagem, e você pode especificar quais botões estão nele (qual deles você pressiona é retornado no status de saída) se isso for importante.
Responder4
Sim, isso é possível!
A seguir está uma implementação que escurece a luz de fundo do LCD do seu monitor e depois a traz de volta para onde estava.
Passo um: encontre uma maneira de alterar sua luz de fundo de maneira confiável[1][2]. Vou usar o mais simples aqui, mas sim.
Existem controles no nível do kernel (?) Em /sys/class/backlight. O nome exato do subdiretório varia de acordo com sua configuração. Estou usando esse método neste exemplo, mas se você encontrar outro comando que funcione, você pode pular a etapa dois e alterar o script na etapa três para que as funções get_brightness
e set_brightness
usem o método escolhido.
Isto lhe dará o seuatualnível de brilho
cat /sys/class/backlight/intel_backlight/brightness
Agora tente alterá-lo:
export BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness
echo 50 |sudo tee $BRIGHTNESS; sleep 1; echo 80 |sudo tee $BRIGHTNESS
Isso deve deixar sua tela mais escura por um segundo e depois trazê-la para o nível 80 (use o valor obtido anteriormente ou sua tela pode ficar muito escura). Eu os agrupei no mesmo comando para que você não fique preso em uma tela muito escura. Neste teste, estamos atuando como root. A seguir, obteremos acesso para sua própria conta. (Pare aqui se não funcionar!)
Passo dois:obtenha acesso para sua própria conta:
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
(Observe que isso pode não sobreviver à reinicialização. Voltarei e revisarei isso se for o caso, mas só reinicio trimestralmente, então tenha paciência comigo.)
Passo três:escreva um script como o seguinte:
#!/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
Você deve estar pronto para ir. Salve-o como /usr/local/bin/visual-bell
e torne-o executável ( chmod +x visual-bell
), então você poderá executá-lo. Este script piscará um determinado número de vezes (o padrão é uma), para que você possa visual-bell 3
piscar três vezes.
Teoricamente, você pode piscar vários monitores se usar, /sys/class/backlight/*/brightness
mas esteja ciente de que monitores diferentes podem ter escalas de brilho diferentes. Meu LCD Dell (conectado por meio de um adaptador DisplayPort-VGA) não funciona aqui, embora a tela do meu laptop funcione.
Outras etapas: Instale como o "comando de som" em programas como o pidgin. Não sei como fazer isso em emuladores de terminal.