fix(framework): prevent sound issue of external mic detected for headphones

This commit is contained in:
Pierre Martin
2026-04-17 10:36:27 +02:00
parent ef7c8b56c4
commit b3dcede94b

View File

@@ -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;