104 votes

Bip dans Shell Shell ne fonctionne pas ?

Je voudrais utiliser un bip sonore dans un Shell Shell. Malheureusement, aucune des méthodes que j'ai trouvées via Google ne fonctionne pour moi.

J'ai essayé

echo -e '\a'

echo -ne '\007'

et la commande beep après l'avoir installé via apt.

Quelle pourrait être la raison ?

111voto

yuvilio Points 3299

N'étant pas un fan du bip de pcspkr, j'utilise un bip d'un des sons du système avec la commande paplay du serveur pulseaudio installé.

Tout d'abord, trouvez un son que vous aimez (vous pouvez parcourir /usr/share/sounds pour trouver des sons disponibles par exemple) et créez une référence à celui-ci

export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg

Puis l'avoir disponible comme une commande

alias beep='paplay $BEEP'

Maintenant, il suffit d'exécuter beep à chaque fois que vous en avez besoin. Par exemple, pour vous avertir de la fin d'une commande :

find . | grep treasure ; beep

106voto

8128 Points 28272

Première manche sudo modprobe pcspkr et ensuite beep devrait fonctionner.

La raison pour laquelle ce n'est pas le cas est que par défaut Ubuntu ne charge plus le pilote matériel qui produit des bips.

Si cela fonctionne pour vous, alors pour activer le chargement de pcspkr de manière permanente, modifiez le fichier /etc/modprobe.d/blacklist.conf (en utilisant gksudo gedit peut-être) et commentez la ligne qui dit blacklist pcspkr donc ça ressemble à ça :

\# ugly and loud noise, getting on everyone's nerves; this should be done by a
# nice pulseaudio bing (Ubuntu: #77010)
# blacklist pcspkr

28voto

miguel Points 1537

Comme il s'agit d'une question très bien notée sur Google, je vais ajouter les étapes que j'ai suivies pour réactiver le bip à la fois dans la console et dans X11 :


Pour la console Linux ( CTRL + ALT + F1 ... F6 ) :

Pourquoi il ne fonctionne pas par défaut

Comme déjà répondu le pcspkr Le pilote du noyau pour le haut-parleur du PC est sur la liste noire d'Ubuntu.

Activer temporairement jusqu'au redémarrage :

sudo modprobe pcspkr

Activation automatique au démarrage :

sudo nano /etc/modprobe.d/blacklist.conf

(supprimer ou commenter pcspkr en la faisant précéder de la mention # )


Pour les terminaux X11 (tels que le terminal par défaut gnome-terminal )

Pourquoi il ne fonctionne pas par défaut

Sous X, comme lors de l'utilisation de Unity, KDE, Gnome Shell, les évènements de bip sont capturés par PulseAudio grâce à module-x11-bell qui est chargé par défaut à /usr/bin/start-pulseaudio-x11 . Et l'échantillon sonore PulseAudio joue sur le bip, bell.ogg est vide par défaut. En outre, le volume de la sonnerie peut être coupé.

Pour activer temporairement la session en cours,

xset b 100  # perhaps not needed, on my system it was 40 by default
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

Il y a d'autres échantillons appropriés que vous pouvez essayer à /usr/share/sounds par exemple, consultez ceux qui se trouvent sur /usr/share/sounds/gnome/default/alerts/

Notez que le beep n'est pas vraiment nécessaire. Mais s'il est installé, il utilise le haut-parleur du PC. C'est le seul moyen que j'ai pu trouver pour activer le buzzer sous X :

sudo apt-get install beep

Pour l'activer automatiquement au démarrage, il suffit d'ajouter les lignes ci-dessus dans votre fichier ~/.profile ou à l'échelle du système à /etc/profile


Pour le tester :

printf '\a'

Bip !

beep

Buzz !

22voto

AJPerez Points 799

J'ai déjà rencontré ce problème. Si je me souviens bien, le problème est que la cloche du terminal essaie de faire sonner un haut-parleur interne de l'ordinateur (comme dans un ordinateur de bureau de la vieille école), mais les ordinateurs portables et certains ordinateurs plus récents n'en ont pas.

La seule solution que j'ai trouvée à l'époque était de

sudo apt-get install sox

et

play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>

par exemple

 play -n synth 0.1 sine 880 vol 0.5

22voto

jdthood Points 11817

Pour résoudre ce problème de manière persistante :

  • Exécuter gconf-editor et si le desktop | gnome | peripherals | keyboard | bell_mode est présent, changez-le de off a on
  • Exécuter dconf-editor et si le org | gnome | settings-daemon | peripherals | keyboard | bell-mode est présent, changez-le de off a on
  • Ajouter pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg vers le fichier ~/.xprofile (vous avez besoin gnome-control-center-data para glass.ogg )
  • Ajouter [ "$DISPLAY" ] && xset b 100 vers le fichier ~/.bashrc

La façon la plus simple d'activer cette solution est de redémarrer.

En outre, pour mettre en œuvre cette solution immédiatement pour une fenêtre de terminal déjà ouverte, exécutez la commande pactl et exécutez la commande xset dans la fenêtre du terminal en question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X