Me gustaría usar un pitido en un script de shell. Lamentablemente, ninguno de los métodos que encontré a través de Google me funciona.
Lo intenté
echo -e '\a'
echo -ne '\007'
y el comando beepdespués de instalarlo a través de apt.
¿Cuál podría ser la razón?

Respuestas:
Primero corre
sudo modprobe pcspkry luegobeepdebería funcionar.La razón por la que esto no ocurre es que, por defecto, Ubuntu ya no carga el controlador de hardware que produce pitidos.
Si esto funciona para usted, entonces para habilitar la carga de pcspkr edite permanentemente el
/etc/modprobe.d/blacklist.confarchivo (usandogksudo geditquizás) y comente la línea que diceblacklist pcspkrque se ve así:fuente
blacklist pcspkr, tengo que hacermodprobe -r pcspkr && modprobe pcspkrpara que funcione. Además, hacer que suene el pitido no es lo mismo que hacer que suene la campana audible y, por lo tanto, askubuntu.com/questions/22168/how-do-i-enable-the-terminal-bell aún debe estar abierto.Como no soy fanático del pitido pcspkr, utilizo un pitido de uno de los sonidos del sistema con el comando de reproducción del servidor pulseaudio instalado.
Primero encuentre un sonido que le guste (puede buscar / usr / compartir / sonidos para algunos disponibles, por ejemplo) y crear una referencia a él
Luego tenlo disponible como un comando
Ahora solo corre
beepcuando lo necesites. Por ejemplo, para alertarlo cuando finalice un comando:fuente
echo -e '\a'run-my-long-test-suite.sh; beepy leer stackoverflow hasta que el sistema esté listo.export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.oggyalias beep='paplay $BEEP --volume=32768'ahora, eso funciona bien para mí. (Tenga en cuenta que puede anular el volumen con elbeepalias, por ejemplo, sebeep --volume=15000reproduce en un volumen de -12dB.)Para solucionar este problema persistentemente:
gconf-editory si ladesktop | gnome | peripherals | keyboard | bell_modeconfiguración está presente, cámbiela deoffaondconf-editory si laorg | gnome | settings-daemon | peripherals | keyboard | bell-modeconfiguración está presente, cámbiela deoffaonpactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.oggal archivo~/.xprofile(que necesitagnome-control-center-dataparaglass.ogg)[ "$DISPLAY" ] && xset b 100al archivo~/.bashrcLa forma más sencilla de activar esta solución es reiniciar.
Además, para implementar esta solución inmediatamente para una ventana de terminal que ya está abierta, ejecute el
pactlcomando y ejecute elxsetcomando en la ventana de terminal en cuestión.fuente
pactl upload-samplecomando en un script de shell, pero su método es más organizado. ¡Gracias!pactlcomando~/.xprofile, se ejecuta al comienzo de la sesión de la GUI.dconf-editorversión de labell-modeconfiguración parece serorg.gnome.settings-daemon.peripherals.keyboard.glass.ogginstalado el paquete que contieneComo esta es una pregunta de alta calificación en Google, agregaré los pasos que hice para volver a habilitar el pitido tanto en la consola como en X11:
Para la consola de Linux ( CTRL+ ALT+ F1... F6):
Por qué no funciona por defecto
Como ya se respondió , el
pcspkrcontrolador del kernel para el PC Speaker está en la lista negra de Ubuntu.Habilitar temporalmente hasta reiniciar:
Habilitar automáticamente en el arranque:
(eliminar o comentar la
pcspkrlínea al agregarla#)Para terminales X11 (como el predeterminado
gnome-terminal)Por qué no funciona por defecto
En X, como cuando se usa Unity, KDE, Gnome Shell, PulseAudio captura los eventos de pitido gracias a
module-x11-bellque se carga de forma predeterminada en/usr/bin/start-pulseaudio-x11. Y la muestra de sonido PulseAudio se reproduce en pitidobell.ogg, está en blanco de forma predeterminada. Además, el volumen de la campana puede estar silenciado.Para habilitar temporalmente la sesión actual,
Hay otras muestras adecuadas que puede probar
/usr/share/sounds, por ejemplo, consulte las/usr/share/sounds/gnome/default/alerts/Tenga en cuenta que el
beepprograma no es realmente necesario. Pero si está instalado, usa el altavoz de la PC. Era la única forma que pude encontrar para habilitar el timbre bajo X:Para habilitar automáticamente el arranque, simplemente agregue las líneas anteriores en su
~/.profile, o en todo el sistema en/etc/profilePara probarlo:
¡Bip!
¡Zumbido!
fuente
pcspkrybell.oggson enfoques independientes.beepintenta emitir un pitido usando varios enfoques, por ejemplo,ioctl(console_fd, KIOCSOUND, period)usarpcspkr(el sonido proviene del altavoz de la PC en la placa base) mientras que elprintf '\a'método basado en la base puede funcionar sin usarlo solobell.ogg(el sonido proviene de los altavoces normales). El segundo método podría no funcionar hasta que se inicie y / oxset b onse ejecute el serviciopactl upload-sample ...era dorado para mí. ¿Cuál es la forma de configurar permanentemente la carga de la muestra nuevamente?~/.profile, o de todo el sistema en/etc/profileload-sample bell.ogg /usr/share/sounds/ubuntu/stereo/bell.oggen/etc/pulseaudio/default.pa.He encontrado este problema antes. Por lo que recuerdo, el problema es que el timbre de la terminal intenta sonar un altavoz interno de la computadora (como en un escritorio de la vieja escuela) pero las computadoras portátiles y algunas computadoras más nuevas no tienen tal cosa.
La única solución que encontré en ese momento fue
sudo apt-get install soxyp.ej
fuente
play -q -n synth 2 pluck C5. C5 es la nota.Finalmente encontré una solución, que no requiere
alsamixertener una opción de pitido de PC. Creo que recuerdo todos mis cambios:descomenta lo siguiente en
/etc/pulse/default.pa:por este error , ejecuta
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.oggfuente
Connection failure: Connection refused pa_context_connect() failed: Connection refused.Failed to open module "module-esound-protocol-unix": file not found. Probablemente no valga la pena hablar aquí ya que estoy ejecutando 13.04, aunque me encantaría poder verificar su solución.Si tiene altavoces reales conectados a la computadora y no está escuchando un pitido, es probable que esté usando compiz. Compiz confía en que pulseaudio capte los pitidos y los reproduzca mientras metacity omite la configuración habitual y usa libcanberra para reproducir un pitido. Si funciona con metacity y no compiz, ese es su problema, de lo contrario, la respuesta que dio htorque es actual.
fuente
Por lo que puedo decir, este es un error: el pitido del sistema se rompió en Karmic a pesar de los heroicos esfuerzos para solucionarlo .
fuente
modprobe pcsprk(en la consola) opactl upload-sample ...en X11 y el molesto pitido está de vuelta :)" Beep solo funciona si su PC tiene un 'altavoz'. Muchas computadoras portátiles modernas / dispositivos pequeños no tienen uno".
Intenta reproducir un sonido como este:
play xxxxx.wavencontré un buen archivo wav que parece ser corto y dulce, pero también puedes elegir el tuyo. Funciona para mí cuando todo lo demás falla.Gracias a: tredegar & hk_centos
fuente
Un enfoque alternativo: configure su xterm / consola en "Visual Bell" para que cuando suene un pitido, la ventana simplemente invierta sus colores por un corto tiempo.
Tengo una función bash llamada bip para llamar mi atención una vez que se termina un comando.
Y se usa de esta manera
fuente
Podría ser demasiado tarde, PERO, para el tipo en el futuro que busca esto:
fuente