トップページ>>>「いろいろ」目次

ブザーの鳴らないLinuxマシン(Beepオフ)

初版作成:2002/10/20

目次

  1. 前書き
  2. 本題
  3. 後書き或いは感想

前書き

 初心者の方なら一度は悩まされているか今も悩まされ続けていると思うんですが。Linuxって、(少なくともRHLとTLXS7, TLXW8の三種類のディストリビューションに関しては)インストール状態だと、 たとえばbashシェル上で変なキー(BackSpace押し続けたり)を押すと「ぴっ」ってブザーが鳴るんですよね。
 これはサウンドカード云々じゃなくて、マザーボードにくっついている電子ブザー、或いはケースにくっついているスピーカをびっびこびっびこ鳴らしているわけです。
 んで。初心者って結構エディタやらシェル上で打ち間違えをするのでその度に「ぴっぴっぴっぴっぴ・・・」。

 要するに、凄いうるさいんです。
 と言うわけで。今回のお題はずばり「ブザーの鳴らないLinuxマシンを作ろう」です。はい。
 っつっても2,3の設定ファイルを調整するだけです。んじゃ、始めましょう。
対象ディストリビューション:RedHat Linux 7.2, TurboLinux Server 7, TurboLinux Workstation 8
 これ以外のディストリビューションでも、設定ファイルの位置と設定内容さえ理解すれば問題なく、以下に示す設定例を適宜応用してブザー、Beep音のならないLinuxを手に入れられるはずです。
目次に戻る

本題


  1. シェルの静音化
  2. viの静音化
  3. rxvtの静音化
  4. Xemacs, Emacsの静音化
  5. 物理的に静音化
  6. (おまけ)lsの色分け表示、lessの静音化

シェルの静音化
「本題」に戻る
 CUIログインした状態で、変なキーを押したりすると「ぴっ」とブザーが鳴ります。何でこんな機能があるのかというと、readlineというライブラリのおかげです。
 readlineはbashシェルやbc(計算機用言語)やgdb(GNUデバッガ)何かにも利用されているライブラリで、いったい何をしているのかと言いますと。
 ・矢印キーによるコマンドライン上のカーソル移動
 ・上下矢印キーによる履歴機能
 ・Tabキーによるコマンドあるいはファイル名補完機能
 などを裏で実現してくれています。
 んで、結局readlineの機能の一つに「ビープ音を鳴らす」機能がありまして、これが初心者を苛立たせるブザー音の原因です。
 ブザー音を止めるにはreadlineの設定ファイルをいじくります。
 設定ファイルは環境変数INPUTRCに設定されているファイルで行います。
 んでー。ここでディストリビューションの差が出てきます。
 ・RedHatLinux:INPUTRCに/etc/inputrcが指定されている。
 ・Turbolinux W8:INPUTRC設定無し。ホームディレクトリの.inputrcが指定される。
 というわけでRHLの場合は/etc/inputrcを書き換えるだけで全員の設定が一息に出来ますが、TLXW8だと一人一人の$HOME/.inputrcを修正する必要があるわけです。しょうがないですが。ひょっとしたら手動で/etc/inputrcを作成して、編集すれば全体設定で適用できるのかもしれませんが未確認です。
 結局どうすればよいのかといいますと。要は、inputrcファイルに次の一行を追加します。
set bell-style visible

 以下は私の使っているTLXW8の$HOME/.inputrcです。
[fenjin@seisyuu fenjin]$ cat .inputrc
set meta-flag on
set convert-meta off
set output-meta on
set bell-style visible(これを追加するとシェル上のBeep機能オフ)
 これでログイン、或いは再起動し直せばシェル上で変なキーを押しても画面が点滅するだけです。ちょっとだけオプションの説明をしましょう。
・meta-flag:よくわかんないッス。
・convert-meta off:8ビット文字入力・表示。日本語利用時はoffを設定。
・output-meta on:8ビット文字表示用。(上は?)日本語利用時はこっちはonにする。
・input-meta on:8ビット文字入力用。日本語利用時はこっちもできればonにするらしい。
・bell-style:ビープ音を鳴らすときはaudibleに。noneとするとビープ音は鳴らない。visibleとすると、ビープ音を鳴らす代わりに画面を点滅させる。
参考資料
・「月刊リナックスワールド」2002年6月号(IDGジャパン)
・「man readline」

