PC スピーカー
こちらの思惑とは関係なく、コンピュータはいろいろな場面でビープ音を頻繁に鳴らします。設定によって、ビープ音を鳴らすか、鳴らすならいつ鳴らすかを設定することができます。サウンドカードやスピーカーが使えない場合にシンプルな音声通知を使用したい場合は #Beep を見てください。
コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。
目次
PC スピーカーの無効化
音声自体をオフにしないで、特定のサウンドだけをオフにするには、そのサウンドが使用している環境のどの部分から生まれているのか認識する必要があります。カスタマイズできるサウンドの選択範囲はいろいろあるため、他のユーザーにとっても有益であるような設定の組み合わせ例を見つけた時はこの wiki ページに追加していただけると幸いです。
グローバル
PC スピーカーは pcspkr
モジュールをアンロードすることで無効化できます:
# rmmod pcspkr
起動時から無効にするには pcspkr
モジュールをブラックリスト入りさせて udev にロードさせないようにします:
# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
カーネルコマンドラインを使ってブラックリストに入れることも可能です。ブートローダーの kernel 行に modprobe.blacklist=pcspkr
を追加するだけです。
コンソール
以下のコマンドを /etc/profile
や /etc/profile.d/disable-beep.sh
のようなファイル(実行可能にする必要があります)に加えてください:
setterm -blength 0
/etc/inputrc
や ~/.inputrc
に以下の行を加える、もしくはアンコメントする方法もあります:
set bell-style none
Less ページャ
less ページャを less -q
で起動することで最終行イベントのビープ音を無効化できます。less -Q
で全てのイベントのビープ音を無効化できます。man ページで PC スピーカーを無効にしたいときは man -P "less -Q"
を使用するか $MANPAGER
または $PAGER
環境変数を設定してください。
~/.bashrc
に以下の行を追加することでも設定できます:
alias less='less -Q' alias man 'man -P "less -Q"'
Xorg
$ xset -b
/etc/xprofile
などのスタートアップファイルにこのコマンドを加えることで、設定を永続的にすることができます。詳しくは xprofile を見てください。
ALSA
大抵のサウンドカードでは ALSA のチャンネルとして PC スピーカーが認識されます。名前は PC Speaker, PC Beep, Beep のどれかです。スピーカーをミュートにするには alsamixer または amixer を使います:
$ amixer set channel 0% mute
チャンネルのミュートを解除する方法は Advanced Linux Sound Architecture#チャンネルのミュートを解除するを見てください。
GNOME
GSettings を使用:
$ gsettings set org.gnome.desktop.wm.preferences audible-bell false
Cinnamon
Cinnamon では"水滴"サウンドが流れますが、dconf で無効に設定できます:
$ dconf write /org/cinnamon/desktop/wm/preferences/audible-bell false
GTK+
~/.gtkrc-2.0
に以下の行を追加:
gtk-error-bell = 0
同じ行を $XDG_CONFIG_HOME/gtk-3.0/settings.ini
の [Settings] セクションに追加:
[Settings] gtk-error-bell = 0
上記の設定は Gnome Developer Handbook に載っています。
Beep
A user can create a short audible tone when logged in to a virtual console. See Wikipedia:bell character#usage for the details.
Beep is an advanced PC speaker beeping program. It is useful for situations where no sound card and/or speakers are available, and simple audio notification is desired.
インストール
You may also need to unmute the PC speaker in ALSA.
root 以外のユーザーによる使用
beep
uses /dev/input/by-path/platform-pcspkr-event-spkr
to control the PC speaker. To access it as a non-root user, one has to set the proper permissions. Create /etc/udev/rules.d/70-pcspkr-beep.rules
and add the following rule:
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", TAG+="uaccess"
That will allow any user, who is logged into the currently active virtual console session, to use the PC speaker.
Alternatively, a new user group may be created (e.g. beep
) with the corresponding rule to set the right permissions on the device file:
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620"
With that solution any user in the beep
group will be able to control the speaker.
To force reloading rules and device file to apply new user permission without a reboot, execute:
$ udevadm control --reload && rmmod pcspkr && modprobe pcspkr
ヒントとテクニック
大抵の場合は伝統的なビープ音で満足するとおもいますが、音色をちょっと変えたいと思う人がいるかもしれません。以下のコマンドは少しだけ高音で短い音を2回鳴らします:
# beep -f 5000 -l 50 -r 2