fix(framework): prevent sound issue of external mic detected for headphones
This commit is contained in:
@@ -81,6 +81,27 @@
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Fix: IDT 92HD95 codec routes capture to external mic jack when headphones
|
||||
# are plugged in, even if the jack has no mic. Force internal mic routing.
|
||||
# See Node 0x14 (Audio Selector) connection index 3 = Node 0x0e (Internal Mic).
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="change", SUBSYSTEM=="sound", KERNEL=="card0", \
|
||||
RUN+="${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x14 SET_CONNECT_SEL 3", \
|
||||
RUN+="${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x0e SET_POWER_STATE 0"
|
||||
'';
|
||||
systemd.services.fix-internal-mic = {
|
||||
description = "Force internal mic on IDT 92HD95 (Framework Laptop)";
|
||||
after = [ "sound.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.writeShellScript "fix-internal-mic" ''
|
||||
${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x14 SET_CONNECT_SEL 3
|
||||
${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x0e SET_POWER_STATE 0
|
||||
''}";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.libinput.enable = true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user