{ config, pkgs, lib, ... }: with lib; let cfg = config.nomarchy.hardware; in { options.nomarchy.hardware = { isXPS = mkEnableOption "Dell XPS specific hardware fixes"; isT2Mac = mkEnableOption "Apple T2 MacBook specific hardware fixes"; isFramework = mkEnableOption "Framework laptop specific hardware fixes"; hasIPU7Camera = mkEnableOption "Intel IPU7 camera support"; }; config = mkMerge [ (mkIf cfg.isXPS { services.udev.extraRules = '' ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on" ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on" ''; systemd.services.nomarchy-haptic-touchpad = { description = "Dell XPS haptic touchpad feedback"; after = [ "systemd-udev-settle.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "simple"; ExecStart = "${config.home-manager.users.${config.services.displayManager.autoLogin.user}.home.homeDirectory}/.nix-profile/bin/nomarchy-haptic-touchpad"; Restart = "on-failure"; RestartSec = "2"; }; }; }) (mkIf cfg.isFramework { services.udev.extraRules = '' # Framework 16 QMK HID SUBSYSTEM=="usb", ATTR{idVendor}=="32ac", ATTR{idProduct}=="0012", MODE="0666", GROUP="users" ''; }) (mkIf cfg.isT2Mac { boot.kernelParams = [ "intel_iommu=on" "iommu=pt" "pcie_ports=compat" ]; boot.kernelModules = [ "apple-bce" ]; boot.extraModprobeConfig = '' options brcmfmac feature_disable=0x82000 ''; }) ]; }