「PC スピーカー」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎インストール: 記事を差し替え)
(→‎Beep: 記事を差し替え)
86行目: 86行目:
   
 
== Beep ==
 
== Beep ==
  +
Beep は PC スピーカーのビープ音を鳴らす高度なプログラムです。サウンドカードやスピーカーが利用できない環境で音声による通知を使いたい場合に有用です。
 
  +
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.
   
 
=== インストール ===
 
=== インストール ===
96行目: 99行目:
 
=== root 以外のユーザーによる使用 ===
 
=== root 以外のユーザーによる使用 ===
   
デフォルトでは {{ic|beep}} は root からしか実行することができません。通常ユーザーは [[sudo]] を使って呼び出すことができます。{{ic|users}} グループのユーザーがパスワードを入力しなくても {{ic|sudo beep}} を (スクリプトなどで) 使えるようにするには、{{ic|/etc/sudoers}} を[[Sudo#visudo を使う|編集]]してください:
 
   
  +
{{ic|beep}} uses {{ic|/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 {{ic|/etc/udev/rules.d/70-pcspkr-beep.rules}} and add the following rule:
%users ALL=(ALL) NOPASSWD: /usr/bin/beep
 
  +
  +
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. {{ic|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"
username ALL=(ALL) NOPASSWD: /usr/bin/beep
 
   
  +
With that solution any user in the {{ic|beep}} group will be able to control the speaker.
{{ic|/usr/bin/beep}} にスティッキービットを設定するという方法もあります:
 
   
  +
To force reloading rules and device file to apply new user permission without a reboot, execute:
# chmod 4755 /usr/bin/beep
 
   
  +
$ udevadm control --reload && rmmod pcspkr && modprobe pcspkr
ただし、上記の設定では誰でも {{ic|/usr/bin/beep}} を root 権限で実行できるようになってしまいます。また、{{ic|pacman -Qkk}} でローカルコピーとパッケージに差異があると表示されるようになります。
 
   
 
=== ヒントとテクニック ===
 
=== ヒントとテクニック ===

2022年1月24日 (月) 09:48時点における版

関連記事

こちらの思惑とは関係なく、コンピュータはいろいろな場面でビープ音を頻繁に鳴らします。設定によって、ビープ音を鳴らすか、鳴らすならいつ鳴らすかを設定することができます。サウンドカードやスピーカーが使えない場合にシンプルな音声通知を使用したい場合は #Beep を見てください。

コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。

ノート: ビープ音は BIOS (Basic Input/Output System) や、OS (オペレーティングシステム)、DE (デスクトップ環境) など様々なプログラムから生じます。BIOS の場合は特に扱いが難しくなります。BIOS はマザボードの EPROM チップの中にあるので、ユーザーが BIOS に対して直接行える操作はオンオフだけだからです。BIOS のセットアップに望む設定があるか、チップをリプログラムしない限り、BIOS の設定を変えることは全く出来ません。BIOS によるビープ音はここでは触れませんが、あなたのコンピュータのケーススピーカーを抜いてしまえば音はしないでしょう(自己責任で行なって下さい)。

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#チャンネルのミュートを解除するを見てください。

ヒント: PulseAudio を使っていてデフォルトの ALSA デバイスで PC スピーカーのチャンネルが表示されない場合、サウンドカードに対応するデバイスを選択してください。PulseAudio のプロキシコントロールは PC スピーカーを表示しません。

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.

インストール

Install the beep package.

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

参照