Existe um sino visual no Linux que funciona no X?

Existe um sino visual no Linux que funciona no X?

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_brightnesse set_brightnessusem 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-belle 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 3piscar três vezes.

Teoricamente, você pode piscar vários monitores se usar, /sys/class/backlight/*/brightnessmas 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.

informação relacionada