diff --git a/acer/chromebook/cp713-1wn/alsa-ucm-conf-cros.nix b/acer/chromebook/cp713-1wn/alsa-ucm-conf-cros.nix new file mode 100644 index 00000000..9041a4a3 --- /dev/null +++ b/acer/chromebook/cp713-1wn/alsa-ucm-conf-cros.nix @@ -0,0 +1,25 @@ +{ lib +, alsa-ucm-conf +, fetchFromGitHub +}: + +alsa-ucm-conf.overrideAttrs (oldAttrs: { + wttsrc = fetchFromGitHub { + owner = "WeirdTreeThing"; + repo = "alsa-ucm-conf-cros"; + rev = "1908a457c7f2bf8b63264fe3b1e0522ea632ac5a"; + hash = "sha256-h4qphJgXlEGMjpV4+llTaJeM3hoglmmgkXY8rOp+MAI="; + }; + + postInstall = '' + cp -rf $wttsrc/ucm2 $out/share/alsa/ + ''; + + meta = oldAttrs.meta // { + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; + }; +}) + diff --git a/acer/chromebook/cp713-1wn/default.nix b/acer/chromebook/cp713-1wn/default.nix new file mode 100644 index 00000000..41f2a078 --- /dev/null +++ b/acer/chromebook/cp713-1wn/default.nix @@ -0,0 +1,97 @@ +{ lib, pkgs, ... }: + +let + alsa-ucm-conf-cros = pkgs.callPackage ./alsa-ucm-conf-cros.nix { }; +in { + imports = [ + ../../../common/cpu/intel/kaby-lake + ../../../common/pc/laptop + ../../../common/hidpi.nix + ]; + + boot.extraModprobeConfig = '' + options snd-intel-dspcfg dsp_driver=4 + options snd-soc-avs ignore_fw_version=1 + options snd-soc-avs obsolete_card_names=1 + ''; + + boot.initrd.systemd.tpm2.enable = lib.mkDefault false; + boot.kernelParams = [ "iomem=relaxed" ]; + hardware.enableRedistributableFirmware = lib.mkDefault true; + hardware.sensor.iio.enable = lib.mkDefault true; + services = { + libinput.enable = lib.mkDefault true; + keyd.enable = lib.mkDefault true; + }; + + services.keyd = { + keyboards = { + # The name is just the name of the configuration file, it does not really matter + default = { + ids = [ "*" ]; # what goes into the [id] section, here we select all keyboards + # Everything but the ID section: + settings = { + # The main layer, if you choose to declare it in Nix + main = { + f1 = "A-left"; + f2 = "A-right"; + f3 = "refresh"; + f4 = "A-f10"; + f5 = "A-tab"; + f6 = "brightnessdown"; + f7 = "brightnessup"; + f8 = "mute"; + f9 = "volumedown"; + f10 = "volumeup"; + f13 = "coffee"; + }; + control = { + f5 = "sysrq"; + }; + alt = { + leftmeta = "capslock"; + left = "home"; + right = "end"; + up = "pageup"; + down = "pagedown"; + backspace = "delete"; + }; + }; + extraConfig = '' + # put here any extra-config, e.g. you can copy/paste here directly a configuration, just remove the ids part + ''; + }; + }; +}; + + # Optional, but makes sure that when you type the make palm rejection work with keyd + # https://github.com/rvaiya/keyd/issues/723 + environment.etc."libinput/local-overrides.quirks".text = '' + [Serial Keyboards] + MatchUdevType=keyboard + MatchName=keyd virtual keyboard + AttrKeyboardIntegration=internal + ''; + + security.tpm2.enable = lib.mkDefault false; + + environment.sessionVariables.ALSA_CONFIG_UCM2 = lib.mkDefault "${alsa-ucm-conf-cros}/share/alsa/ucm2"; + + services.pipewire.wireplumber.extraConfig."51-increase-headroom" = { + "monitor.alsa.rules" = [ + { + matches = [ + { + "node.name" = "~alsa_output.*"; + } + ]; + actions = { + "update-props" = { + "api.alsa.headroom" = 4096; + }; + }; + } + ]; +}; +} + diff --git a/flake.nix b/flake.nix index bcee0b1e..88638e44 100644 --- a/flake.nix +++ b/flake.nix @@ -46,6 +46,7 @@ in { acer-aspire-4810t = import ./acer/aspire/4810t; + acer-chromebook-cp713-1wn = import ./acer/chromebook/cp713-1wn; airis-n990 = import ./airis/n990; aoostar-r1-n100 = import ./aoostar/r1/n100; apple-imac-14-2 = import ./apple/imac/14-2;