Chciałbym użyć dźwięku beep w skrypcie powłoki. Niestety żadna z metod, które znalazłem za pośrednictwem Google, nie działa dla mnie.
próbowałem
echo -e '\a'
echo -ne '\007'
i polecenie beeppo instalacji przez apt.
Co może być przyczyną?
Chciałbym użyć dźwięku beep w skrypcie powłoki. Niestety żadna z metod, które znalazłem za pośrednictwem Google, nie działa dla mnie.
próbowałem
echo -e '\a'
echo -ne '\007'
i polecenie beeppo instalacji przez apt.
Co może być przyczyną?
Odpowiedzi:
Najpierw uruchom, sudo modprobe pcspkra następnie beeppowinno działać.
Nie dzieje się tak dlatego, że domyślnie Ubuntu nie ładuje już sterownika sprzętowego generującego sygnały dźwiękowe.
Jeśli to zadziała, to włącz ładowanie pcspkr na stałe edytuj /etc/modprobe.d/blacklist.confplik (za pomocą gksudo geditbyć może) i skomentuj wiersz, który mówi blacklist pcspkr, że wygląda to tak:
# brzydki i głośny hałas, który działa na nerwy wszystkich; powinno to zostać wykonane przez # nice pulseaudio bing (Ubuntu: # 77010) # czarna lista pcspkr
blacklist pcspkrmuszę to zrobić modprobe -r pcspkr && modprobe pcspkr, aby działało. Również uruchomienie sygnału dźwiękowego do pracy nie jest tym samym, co uruchomienie dźwiękowego dzwonka, dlatego askubuntu.com/questions/22168/how-do-i-enable-the-terminal-bell powinno być nadal otwarte.
Nie będąc fanem sygnału dźwiękowego pcspkr, używam sygnału dźwiękowego z jednego z dźwięków systemowych za pomocą polecenia paplay zainstalowanego serwera pulseaudio.
Najpierw znajdź dźwięk, który ci się podoba (możesz na przykład przeglądać / usr / share / sound dla niektórych dostępnych) i utworzyć odniesienie
export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg
Następnie przygotuj go jako polecenie
alias beep='paplay $BEEP'
Teraz po prostu biegnij, beepkiedy go potrzebujesz. Na przykład, aby ostrzec Cię, gdy polecenie zostanie zakończone:
find . | grep treasure ; beep
echo -e '\a'
run-my-long-test-suite.sh; beepi odczytać przepływ stosu, aż system będzie gotowy.
export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.oggi alias beep='paplay $BEEP --volume=32768'teraz to działa dobrze dla mnie. (Pamiętaj, że możesz zmienić głośność za pomocą beepaliasu, np. beep --volume=15000Gra na głośności -12dB.)
Aby trwale rozwiązać ten problem:
gconf-editora jeśli desktop | gnome | peripherals | keyboard | bell_modeustawienie jest obecne, zmień je z offnaondconf-editora jeśli org | gnome | settings-daemon | peripherals | keyboard | bell-modeustawienie jest obecne, zmień je z offnaonpactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.oggdo pliku ~/.xprofile(trzeba gnome-control-center-dataza glass.ogg)[ "$DISPLAY" ] && xset b 100do pliku~/.bashrcNajprostszym sposobem na aktywację tego rozwiązania jest ponowne uruchomienie.
Ponadto, aby natychmiast wdrożyć to rozwiązanie dla okna terminala, które jest już otwarte, uruchom pactlpolecenie i uruchom xsetpolecenie w odpowiednim oknie terminala.
pactl upload-samplepolecenie w skrypcie powłoki, ale twoja metoda jest bardziej zorganizowana. Dzięki!
pactlpolecenie ~/.xprofile, zostanie ono wykonane na początku sesji GUI.
dconf-editorWersja bell-modeustawienie wydaje się być org.gnome.settings-daemon.peripherals.keyboard.
glass.oggzainstalowany pakiet zawierający
Ponieważ jest to bardzo wysoko oceniane pytanie w Google, dodam kroki, które zrobiłem, aby ponownie włączyć dźwięk w konsoli i X11:
Jak już odpowiedziano , pcspkrsterownik jądra dla PC Speaker znajduje się na czarnej liście w Ubuntu.
Tymczasowo włączaj do ponownego uruchomienia:
sudo modprobe pcspkr
Automatycznie włącz przy rozruchu:
sudo nano /etc/modprobe.d/blacklist.conf
(usuń lub skomentuj pcspkrwiersz, poprzedzając go znakiem #)
gnome-terminal)Pod X, podobnie jak w przypadku korzystania z Unity, KDE, Gnome Shell, zdarzenia dźwiękowe są przechwytywane przez PulseAudio dzięki module-x11-bell, który jest domyślnie ładowany o /usr/bin/start-pulseaudio-x11. Próbka dźwięku PulseAudio odtwarzana jest po sygnale, bell.oggdomyślnie jest pusta. Dodatkowo głośność dzwonka może być wyciszona.
Aby tymczasowo włączyć bieżącą sesję,
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
Istnieją inne odpowiednie próbki, które możesz wypróbować /usr/share/sounds, na przykład sprawdź te na/usr/share/sounds/gnome/default/alerts/
Pamiętaj, że beepprogram nie jest tak naprawdę konieczny. Ale jeśli jest zainstalowany, używa głośnika PC. To był jedyny sposób, w jaki mogłem znaleźć włączenie brzęczyka w X:
sudo apt-get install beep
Aby automatycznie włączyć podczas rozruchu, po prostu dodaj powyższe linie do swojego ~/.profilelub całego systemu na/etc/profile
Aby to przetestować:
printf '\a'
Brzęczyk!
beep
Brzęczenie!
pcspkri bell.oggsą niezależnymi podejściami. beeppróbuje emitować sygnał dźwiękowy przy użyciu różnych metod, np. ioctl(console_fd, KIOCSOUND, period)użyj pcspkr(dźwięk pochodzi z głośnika komputera na płycie głównej), podczas gdy printf '\a'metoda oparta na systemie może działać bez użycia tylko bell.ogg(dźwięk ze zwykłych głośników). Druga metoda może nie działać, dopóki usługa pulseaudio nie zostanie uruchomiona i / lub xset b onuruchomiona
pactl upload-sample ...było dla mnie złote. Jak ponownie na stałe skonfigurować ładowanie próbki?
~/.profilesystemie lub w /etc/profile
load-sample bell.ogg /usr/share/sounds/ubuntu/stereo/bell.oggw /etc/pulseaudio/default.pa.
Zetknąłem się z tym problemem wcześniej. Z tego, co pamiętam, problem polega na tym, że dzwonek terminalu próbuje zadzwonić do wewnętrznego głośnika komputerowego (jak w starym komputerze stacjonarnym), ale laptopów i niektórych nowszych komputerów czegoś takiego brakuje.
Jedynym rozwiązaniem, jakie wtedy znalazłem, było sudo apt-get install soxi
play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>
na przykład
play -n synth 0.1 sine 880 vol 0.5
play -q -n synth 2 pluck C5. C5 jest notatką.
W końcu znalazłem rozwiązanie, które nie wymaga alsamixeropcji PC Beep. Chyba pamiętam wszystkie moje zmiany:
odkomentuj następujące elementy w /etc/pulse/default.pa:
load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
load-module module-x11-bell sample=bell-windowing-system
na ten błąd , uruchompactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
Connection failure: Connection refused pa_context_connect() failed: Connection refused.
Failed to open module "module-esound-protocol-unix": file not found. Prawdopodobnie nie warto o tym rozmawiać, ponieważ korzystam z 13.04, ale chciałbym móc zweryfikować twoje rozwiązanie.
Jeśli masz rzeczywiste głośniki podłączone do komputera i nie słyszysz sygnału dźwiękowego, prawdopodobnie jest to spowodowane tym, że używasz compiz. Compiz polega na tym, że pulseaudio łapie sygnały dźwiękowe i gra je, podczas gdy metacity omija zwykłe ustawienia i używa libcanberra do odtwarzania dźwięku. Jeśli działa z metacity, a nie z kompizacją, to jest twój problem, w przeciwnym razie odpowiedź udzielona przez htorque jest prawidłowa.
O ile mi wiadomo, jest to błąd: dźwięk systemu rozbił się w Karmic pomimo heroicznych wysiłków, aby go naprawić .
modprobe pcsprk(w konsoli) lub pactl upload-sample ...w X11 i powraca denerwujący dźwięk :)
„ Sygnał dźwiękowy działa tylko wtedy, gdy komputer ma„ głośnik ”. Wiele nowoczesnych laptopów / małych urządzeń nie ma takiego głośnika ”.
Spróbuj odtworzyć taki dźwięk: play xxxxx.wav znalazłem fajny plik wav , który wydaje się krótki i słodki, ale możesz też wybrać własny. Działa dla mnie, gdy wszystko inne zawiodło.
Alternatywne podejście - ustaw xterm / konsolę na „Visual Bell”, aby po usłyszeniu sygnału okno po prostu odwróciło kolory na krótki czas.
Mam funkcję bash o nazwie beep, aby zwrócić moją uwagę po zakończeniu polecenia.
beep () { while true; do echo -en '\a'; sleep 1; done }
I jest używany w ten sposób
longrun-command ; beep