mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: {
 | 
						|
  imports = [
 | 
						|
    ../.
 | 
						|
    ../../../common/gpu/intel/kaby-lake
 | 
						|
    ../../../common/gpu/intel
 | 
						|
    ../../../common/hidpi.nix
 | 
						|
    ../../../common/pc/laptop/ssd
 | 
						|
    ../../../common/pc/laptop/acpi_call.nix
 | 
						|
  ];
 | 
						|
 | 
						|
  # Make the keyboard work in stage1, enable iommu
 | 
						|
  # https://www.kernelconfig.io/config_keyboard_applespi
 | 
						|
 | 
						|
  boot = {
 | 
						|
    initrd.kernelModules = ["applespi" "spi_pxa2xx_platform" "intel_lpss_pci" "applesmc" ];
 | 
						|
    kernelParams = [ "intel_iommu=on" ];
 | 
						|
    kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.0") pkgs.linuxPackages_latest;
 | 
						|
  };
 | 
						|
 | 
						|
  # Touchpad quirks to make "disable-while-typing" actually work
 | 
						|
  services.libinput.enable = true;
 | 
						|
  environment.etc."libinput/local-overrides.quirks".text = ''
 | 
						|
    [MacBook(Pro) SPI Touchpads]
 | 
						|
    MatchName=*Apple SPI Touchpad*
 | 
						|
    ModelAppleTouchpad=1
 | 
						|
    AttrTouchSizeRange=200:150
 | 
						|
    AttrPalmSizeThreshold=1100
 | 
						|
 | 
						|
    [MacBook(Pro) SPI Keyboards]
 | 
						|
    MatchName=*Apple SPI Keyboard*
 | 
						|
    AttrKeyboardIntegration=internal
 | 
						|
 | 
						|
    [MacBookPro Touchbar]
 | 
						|
    MatchBus=usb
 | 
						|
    MatchVendor=0x05AC
 | 
						|
    MatchProduct=0x8600
 | 
						|
    AttrKeyboardIntegration=internal
 | 
						|
  '';
 | 
						|
 | 
						|
  # Wifi, CPU Microcode FW updates 
 | 
						|
  networking.enableB43Firmware = lib.mkDefault true;
 | 
						|
  hardware = { 
 | 
						|
    enableRedistributableFirmware = lib.mkDefault true;
 | 
						|
    cpu.intel.updateMicrocode = lib.mkDefault true;
 | 
						|
  };
 | 
						|
 | 
						|
  # [Enable only if needed!]
 | 
						|
  # Disable d3cold on older NVME controller, only if needed
 | 
						|
  # https://github.com/Dunedan/mbp-2016-linux
 | 
						|
  #
 | 
						|
  #systemd.services.disable-nvme-d3cold = {
 | 
						|
  #  description = "Disables d3cold on the NVME controller";
 | 
						|
  #  before      = [ "suspend.target" ];
 | 
						|
  #  path        = [ pkgs.bash pkgs.coreutils ];
 | 
						|
  #  serviceConfig.Type = "oneshot";
 | 
						|
  #  serviceConfig.ExecStart = "${./disable-nvme-d3cold.sh}";
 | 
						|
  #  serviceConfig.TimeoutSec = 0;
 | 
						|
  #  wantedBy = [ "multi-user.target" "suspend.target" ];
 | 
						|
  #};
 | 
						|
}
 |