PC スピーカーのビープ音の無効化
目次
イントロダクション
こちらの思惑とは関係なく、コンピュータはいろいろな場面でビープ音を頻繁に鳴らします。設定によって、ビープ音を鳴らすか、鳴らすならいつ鳴らすかを設定することができます。
さらに、コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります。この記事では主として前者について記述しています。
ビープ音は BIOS (Basic Input/Output System) や、OS (Operating System)、DE (Desktop Environment) など様々なプログラムから生じます。BIOS の場合は特に扱いが難しくなります。BIOS はマザボードの EPROM チップの中にあるので、ユーザーが BIOS に対して直接行える操作はオンオフだけだからです。BIOS のセットアップに望む設定があるか、チップをリプログラムしない限り、BIOS の設定を変えることは全く出来ません。BIOS によるビープ音はここでは触れませんが、あなたのコンピュータのケーススピーカーを抜いてしまえば音はしないでしょう(自己責任で行なって下さい)。
しかし、それ以外の全てのビープ音は以下の設定によって消すことが可能です。
One should also note that the option of turning off a particular instance of a sound, while leaving the others operational, is possible if one can identify which portion of the environment is the source of the particular sound generation. This can make a very customized selection of attention-getting sounds possible. Please feel free to add your findings to this wiki page when you find particular examples of settings combinations which may be useful for other users.
グローバル環境
PC スピーカーは pcspkr
モジュールをアンロードすることで無効化できます:
# rmmod pcspkr
起動時から無効にするには pcspkr
モジュールをブラックリスト入りさせて udev にロードさせないようにします:
# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
ローカル環境
X で
$ xset -b
xprofile などのスタートアップファイルにこのコマンドを加えることで、設定を永続的にすることができます。
コンソールで
このコマンドを /etc/profile
や /etc/profile.d/disable-beep.sh
のようなファイル(実行可能にする必要があります)に加えてください:
setterm -blength 0
他にも /etc/inputrc
や ~/.inputrc
に以下の行を加える、もしくはアンコメントする方法もあります:
set bell-style none
ALSA を使う
PC スピーカーをミュートします:
$ amixer set 'PC Speaker' 0% mute
特定のサウンドカードだけをミュートするには、PC ビープです:
$ amixer set 'PC Beep' 0% mute
もしくはただ Beep をミュートします:
$ amixer set 'Beep' 0% mute
コンソール GUI である alsamixer を使ってもかまいません
$ alsamixer
PC ビープにスクロールし 'M' を押してミュートします。alsa 設定を保存するには:
# alsactl store
GNOME/Metacity で
Gconf で /apps/metacity/general/audible_bell
を false
に設定します:
$ gconftool-2 -s -t string /apps/metacity/general/audible_bell false
GTK+
.gtkrc-2.0 と $XDG_CONFIG_HOME/gtk-3.0/settings.ini の [Settings] セクションに次の行を追加します:
gtk-error-bell = 0
参照
- 詳しい情報はそれぞれの
man
ページを見て下さい:xset(1)
,setterm(1)
,readline(3)
. - カーネルモジュール