Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way of muting sound from my computer everytime I unplug my headphones (Like a phone does) to stop sound then playing out of my speakers?

share|improve this question
Related Link:… – con-f-use May 8 '12 at 13:10
up vote 6 down vote accepted

Howto detect an unplug

Basically what worked for me was:

# When plugged in:
cat /proc/asound/card0/codec#0 > pluggedin.txt

# When not plugged in:
cat /proc/asound/card0/codec#0 > notplugged.txt

# Then compare the differences
diff pluggedin.txt notplugged.txt

For me the difference was in 'Node 0x16' under 'Amp-Out vals':

Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out             Node 0x16 [PinComplex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1         Amp-Out caps:ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]                                    |    Amp-Out vals:  [0x00 0x00]

So I based the detection on the difference found.

Howto mute

With this knowledge you can have a script running in the background. If unplugged the scripts mutes your speakers like using amixer sset Master playback 0% (or any other command).

# This scripts detecs unplugging headphones.

oldstatus="unrelated string"
while [ 1 ]; do
    # The following line has to be changed depending on the difference (use diff) in '/proc/asound/card0/code#0'
    status=$(grep -A 4 'Node 0x16' '/proc/asound/card0/codec#0' |  grep 'Amp-Out vals:  \[0x80 0x80\]')
    if [ "$status" != "$oldstatus" ]; then
        if [ -n "$status" ]; then
            echo "Plugged in"
             amixer sset Master playback 80% # Set volume to 80%
            echo "Unplugged"
            amixer sset Master playback 0%  # Mute

You can make it executable with chmod +x and put it in the startup applications. You will have to adjust the unplug detection though by finding your own difference in /proc/asound/card0/codec#0 (maybe even change the numbers here for multiple soundcards.

Related Links:

How to automatically change volume level when un-/plugging headphones?

share|improve this answer
This works perfectly on Mint 17.3. Thanks! – Briscoooe Dec 31 '15 at 12:03

This worked for me on Ubuntu 14.04:

"with the headphones out mute it. Insert headphones and raise volume. Remove headphones and check for mute."

Credit: RevDrStrangelove on

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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