viの静音化
「本題」に戻る
 しかしまだまだビープ音は鳴り止まず・・・。そう。コンソール、X問わずまだ「vi」の静音化が済んでいません。(人によっては)よく使っているエディタなだけに、これがうるさいと全く、やる気がしませんよね(え?よく使っているならコマンドミスもしないからそもそもビープ音が鳴らない?・・・自爆)。
 とはいっても、実は最近のディストリビューション収録のviは標準でビープ音は鳴りません。まあ、~/.exrcとかexrcとかを眺めてみてこんな部分があれば気をつけてあげてください。
set errorbells
set noerrorbells
 set errorbellsでエラーの時ベル、つまりブザーを鳴らします。
 set noerrorbellsでブザーを鳴らす代わりに、エラーメッセージを反転表示したりして強調します。
 errorbellsオプションは基本のviからnvi,vimへと受け継がれているので、大概のディストリビューションでも通用するはずです。試しにコンソール上でvi動かして、コマンドモードで
:set errorbells
:set noerrorbells
 とかして遊んでみてください。
参考資料
・「man vim」
・「vi」金光雅夫 株式会社アスキー
・「vi デスクトップリファレンス」Arnold Robbins オライリージャパン

rxvtの静音化
「本題」に戻る
 まあ、X Window使うんであればこれは最初になすべきことですね。現在はrxvt, kterm,aterm, etermなどなど様々なX端末が利用できるようになっていますが、基本的なオプションはすべて先祖であるXTermのものを使えます。んで、Xtermにはエラーベルを鳴らすオプションがちゃんと存在します。
・-vb:Visual Bellを有効にする。具体的にはCtrl-Gが入力されたとき、ブザーを鳴らす代わりに画面を点滅させる。
・+vb:Visual Bellを無効化。Ctrl-Gがくれば、ブザーを鳴らす。
 なんだか+と-が逆のような気がしますが・・・ここは。「-がつくと普通にオプション。」「+は、-に縦にもう一本取消線が入ったから+。つまり、オプションの無効化。」と見ると違和感も・・・無いよ、ね?
 んで、結局KDEやGNOMEとかのメニューやボタンに設定されているrxvt起動コマンドラインに「-vb」オプションをくっつければ静かなX端末がゲットできるわけです。

 ちなみに、お気に入りの壁紙を透過して表示したいときなんかは「rxvt -ip」とすると壁紙透過モードになります。ただし。色によっては文字が読みにくくなることもあるので要注意!
参考資料
・「man rxvt」
・「man xterm」

Xemacs, Emacsの静音化
「本題」に戻る
 じつわ。私、まだEmacs、使いこなせてないんです(わ、恥っ)。
 だってだってだって〜〜、サーバーの設定なんてviがあれば平気だし、PHPソースコードなんてKateでやるようになっちゃったし。結局Emacs使う必要があるのは、Linuxマシン上でSJISのHTMLを編集するときぐらいだもの〜〜。
 まあそれでも、いつか使うときがあるかもしれないし、実際使うときに只でさえ慣れてないコマンド形態にそのうえベル音が「びっびっびっびっ」なるのじゃあ、たまったモンじゃあございません。
 というわけで、一応
emacs-X11-21.1-2
emacs-21.1-2
xemacs-21.4.6-2
 上で確認をとった結果、以下のオプション、じゃなかった変数を.emacsなり.emacs.elなり、直接M-x set-variableでtにすればVisualBellが有効になることが判明しました。
変数名:visible-bell
.emacsでの記述例
(setq visible-bell t);; Visual Bell有効(エラー時画面反転)
(setq visible-bell nil);; Visual Bell無効(エラー時ブザー音)
emacs or xemacs上でのその場限りの変数設定例
M-x set-variableコマンド→「visible-bell」と入力→「t」と入力。これでVisual Bell有効。「nil」と入力すればVisual Bell無効。

 ちなみに、TLXW8ではデフォルトでVisual Bellが無効になっていました。
