{ pkgs, config, lib, ... }: let cfg = config.grimmShared; in { config = with cfg; lib.mkIf (enable && laptop_hardware.enable) { environment.systemPackages = with pkgs; [ lm_sensors lshw pciutils usbutils ddcutil python312Packages.py-cpuinfo (writeShellScriptBin "lsiommu" ./lsiommu) ] ++ lib.optionals graphical [ opentabletdriver ddcui wootility ]; hardware.i2c.enable = true; services.libinput.enable = true; hardware.opentabletdriver.enable = true; services.udisks2.enable = true; services.udev.extraRules = '' SUBSYSTEM=="i2c-dev", ACTION=="add",\ ATTR{name}=="NVIDIA i2c adapter*",\ TAG+="ddcci",\ TAG+="systemd",\ ENV{SYSTEMD_WANTS}+="ddcci@$kernel.service" ''; systemd.services."ddcci@" = { scriptArgs = "%i"; script = '' sleep 20 echo Trying to attach ddcci to $1 i=0 id=$(echo $1 | cut -d "-" -f 2) if ${pkgs.ddcutil}/bin/ddcutil getvcp 10 -b $id; then echo ddcci 0x37 > /sys/bus/i2c/devices/$1/new_device fi ''; serviceConfig.Type = "oneshot"; }; boot = { kernelParams = [ "quiet" ]; loader.efi.canTouchEfiVariables = true; initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; loader.systemd-boot.enable = true; extraModulePackages = [ (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { patches = [ (pkgs.fetchpatch { url = "https://gitlab.com/Sweenu/ddcci-driver-linux/-/commit/7f851f5fb8fbcd7b3a93aaedff90b27124e17a7e.patch"; hash = "sha256-Y1ktYaJTd9DtT/mwDqtjt/YasW9cVm0wI43wsQhl7Bg="; }) ]; })) ]; kernelModules = [ "ddcci_backlight" "i2c-dev" "ec_sys" ]; }; }; options.grimmShared.laptop_hardware = { enable = lib.mkEnableOption "grimm-laptop"; }; }