163 lines
4.2 KiB
Nix
Executable File
163 lines
4.2 KiB
Nix
Executable File
{
|
|
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
|
|
'';
|
|
};
|
|
}
|