{ pkgs, config, lib, ... }: let inherit (config.grimmShared) enable laptop_hardware graphical; in { config = 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 ]; kernelModules = [ "ddcci_backlight" "i2c-dev" "ec_sys" ]; }; }; options.grimmShared.laptop_hardware = { enable = lib.mkEnableOption "grimm-laptop"; }; }