I'm OK with removing the hacky code, but all the time I have a feeling that you don't realize one thing. updateWiredHeadset() is indeed responsible for setting jackbias with amixer, but it also takes care of pausing music when you pull the headphone plug out. Removing this means that Disconnect headset to pause and Reconnect headset to resume will work only for Bluetooth headsets. Aren't QProcess::startDetached("amixer", args << "on"); and its "off" counterpart the only things that really have to be removed?