Звуковой сигнал в сценарии оболочки не работает?

Если вы используете ночную сборку Firefox https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa, то для удаления ночной сборки Firefox запустите эту команду в терминале

[ f1]
1
задан 10 June 2013 в 04:24

8 ответов

Не являясь поклонником звукового сигнала pcspkr, я использую звуковой сигнал из одного из системных звуков с установленной командой paplay сервера pulseaudio.

Сначала найдите понравившийся вам звук (вы можете просматривать / usr / share / sounds для некоторых доступных, например) и создать ссылку на него

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

Затем он будет доступен в виде команды

alias beep='paplay $BEEP'

Теперь просто запустите beep всякий раз Вы нуждаетесь в этом. Например, чтобы предупредить вас о завершении команды:

find . | grep treasure ; beep
80
ответ дан 25 May 2018 в 23:40
  • 1
    Можете ли вы заставить его воспроизводить этот звук, когда кто-то запускает echo -e '\a' – Flimm 3 December 2014 в 03:22
  • 2
    Возможно, вам понадобится команда read в цикле while или в какой-либо другой библиотеке, которая может отслеживать нажатия клавиш. – yuvilio 11 December 2014 в 05:12
  • 3
    Это отличное решение! Теперь я могу сделать run-my-long-test-suite.sh; beep и читать stackoverflow до тех пор, пока система не будет готова. – jamesc 30 March 2015 в 13:17
  • 4
    Ницца! Теперь я использую export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.ogg и alias beep='paplay $BEEP --volume=32768', что хорошо работает для меня. (Обратите внимание, что вы можете переопределить громкость с помощью псевдонима beep, например beep --volume=15000, при громкости -12 дБ.) – leftaroundabout 6 December 2015 в 16:57
  • 5
    Воспроизведение этих файлов ogg может привести к тому, что задержки будут больше, чем сигналы внутреннего громкоговорителя ПК. Мало того, что латентность кажется очень переменной. Я признаю, что большинство людей не заботятся, но когда вам нужно в реальном времени или почти в режиме реального времени, динамик ПК, вероятно, лучший вариант для слышимой обратной связи. – H2ONaCl 21 February 2018 в 23:59

Чтобы устранить эту проблему настойчиво:

Запустите gconf-editor, и если установлен параметр desktop | gnome | peripherals | keyboard | bell_mode, измените его с off на on Запуск dconf-editor, и если org | gnome | settings-daemon | peripherals | keyboard | bell-mode , затем измените его с off на on Добавьте pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg в файл ~/.xprofile (вам нужно gnome-control-center-data для glass.ogg) Добавьте [ "$DISPLAY" ] && xset b 100 в файл ~/.bashrc

Самый простой способ активировать это решение - перезагрузка.

Кроме того, чтобы реализовать это решение сразу для уже открытого оконного окна, запустите команду pactl и запустите команду xset в оконечное окно, о котором идет речь.

21
ответ дан 25 May 2018 в 23:40
  • 1
    Я поместил команду pactl upload-sample в сценарий оболочки, но ваш метод более организован. Благодаря! – JoBu1324 12 December 2012 в 22:54
  • 2
    Если вы поместите команду pactl в ~/.xprofile, она будет выполнена в начале сеанса GUI. – jdthood 13 December 2012 в 00:32
  • 3
    Версия dconf-editor настройки bell-mode представляется org.gnome.settings-daemon.peripherals.keyboard. – lgarzo 21 June 2013 в 13:59
  • 4
    @lgarzo: Спасибо за подсказку. Я обновлю ответ. – jdthood 21 June 2013 в 14:22
  • 5
    @ Hibou57: убедитесь, что у вас установлен пакет, содержащий glass.ogg – Janus Troelsen 16 November 2014 в 17:44

Поскольку это очень высокий рейтинг вопроса в google, я добавлю шаги, которые я сделал для повторного включения звукового сигнала в обеих консолях и X11:

Для Linux Консоль (CTRL + ALT + F1 ... F6):

Почему это не работает по умолчанию

Как уже было сказано, драйвер ядра pcspkr для динамика ПК включен в черный список в Ubuntu.

Временно включить до перезагрузки:

sudo modprobe pcspkr

Автоматически включать при загрузке:

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

(удалить или прокомментировать pcspkr, добавив его с помощью [ f9])

Для терминалов X11 (например, по умолчанию gnome-terminal)

Почему это не работает по умолчанию

В X, как и при использовании Unity, KDE, Gnome Shell, звуковые сигналы записываются PulseAudio с помощью module-x11-bell, который по умолчанию загружается по /usr/bin/start-pulseaudio-x11. И звуковой образец PulseAudio воспроизводит звуковой сигнал, bell.ogg по умолчанию пуст. Кроме того, громкость звонка может быть отключена.

Чтобы временно включить текущий сеанс,

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

Есть другие подходящие образцы, которые вы можете попробовать в /usr/share/sounds, например, проверьте в /usr/share/sounds/gnome/default/alerts/

