{ lib, pkgs, nixpkgs-linuxeol, ... }: rec { # Identity networking.hostName = "acer"; # Define your hostname. networking.hostId = "fc9583ce"; # Hardware hardware.enableRedistributableFirmware = true; services.hardware.bolt.enable = true; hardware.bluetooth.enable = true; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Limiting number of generations to prevent ESP from filling # Using Windows' preinstalled ESP which is only 256MB boot.loader.systemd-boot.configurationLimit = 3; boot.initrd.compressor = "zstd"; boot.initrd.compressorArgs = [ "-19" "-T16" ]; # Kernel # boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.kernelPackages = pkgs.linuxKernel.packages.linux_7_0; boot.zfs.package = pkgs.zfs_2_4; # Swap swapDevices = [ { device = "/dev/disk/by-partlabel/SWAP"; } ]; # Storage fileSystems."/" = { device = "acer-ssd/root"; fsType = "zfs"; options = [ "zfsutil" ]; }; fileSystems."/nix" = { device = "acer-ssd/nix"; fsType = "zfs"; options = [ "zfsutil" ]; }; fileSystems."/var" = { device = "acer-ssd/var"; fsType = "zfs"; options = [ "zfsutil" ]; }; fileSystems."/home" = { device = "acer-ssd/home"; fsType = "zfs"; options = [ "zfsutil" ]; }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/72EF-7CD3"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; # Config modules lumpiasty = { pc = true; enablePlasma = true; intelCpu = false; amdCpu = true; noMitigations = false; enablePulseaudio = true; audioRt.enable = true; sshd = true; users.user = true; # users.drugi = true; touchPad = { enable = true; name = "PIXA3848:01 093A:3848 Touchpad"; vendorId = "2362"; productId = "14408"; disableWhileTyping = false; scrollSpeed = 0.5; naturalScroll = false; pointerSpeed = 0.2; accelerationProfile = "default"; }; laptop = true; gaming = true; enableTailscale = true; }; virtualisation.vmVariant = { virtualisation = { memorySize = 2048; cores = 2; }; }; # For dev vm stuff networking.firewall.trustedInterfaces = [ "br0" ]; # Battery driver boot.extraModulePackages = [ # Super ugly hack, for some reason it's not included in pkgs.linuxKernel.packages.linux_6_12 # Despite being in overlays, something's not working (pkgs.linuxPackages.acer-wmi-ext.override { kernel = boot.kernelPackages.kernel; }) # (pkgs.callPackage ../pkgs/ms912x/ms912x.nix { # kernel = boot.kernelPackages.kernel; # }) ]; boot.kernelModules = [ "acer-wmi-ext" ]; # Breaks sleep, not enabling for now # lumpiasty.acerUndervolt = true; boot.initrd.kernelModules = [ "amdgpu" "thunderbolt" ]; boot.kernelParams = [ # https://community.frame.work/t/attn-critical-bugs-in-amdgpu-driver-included-with-kernel-6-18-x-6-19-x/79221 "amdgpu.cwsr_enable=0" # Increase GPU memory limits "ttm.pages_limit=7864320" # 30GB in pages (30 * 1024 * 1024 * 1024 / 4096) "ttm.page_pool_size=7864320" "amdttm.pages_limit=7864320" # Include both for compatibility "amdttm.page_pool_size=7864320" ]; programs.corectrl.enable = true; hardware.amdgpu.overdrive.enable = true; fonts = { fontconfig = { enable = true; # Turn on antialiasing antialias = true; # Subpixel rendering tuned for your monitors subpixel = { rgba = "rgb"; # standard RGB stripe lcdfilter = "default"; # or "light" if you want a bit thinner glyphs }; # Hinting: helps a lot at ~90–95 DPI like your 24–25" monitors hinting = { enable = true; style = "slight"; # try "full" if you want sharper / more “pixel-snapped” autohint = false; }; }; }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.05"; # Did you read the comment? }