CygwinのBeep音を消す方法


解消法

Options > Terminal > Bell の設定を no beepにする。

optionの開き方

Optionsは下記いずれかで開けます。

  • ウインドウバーで右クリックし、メニューからOptions...を選択
  • ターミナル画面のどこかを右クリックし、メニューからOptions...を選択

環境

下記のバージョンで確認しました。

  • Windows 10 Home 1903
  • Cygwin 3.1.2-1
  • mintty 3.1.0 (x86_64-pc-cygwin)

試してダメだったこと

以下は私の環境で試して効果がなかったものの記録です。
環境によっては効果があるかもしれないので、必要に応じてご参考ください。

.inputrcに「set bell-style none」を追加する

Beep音を消したいサーバ&ユーザのホームディレクトリに.inputrcを配置し、下記1文を記載します。

~/.inputrc
set bell-style none

その後、シェルの再起動(ログアウト&ログイン)をすると上記設定が読み込まれ、Beep音が消えるとのことでした。
私の環境ではサーバによって効果があったり無かったりでした。
管理しているサーバ全てに設定が必要なので、対象が多い場合は面倒かもしれないです。

WindowsサービスであるBeepを停止する

Beep音はWindowsサービスとして動いているようです。
サービス自体を止めてしまえば、CygwinでもBeep音がならないというものです。
コマンドプロンプトを管理者権限で起動し、下記コマンドを実行てみました。

コマンドプロンプト(管理者権限)
net stop beep

が、私の環境では下記結果となり、効果がありませんでした。

コマンドプロンプト(管理者権限)
C:\WINDOWS\system32>net stop beep
Beep サービスを停止中です........
Beep サービスを停止できませんでした。

その後サービス状態も確認しましたが、止めようとはしているものの、止まってはいなかったようです。

コマンドプロンプト(管理者権限)
C:\WINDOWS\system32>sc query beep

SERVICE_NAME: beep
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

キチンと調査すれば原因がわかるかもしれないですが、あきらめました。

参考文献