Обратите внимание, что программа beep действительно не нужна. Но если он установлен, он использует динамик ПК. Это был единственный способ, которым я мог найти, чтобы включить зуммер под X:

sudo apt-get install beep

Чтобы автоматически активировать при загрузке, просто добавьте вышеприведенные строки в свой ~/.profile или общесистемный в /etc/profile

Чтобы проверить это:

printf '\a'

Beep!

beep

Beep! [ ! d25]

17
ответ дан 25 May 2018 в 23:40
  • 1
    Чтобы автоматически включить звуковой сигнал громкоговорителя ПК при загрузке, вы должны на самом деле комментарий , указанная строка в /etc/modprobe.d/blacklist.conf не раскомментирует его (вы хотите отключить черный список , А не наоборот). – o'rety 16 September 2016 в 14:18
  • 2
    @ o'rety: спасибо, я отредактировал его! :) – MestreLion 5 October 2016 в 10:14
  • 3
    оба решения работают на Ubuntu 16.04 Примечание: pcspkr и bell.ogg - независимые подходы. beep пытается подать звуковой сигнал с использованием различных подходов, например, ioctl(console_fd, KIOCSOUND, period) использовать pcspkr (звук поступает от динамика ПК на материнской плате), в то время как метод printf '\a' может работать без него, используя только bell.ogg (звук от обычных динамиков). Второй метод может не работать до тех пор, пока не будет запущена служба pulseaudio и / или xset b on – jfs 13 October 2016 в 03:43
  • 4
    [F1] был для меня золотым. Каким образом можно снова настроить загрузку образца? – ulidtko 30 November 2016 в 02:15
  • 5
    @ulidtko: просто добавьте эти строки в свой ~/.profile или общесистемный в /etc/profile – MestreLion 6 February 2017 в 19:40

Я столкнулся с этой проблемой раньше. Из того, что я помню, проблема заключается в том, что терминальный колокол пытается звонить внутреннему компьютерному динамику (как на рабочем столе старой школы), но ноутбуки и некоторые новые компьютеры не хватает такой вещи.

Единственное решение В то время я нашел sudo apt-get install sox и

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

, например

 play -n synth 0.1 sine 880 vol 0.5
10
ответ дан 25 May 2018 в 23:40
  • 1
    попробуйте мое решение - мне бы хотелось узнать, работает ли это для вас! – JoBu1324 12 December 2012 в 05:10
  • 2
    вы можете использовать для этого тест колонок – Janus Troelsen 11 June 2014 в 14:05

Если у вас есть фактические динамики, подключенные к компьютеру, и вы не получаете звуковой сигнал, это вероятно, потому что вы используете compiz. Compiz полагается на pulseaudio, улавливая звуковые сигналы и воспроизводя их, а metacity обходит обычную настройку и использует libcanberra для воспроизведения звукового сигнала. Если это работает с metacity, а не с compiz, это ваша проблема, в противном случае ответ htorque дал corrent.

2
ответ дан 25 May 2018 в 23:40

Насколько я могу судить, это ошибка: системный звуковой сигнал в Кармике, несмотря на героические усилия по его исправлению.

2
ответ дан 25 May 2018 в 23:40
  • 1
    " Не включено по умолчанию " не означает, что он сломан, и нет «героического усилия». необходимо: просто modprobe pcsprk (в консоли) или pactl upload-sample ... в X11, а раздражающий звуковой сигнал возвращается :) – MestreLion 19 February 2015 в 15:03

Наконец-то я нашел решение, которое не требует alsamixer иметь параметр PC Beep. Я думаю, что я помню все свои изменения:

раскомментирует следующее в /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

за эту ошибку, запустите pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

2
ответ дан 25 May 2018 в 23:40
  • 1
    Пробовал это, pactl дал мне Connection failure: Connection refused pa_context_connect() failed: Connection refused. – YodaDaCoda 12 December 2012 в 05:33
  • 2
    Возможно, эта нить поможет - если вы когда-либо запускали pulseaudio с правами root. – JoBu1324 12 December 2012 в 05:49
  • 3
    На самом деле у меня другая проблема. Пульсаулла выбрасывает Failed to open module "module-esound-protocol-unix": file not found. Наверное, не стоит обсуждать здесь, так как я запускаю 13.04, хотя мне бы хотелось проверить ваше решение. – YodaDaCoda 12 December 2012 в 06:05
  • 4
    Приятно, только немного разные линии для 15.04. – VRR 12 September 2015 в 14:09

«Звуковой сигнал работает только в том случае, если на вашем ПК имеется« динамик ». Многие современные ноутбуки / небольшие устройства не имеют одного».

Попробуйте воспроизвести звук следующим образом: Звуковой сигнал работает только в том случае, если на вашем ПК есть «динамик». Я нашел хороший wav-файл, который кажется коротким и сладким, но вы можете выберите свой собственный.

Благодаря: wav & amp; hk_centos

1
ответ дан 25 May 2018 в 23:40

Другие вопросы по тегам:

Похожие вопросы: