68

When running 'Bash on Ubuntu on Windows' it often generates the Windows notification sound while typing. Common causes are when:

  • I use auto-complete for commands (tab) and there are multiple command options,
  • or when I backspace an already empty command line.

How do I disable these sound effects?

7 Answers 7

100

The answer given by Wouter works better overall once set up, but it can be slightly confusing to get working as the correct option doesn't always appear. Follow these steps:

  • Right click the volume control in the Windows taskbar
  • Open the Volume Mixer
  • Open the Bash on Windows console
  • Do something to trigger the console making the notification sound (e.g. press backspace on an empty line). If you've disabled the notification using the alternative method below, you'll have to undo it.
  • Now a Console Window Host option should have appeared in the Volume Mixer (you might have to scroll right)
  • Mute its sound setting

Volume mixer with Console Window Hos

Previous/alternative method

You can simply run the following command from within your Windows Bash shell [source]:

echo "set bell-style none" >> ~/.inputrc

or else edit .inputrc manually with a text-editor to add set bell-style none on it's own line.

You'll need to restart your currently open bash shell before it takes affect.

This will only work for your current user, and won't help if you ssh into other accounts (unless you run that command again for each account).

5
  • 3
    What's the difference between putting set bell-style none in inputrc vs putting bind "set bell-style none" in .bashrc? Is one preferable to the other?
    – Jim
    Sep 5, 2016 at 21:02
  • The latter is preferable as it's a user-configured override file and won't be subject to overwrite due to updates on the distribution version.
    – AvatarKava
    Feb 19, 2017 at 7:01
  • For some reason, when I type Python and I'm in the Python shell, the beep still goes off. Is there any way to fix this setting for the Python interpreter as well?
    – Pro Q
    Jun 18, 2018 at 18:58
  • Please note that the only way to remove the insane sound delay -- that pauses and stalls the entire shell for seconds if you have a fast keyboard repeat rate and it is processing dozens of Backspaces -- is to terminate the sound from being triggered at all. Muting your speaker will not do the job. Apr 3, 2021 at 6:25
  • In mycase it is system sounds
    – Pandian Le
    Oct 13, 2021 at 9:54
20

Add this to ~/.inputrc

set bell-style none

Additionally for vi, add this to ~/.vimrc

set visualbell
set t_vb=
2
  • It only work for the server were you are, if you need to connect to multiple server, you'll have to do the same on every server...
    – frank
    Nov 7, 2018 at 19:23
  • @frank .inputrc and .vimrc are user specific, not specific to a host. Are you logging in as different user?
    – Nemo
    Nov 8, 2018 at 15:07
11

Those using Windows Terminal, simply go to settings:

enter image description here

Select the profile you want to stop the bell on:

enter image description here

Set the bell style to none:

enter image description here

Corresponding changes in the JSON settings file:

enter image description here

Worked on Windows Terminal Preview v1.7.572.0.

8

Another way is to open the Volume Mixer by right clicking on the volume control in the Windows taskbar and mute the Console.

1
  • Thank you! This was way more effective for me than the top answer. Even if you edit the local .inputrc, you'll still get beeps when you ssh into remote hosts (unless you put in the effort to propagate your .inputrc everywhere).
    – choover
    Aug 16, 2016 at 10:36
5

If you would like to just change the sound to something less annoying instead of disabling it completely, you can go to Change system sounds from Start Menu (or under Control Panel -> Hardware and Sound -> Sound) and change the Critical Stop sound to something like "Windows Default" or "Windows Ding".

Note that this will affect any other Windows program, or Windows itself, which uses the same sound effect. I'm not able to find a good list of which actions/notifications use that sound by default.

1

Tried this on Windows Terminal on PowerShell.

Go to the settings JSON file and in profiles > defaults add the line

"bellStyle": "none"

Save settings and restart the terminal.

Source: https://onelharrison.medium.com/how-to-mute-the-windows-terminal-bell-fee86af19ddb

2
  • Please note that links can break, so it is preferable if you include some content from the link.
    – Phoenix
    Sep 27, 2021 at 23:25
  • 1
    Thanks for the tip, but I already included the relevant content from the link...not sure what you meant here.
    – vyb
    Sep 29, 2021 at 18:40
1

I'm using Git Bash (mintty) and the above solutions didn't work for me. Of course, it refers specific to WSL (Windows Subsystem for Linux), but many of you may come over this question when using Git Bash (not sure if applies to cygwin or other bash linux emulators).

I was able to fix it by:

  • Right+click on the Git Bash title bar -> Options
  • In the left menu go to Terminal
  • In the details window, under the Bell Group Option, instead of Default Beep* -> Select no beep
  • Apply

You can test by trying to do a tab-tab for a command or anything that previously was triggering the Bell.

Note: Will provide screenshots soon.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.