参考資料
・「図解でおぼえるMuleの使い方」神山文雄 翔泳社

物理的に静音化
「本題」に戻る
 これは半田ごてを握る必要がでてきます。
 はい。よーするに、ケースについてるスピーカーとマザーボードを繋げる線の途中にスイッチをくっつけて外に引き出して、必要なときだけブザースピーカをon/offできるようにするわけです。
 一度やってみたことがあるんですよ。結構いい感じです。
 でも、今まで書いてきたような知識を得ると、別に良いか、ってな気持ちになって。今では元に戻してます。
 マザーボードやケースによって変わってくるので、特にやり方は書きません。電気工作をしたことのある人なら難しくありません。導線とスピーカという、そんなに敏感なものを扱うわけでもありませんし。各人はんだごてでやけどしない程度に頑張ってください。

(おまけ)lsの色分け表示、lessの静音化
「本題」に戻る
 ディストリビューションによって変わってくるとは思うのですが、lsコマンドがTLXW8のデフォルトではディレクトリとかを色分けしてくれませんでした。んで、.bashrcをのぞいてみたら以下のようになっていて。指示通りに二行分のコメントアウトを外してみたら無事色分けしてくれるようになりました。TLXW8、他にもいろいろとaliasを設定してくれているみたいです。
[fenjin@seisyuu fenjin]$ cat .bashrc
#
#        initial bashrc
#                              by GO!
#
[ "$BASH" = "" ] &&  return
# source system wide aliases
if [ -f /etc/bashrc ]; then
    source /etc/bashrc
fi
(省略)
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ..='cd ..'
alias ll='ls -l'
alias la='ls -aF'

# alias ls='ls -NF --show-control-chars'
## if you use color ls, comment out above line and uncomment below 2 lines.
LS_COLORS='no=00:(省略)*.png=01;35:' ; export LS_COLORS
alias ls='ls --color=auto -NF'

AXLANG=17       ; export AXLANG
AX_ONSPOT=1     ; export AX_ONSPOT
 他のディストリビューションでもこれと似たような設定が/etcだの$HOME/だのに転がっていると思われます。また、RHL系列では/etc/DIR_COLORSとかいうファイルにLS_COLORSが格納されていたような・・・(かなりあやふや)。
 まあ、上のをコピペするもよし、自分でカスタマイズするも良し。適当に遊んでみてください。

 後もう一つ。最後の最後に「lessの静音化」を残していました。
 以外と盲点なんですが、readlineでVisualBellを有効にしても、その上で動くlessやらviに関してはそれぞれ設定しなくては静音化できません。というわけで、viとemacsはやっつけたので最後。もっともよく利用するlessコマンドはどうすれば静音化できるのか?答えは単純。

$ less -q
 これで基本的にお仕舞いです。もうちょっと深くオプションを知りたい人は、以下の「man less」からの抜粋をどうぞ。
-q or --quiet or --silent
Causes  moderately  "quiet"  operation:  the  terminal  bell is not rung if an 
attempt is made to scroll past the end of the file or before the beginning  of 
the  file.  If the terminal has a "visual bell", it is used instead.  The bell 
will be rung on certain other errors, such as  typing  an  invalid  character. 
The default is to ring the terminal bell in all such cases.

-Q or --QUIET or --SILENT
Causes totally "quiet" operation: the terminal bell is never rung.
参考資料
・「man less」

目次に戻る

後書き或いは感想

 つ、疲れた・・・・・・。
 いや、本当に疲れた・・・・・・。
 今回あつかったトピックは、なんか不思議とまとまって扱っている類似のページがないんですよ。しかも扱う情報の目的は同じなのに、幅が広いので情報を集めるのが面倒くさかった。
 特にreadlineの設定はなかなか見あたらず、月刊リナックスワールドに載っていた部分はしっかりとポストイットを貼ってある。
 とにかく、リナックス初心者にとってこのページが少しでも役に立ってくれれば大変幸せー。なのだ。

 おちまい。
目次に戻る

トップページ>>>「いろいろ」目次