Esta informação está disponível /proc/asound/card0/codec#0
e depende do hardware. Para o meu computador, está na seção que captura essas informações:
Fone de ouvido conectado:
[...]
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
Control: name="Speaker Phantom Jack", index=0, device=0
Pincap 0x00000014: OUT Detect
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
[...]
Fone de ouvido desconectado (consulte Pin-ctls
):
[...]
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
Control: name="Speaker Phantom Jack", index=0, device=0
Pincap 0x00000014: OUT Detect
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
[...]
Você pode usar o inotify para verificar se o arquivo foi modificado e grep as informações.
Veja também https://askubuntu.com/questions/133809/mute-sound-on-headphone-unplug .