{ config, pkgs, modulesPath, lib, ... }: let customPkgs = import ./packages/overlay.nix; unstable = (import ./modules/unstable.nix config); in { imports = [ ./generic.nix ./modules/hardware/generic.nix ./modules/hardware/bluetooth.nix ./modules/hardware/wifi.nix ./modules/hardware/video.nix ./modules/hardware/mobile.nix ./modules/fonts.nix ./modules/users/alexander.nix ./modules/programs/zsh ./modules/programs/mpv ./modules/programs/tmux ./modules/programs/firefox ./modules/programs/gnome-terminal ./modules/programs/gnome ./modules/programs/nonvm ]; nixpkgs.overlays = [ customPkgs ]; nixpkgs.config.packageOverrides = pkgs: { nur = (import ./modules/nur.nix pkgs); unstable = unstable; }; environment = { systemPackages = with pkgs; [ unstable.firmwareLinuxNonfree sof-firmware ]; }; # Disable dhcpcd as NetworkManager will do it for us networking = { interfaces.wlan0.useDHCP = false; hostName = "ayame"; }; boot = { loader = { efi.canTouchEfiVariables = true; grub = { enable = true; efiInstallAsRemovable = true; device = "nodev"; efiSupport = true; # The UEFI is pretty wonky forcei686 = true; }; }; extraModprobeConfig = ""; initrd = { availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_acpi" ]; kernelModules = [ "kvm-intel" "i915" ]; }; # This spams the console and takes up so much CPU time kernelParams = [ "modprobe.blacklist=arizona_spi" ]; kernelModules = []; extraModulePackages = []; kernelPackages = pkgs.linuxPackages_zen; }; hardware = { opengl = { extraPackages = with pkgs; [ vaapiIntel intel-media-driver ]; }; }; services = { xserver.videoDrivers = [ "modesetting" "fbdev" ]; }; systemd.services = { rfkill-workaround = { enable = true; description = "Work around rfkill having the Wifi blocked at boot"; before = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; ExecStart = "rfkill unblock all"; }; }; }; fileSystems = { "/" = { device = "/dev/disk/by-label/root"; fsType = "btrfs"; }; "/boot" = { device = "/dev/disk/by-label/boot"; fsType = "vfat"; }; }; swapDevices = [ # TODO: Replace by UUID { device = "/dev/disk/by-label/swap"; } ]; }