シェルスクリプトでビープ音を使用したいと思います。残念ながら、Googleで見つけた方法はどれも役に立ちません。
私は試した
echo -e '\a'
echo -ne '\007'
コマンドbeep
は、apt経由でインストールした後です。
理由は何でしょうか?
最初にSudo modprobe pcspkr
を実行し、次にbeep
が機能するはずです。
これが行われない理由は、デフォルトでは、Ubuntuがビープ音を出すハードウェアドライバーをロードしないためです。
これで問題がなければ、pcspkrの読み込みを有効にして/etc/modprobe.d/blacklist.conf
ファイルを永続的に編集し(おそらくgksudo gedit
を使用)、blacklist pcspkr
という行をコメントアウトして、次のようにします。
#andい大きな音、みんなの神経に乗る;これは、a #Nice pulseaudio bing(Ubuntu:#77010) #blacklist pcspkrによって行われるべきです。
Pcspkrのビープ音のファンではないので、インストールされたpulseaudioサーバーのpaplayコマンドでシステムサウンドのビープ音を使用します。
まず、好きなサウンドを見つけて(たとえば、/ usr/share/soundsを参照して、使用可能なサウンドを探してください)、それへの参照を作成します
export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg
次に、コマンドとして使用可能にします
alias beep='paplay $BEEP'
必要なときにbeep
を実行するだけです。たとえば、コマンドが終了したときに警告するには:
find . | grep treasure ; beep
これはGoogleで非常に高い評価の質問なので、コンソールとX11の両方でビープ音を再度有効にするために行った手順を追加します。
すでに回答済み であるため、PCスピーカー用のpcspkr
カーネルドライバーはUbuntuでブラックリストに登録されています。
再起動するまで一時的に有効にします。
Sudo modprobe pcspkr
起動時に自動的に有効にする:
Sudo nano /etc/modprobe.d/blacklist.conf
(#
を先頭に追加して、pcspkr
行を削除またはコメントします)
gnome-terminal
など)Xの下では、Unity、KDE、Gnome Shellを使用するときのように、module-x11-bell
がデフォルトで読み込まれる/usr/bin/start-pulseaudio-x11
のおかげで、ビープイベントがPulseAudioによってキャプチャされます。また、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
プログラムは実際には必要ないことに注意してください。ただし、インストールされている場合は、PCスピーカーが使用されます。 Xでブザーを有効にできる唯一の方法です。
Sudo apt-get install beep
起動時に自動的に有効にするには、上記の行を~/.profile
に追加するか、/etc/profile
でシステム全体に追加します
テストするには:
printf '\a'
ビープ音!
beep
バズ!
この問題を永続的に修正するには:
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
コマンドを実行します。
以前にこの問題に遭遇しました。私が覚えていることから、問題は、ターミナルベルが内部コンピューターのスピーカーを鳴らそうとすることです(古い学校のデスクトップのように)が、ラップトップやいくつかの新しいコンピューターにはそのようなものがありません。
私がその時に見つけた唯一の解決策は、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
私はついに解決策を見つけました。これは、PC [ビープ音]オプションを持つためにalsamixer
を必要としません。私は私のすべての変更を覚えていると思います:
/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
を実行します
私が知る限り、これはバグです: それを修正するための英雄的な努力にもかかわらず、カルミックでシステムビープが壊れました 。
コンピューターに実際のスピーカーが接続されていて、ビープ音が鳴らない場合は、compizを使用している可能性があります。 Compizは、pulsecityがビープ音をキャッチして再生し、metacityが通常のセットアップをバイパスし、libcanberraを使用してビープ音を再生することに依存しています。メタシティで動作し、compizではなく問題である場合、それ以外の場合、htorqueが与える答えはcorrentです。
別のアプローチ-xterm/consoleを「Visual Bell」に設定して、ビープ音が鳴ったときにウィンドウの色が短時間だけ反転するようにします。
コマンドが終了したら注意を引くために、beepというbash関数があります。
beep () { while true; do echo -en '\a'; sleep 1; done }
そして、それはこのように使用されます
longrun-command ; beep