
Sé que existe una campana visual en Vim que hace que toda la pantalla parpadee en lugar de emitir un pitido. Varios programas de terminal también tienen la misma característica.
Estoy buscando un tipo similar de campana visual que haga parpadear todas mis pantallas, en todos mis escritorios virtuales, en X. Solo tengo auriculares en el trabajo y el altavoz de mi PC es demasiado silencioso, así que necesito otro método de notificación que definitivamente llamará mi atención.
¿Alguien sabe si existe?
Respuesta1
No sé nada exactamente así, pero puedes usar la herramienta de línea de comando notificar-enviar para tener ventanas emergentes en el escritorio. En Ubuntu el paquete es libnotify-bin. Por ejemplo:
notify-send -u normal -t 10000 -i info 'hw' 'Hello world'
Respuesta2
Tuve el mismo problema así que escribí un programa para esto:
https://github.com/rianhunter/xvisbell
Correr:
$ git clone https://github.com/rianhunter/xvisbell.git
$ cd xvisbell
$ make
$ xset b on
$ xset b 100
$ ./xvisbell &
$ xkbbell # test
Espero que ayude.
Respuesta3
Dependiendo de lo que necesites, también lo hay xmessage
: es viejo, es feo, pero está incluido con X. No parpadea la pantalla, pero mostrará un mensaje y podrás especificar qué botones hay en él (cuál presiona vuelve al estado de salida) si eso es importante.
Respuesta4
¡Sí, esto es posible!
La siguiente es una implementación que atenúa la luz de fondo del LCD de su monitor y luego la devuelve a donde estaba.
Paso uno: encuentre una manera de alterar de manera confiable la luz de fondo[1][2]. Usaré el más simple aquí pero mmv.
Hay controles a nivel de kernel(?) en /sys/class/backlight. El nombre exacto del subdirectorio variará según su configuración. Estoy usando este método en este ejemplo, pero si encuentra otro comando que funcione, puede omitir el paso dos y modificar el script en el paso tres para que las funciones get_brightness
y set_brightness
utilicen el método elegido.
Esto te dará tuactualnivel de brillo
cat /sys/class/backlight/intel_backlight/brightness
Ahora intenta cambiarlo:
export BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness
echo 50 |sudo tee $BRIGHTNESS; sleep 1; echo 80 |sudo tee $BRIGHTNESS
Esto debería oscurecer la pantalla durante un segundo y luego llevarla al nivel 80 (use el valor que obtuvo anteriormente o la pantalla podría estar demasiado oscura). Los he agrupado en el mismo comando para que no te quedes atascado con una pantalla demasiado oscura. En esta prueba, actuamos como root. A continuación obtendremos acceso para su propia cuenta. (¡Deténgase aquí si no funciona!)
Segundo paso:obtenga acceso para su propia cuenta:
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
(Tenga en cuenta que es posible que esto no sobreviva al reinicio. Volveré y revisaré esto si ese es el caso, pero solo reinicio ~trimestralmente, así que tengan paciencia).
Paso tres:escribe un script como el siguiente:
#!/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
Usted debe ser bueno para ir. Guárdelo como /usr/local/bin/visual-bell
y hágalo ejecutable ( chmod +x visual-bell
), luego podrá ejecutarlo. Este script parpadeará la cantidad de veces indicada (el valor predeterminado es una), por lo que puede ejecutarlo visual-bell 3
para parpadear tres veces.
En teoría, puedes hacer parpadear varios monitores si los usas /sys/class/backlight/*/brightness
, pero ten en cuenta que diferentes monitores pueden tener diferentes escalas de brillo. Mi pantalla LCD de Dell (conectada mediante un adaptador DisplayPort-VGA) no funciona aquí, aunque la pantalla de mi computadora portátil sí.
Pasos adicionales: Instalar como "comando de sonido" en programas como pidgin. No sé cómo hacer esto en emuladores de terminal.