{ pkgs, ezModules, inputs, modulesPath, lib, ... }: let pkgs-unstable = import inputs.nixunstable { inherit (pkgs.stdenv) system; }; in { imports = [ "${modulesPath}/installer/scan/not-detected.nix" inputs.stylix.nixosModules.stylix inputs.impermanence.nixosModules.impermanence inputs.nixos-hardware.nixosModules.common-cpu-amd inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower inputs.nixos-hardware.nixosModules.common-gpu-amd inputs.nixos-hardware.nixosModules.common-pc inputs.nixos-hardware.nixosModules.common-pc-ssd inputs.nixos-hardware.nixosModules.gigabyte-b550 ezModules.aarch64-emu ezModules.smartd ezModules.plymouth ezModules.cosmic-modules ezModules.cosmic-packages ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; binfmt.registrations.appimage = { wrapInterpreterInShell = false; interpreter = "${pkgs.appimage-run}/bin/appimage-run"; recognitionType = "magic"; offset = 0; mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff"; magicOrExtension = "\\x7fELF....AI\\x02"; }; tmp.cleanOnBoot = true; kernelModules = [ "kvm-amd" ]; initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; }; networking = { hostName = "smolboi"; # Define your hostname. networkmanager.enable = true; # Easiest to use and most distros use this by default. firewall.allowedTCPPorts = [ 22000 ]; useDHCP = lib.mkDefault true; }; nixpkgs = { config = { allowUnfree = true; permittedInsecurePackages = [ "electron-25.9.0" ]; packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.winetricks ]; }; }; }; hostPlatform = lib.mkDefault "x86_64-linux"; }; services = { ratbagd.enable = true; displayManager = { autoLogin.user = "cdombroski"; sddm = { enable = true; autoNumlock = true; wayland.enable = true; }; }; desktopManager.plasma6.enable = true; printing = { enable = true; drivers = [ pkgs.gutenprint ]; }; avahi = { enable = true; nssmdns4 = true; nssmdns6 = true; openFirewall = true; }; printing.cups-pdf.enable = true; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; hardware.openrgb.enable = true; resolved.enable = true; btrfs.autoScrub = { enable = true; fileSystems = [ "/" "/home" ]; }; }; hardware = { sane = { enable = true; extraBackends = [ pkgs.sane-airscan ]; }; bluetooth.enable = true; }; security = { rtkit.enable = true; }; environment = { systemPackages = builtins.attrValues { inherit (pkgs) vim-full libreoffice-qt firefox syncthing chromium skanlite htop kate cifs-utils tio p7zip rar piper element-desktop discord openrgb-with-all-plugins keepassxc heroic r2modman mangohud hack-font jellyfin-media-player konversation nixd yakuake mgba vlc dolphin-emu-primehack steamtinkerlaunch lutris knossosnet lilypond musescore protontricks protonup-qt ; inherit (pkgs-unstable.jetbrains) idea-community; } ++ [ (pkgs.retroarch.override { cores = builtins.attrValues { inherit (pkgs.libretro) beetle-psx-hw pcsx2 mesen bsnes parallel-n64 dolphin sameboy citra gpsp desmume fbneo nxengine mgba ; }; }) ]; persistence."/persist" = { hideMounts = true; directories = [ "/etc/NetworkManager/system-connections" "/var/lib/bluetooth" "/var/lib/nixos" "/var/log" "/var/lib/systemd" "/tmp" "/var/lib/cups" ]; files = [ "/etc/machine-id" "/var/lib/NetworkManager/secret_key" "/etc/adjtime" "/etc/ssh/ssh_host_rsa_key" "/etc/ssh/ssh_host_rsa_key.pub" "/etc/ssh/ssh_host_ed25519_key" "/etc/ssh/ssh_host_ed25519_key.pub" ]; }; }; programs = { gnupg.agent = { enable = true; enableSSHSupport = true; }; steam = { enable = true; remotePlay.openFirewall = true; gamescopeSession.enable = true; }; firefox.nativeMessagingHosts.packages = [ pkgs.keepassxc pkgs.kdePackages.plasma-browser-integration ]; gamemode = { enable = true; settings = { general = { reaper_freq = 5; desiredgov = "performance"; softrealtime = "auto"; }; gpu = { apply_gpu_optimisations = "accept-responsibility"; gpu_device = 0; amd_performance_level = "high"; }; }; }; gamescope.enable = true; }; zramSwap = { enable = true; writebackDevice = "/dev/disk/by-partuuid/e8f5eaf8-46ca-40de-854a-f6dfe964b92d"; }; fileSystems = { "/" = { device = "none"; fsType = "tmpfs"; options = [ "defaults" "size=2g" "mode=755" ]; }; "/persist" = { device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516"; neededForBoot = true; fsType = "btrfs"; options = [ "subvol=@nixos/root" "compress=lzo" "autodefrag" "discard=async" "defaults" ]; }; "/nix" = { device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516"; fsType = "btrfs"; options = [ "subvol=@nixos/nix" "compress=lzo" "autodefrag" "discard=async" "noatime" "defaults" ]; }; "/steam-library" = { device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516"; fsType = "btrfs"; options = [ "subvol=@steam-library" "compress=lzo" "autodefrag" "discard=async" "defaults" ]; }; "/home" = { device = "/dev/disk/by-uuid/8597952f-be42-4361-9be1-2c4af6ede9b8"; fsType = "btrfs"; options = [ "subvol=@home" "compress=lzo" "autodefrag" "discard=async" "defaults" ]; }; "/boot" = { device = "/dev/disk/by-uuid/1ADE-808D"; fsType = "vfat"; }; }; stylix = { image = "${pkgs.kdePackages.breeze}/share/wallpapers/Next/contents/images_dark/2560x1440.png"; base16Scheme = "${pkgs.base16-schemes}/share/themes/solarflare.yaml"; fonts = { serif = { package = pkgs.noto-fonts; name = "Noto Serif"; }; sansSerif = { package = pkgs.noto-fonts; name = "Noto Sans"; }; monospace = { package = pkgs.jetbrains-mono; name = "JetBrains Mono Regular"; }; }; cursor = { package = pkgs.kdePackages.breeze; name = "breeze_cursors"; size = 24; }; }; system.stateVersion = "23.11"; # Did you read the comment? }