summaryrefslogtreecommitdiffstats
path: root/lenovo/thinkpad/t490/default.nix
blob: e795aa7cc43451a5e14e26a87dba34c9836c65cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{ nixos, pkgs, config, stdenv, ... }:
{
  imports = [
    ../../../common/cpu/intel
    ../../../common/pc/laptop/acpi_call.nix
    ../../../common/pc/laptop/cpu-throttling-bug.nix
    ../.
  ];

  services = {
    # This fixes the pulseaudio profiles of the Thinkpad T490.
    # The laptop contains a single audio card with 5 sub-devices. Default pulseaudio only offers a single sink
    # which can only be switched between speaker/HDMI via a manual profile change.
    # This configures a profile set for pulseaudio which offers multiple sinks corresponding to the
    # speaker + 4 HDMI ports. This allows the user to play audio streams on the speaker and any of the 4 HDMI/USB-C
    # ports at the same time.
    udev.extraRules = let
      t490ProfileSet = ./t490-profile-set.conf;
    in ''
    SUBSYSTEM!="sound", GOTO="pulseaudio_end"
    ACTION!="change", GOTO="pulseaudio_end"
    KERNEL!="card*", GOTO="pulseaudio_end"

    # Lenovo T490
    ATTRS{subsystem_vendor}=="0x17aa", ATTRS{subsystem_device}=="0x2279", ENV{PULSE_PROFILE_SET}="${t490ProfileSet}"

    LABEL="pulseaudio_end"
    '';
  };
}