nixos-config/ayame.nix
2021-07-30 11:25:02 +02:00

129 lines
3.8 KiB
Nix

{ config, pkgs, modulesPath, lib, ... }:
let
customPkgs = import ./packages/overlay.nix;
unstable = (import ./modules/unstable.nix config);
mkPatch = name: {
name = name;
patch = ./patches/ayame/"${name}";
};
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 = false;
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 = [];
kernelPatches = [
(mkPatch 0001-mfd-arizona-Add-jack-pointer-to-struct-arizona.patch)
(mkPatch 0002-mfd-arizona-Add-MODULE_SOFTDEP-pre-arizona_ldo1.patch)
(mkPatch 0003-mfd-arizona-Add-support-for-ACPI-enumeration-of-WM51.patch)
(mkPatch 0004-mfd-arizona-Allow-building-arizona-MFD-core-as-modul.patch)
(mkPatch 0005-extcon-arizona-Fix-some-issues-when-HPDET-IRQ-fires-.patch)
(mkPatch 0006-extcon-arizona-Fix-various-races-on-driver-unbind.patch)
(mkPatch 0007-extcon-arizona-Fix-modalias.patch)
(mkPatch 0008-extcon-arizona-Fix-flags-parameter-to-the-gpiod_get-.patch)
(mkPatch 0009-extcon-arizona-Add-arizona_set_extcon_state-helper.patch)
(mkPatch 0010-extcon-arizona-Also-report-jack-state-through-snd_so.patch)
(mkPatch 0011-extcon-arizona-Use-ASoC-jack-input-device-when-avail.patch)
(mkPatch 0012-ASoC-Intel-Add-DMI-quirk-table-to-soc_intel_is_byt_c.patch)
(mkPatch 0013-ASoC-Intel-bytcr_wm5102-Add-machine-driver-for-BYT-W.patch)
(mkPatch 0014-ASoC-Intel-bytcr_wm5102-Add-jack-detect-support.patch)
{
name = "enable-wm5102";
patch = null;
extraConfig = ''
EXTCON_ARIZONA=m
MFD_WM5102=y
SND_SOC_WM5102=m
'';
}
];
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 = [
{ device = "/dev/disk/by-uuid/cf3b1e1c-c245-4452-ad49-68ac72369e77"; }
];
}