{ config, lib, pkgs, # modulesPath, ... }: let cb-ucm-conf = pkgs.alsa-ucm-conf.overrideAttrs { wttsrc = pkgs.fetchFromGitHub { owner = "WeirdTreeThing"; repo = "chromebook-ucm-conf"; rev = "b6ce2a7"; hash = "sha256-QRUKHd3RQmg1tnZU8KCW0AmDtfw/daOJ/H3XU5qWTCc="; }; postInstall = '' cp -R $wttsrc/common/* $out/share/alsa/ucm2/common cp -R $wttsrc/codecs/* $out/share/alsa/ucm2/codecs cp -R $wttsrc/platforms/* $out/share/alsa/ucm2/platforms cp -R $wttsrc/sof-rt5682 $out/share/alsa/ucm2/conf.d cp -R $wttsrc/sof-cs42l42 $out/share/alsa/ucm2/conf.d ''; }; in { hardware.graphics = { enable = true; extraPackages = with pkgs; [ intel-media-driver vaapiIntel vpl-gpu-rt ]; }; # intel ax201 wifi card firmware hardware.enableRedistributableFirmware = true; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; # physically broken touchscreen services.udev.extraRules = "ACTION==\"add|change\", KERNELS==\"input[0-9]*\", SUBSYSTEMS==\"input\", ATTRS{id/vendor}==\"27c6\", ATTRS{id/product}==\"0e84\", ENV{LIBINPUT_IGNORE_DEVICE}=\"1\""; services.keyd = { enable = true; keyboards.internal = { ids = [ "k:0001:0001" "k:18d1:5044" "k:18d1:5052" "k:0000:0000" "k:18d1:5050" "k:18d1:504c" "k:18d1:503c" "k:18d1:5030" "k:18d1:503d" "k:18d1:505b" "k:18d1:5057" "k:18d1:502b" "k:18d1:5061" ]; settings = { main = { f1 = "back"; f2 = "forward"; f3 = "refresh"; f4 = "f11"; f5 = "scale"; f6 = "brightnessdown"; f7 = "brightnessup"; f8 = "mute"; f9 = "volumedown"; f10 = "volumeup"; f13 = "printscreen"; back = "back"; forward = "forward"; refresh = "refresh"; zoom = "f11"; scale = "scale"; brightnessdown = "brightnessdown"; brightnessup = "brightnessup"; mute = "mute"; volumedown = "volumedown"; volumeup = "volumeup"; sleep = "coffee"; a = "lettermod(alt, a, 200, 150)"; s = "lettermod(meta, s, 200, 150)"; d = "lettermod(control, d, 200, 150)"; f = "lettermod(shift, f, 200, 150)"; j = "lettermod(shift, j, 200, 150)"; k = "lettermod(control, k, 200, 150)"; l = "lettermod(meta, l, 200, 150)"; ";" = "lettermod(alt, ;, 200, 150)"; }; meta = { f1 = "f1"; f2 = "f2"; f3 = "f3"; f4 = "f4"; f5 = "f5"; f6 = "f6"; f7 = "f7"; f8 = "f8"; f9 = "f9"; f10 = "f10"; back = "f1"; forward = "f2"; refresh = "f3"; zoom = "f4"; scale = "f5"; brightnessdown = "f6"; brightnessup = "f7"; mute = "f8"; volumedown = "f9"; volumeup = "f10"; sleep = "f12"; }; alt = { backspace = "delete"; meta = "capslock"; brightnessdown = "kbdillumdown"; brightnessup = "kbdillumup"; f6 = "kbdillumdown"; f7 = "kbdillumup"; }; control = { f5 = "print"; scale = "print"; }; controlalt = { backspace = "C-A-delete"; }; }; }; }; system.replaceDependencies.replacements = [ { original = pkgs.alsa-ucm-conf; replacement = cb-ucm-conf; } ]; services.pipewire.wireplumber.configPackages = [ (pkgs.writeTextDir "share/wireplumber/main.lua.d/51-increase-headroom.lua" '' rule = { matches = { { { "node.name", "matches", "alsa_output.*" }, }, }, apply_properties = { ["api.alsa.headroom"] = 4096, }, } table.insert(alsa_monitor.rules,rule) '') ]; boot = { extraModprobeConfig = '' options snd-intel-dspcfg dsp_driver=3 ''; }; }