{ config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ../../nixos-modules ../../nixos-modules/aarch64-emu.nix ../../nixos-modules/smartd.nix ../../nixos-modules/plymouth.nix ]; boot = { loader.systemd-boot.enable = true; loader.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; }; networking = { hostName = "smolboi"; # Define your hostname. networkmanager.enable = true; # Easiest to use and most distros use this by default. firewall.allowedTCPPorts = [ 22000 ]; }; nixpkgs.config = { allowUnfree = true; permittedInsecurePackages = [ "electron-25.9.0" "nix-2.16.2" ]; packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ winetricks ]; }; }; }; 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 = with pkgs; [ vim-full libreoffice-qt firefox syncthing chromium skanlite htop kate cifs-utils tio p7zip rar piper ]; 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 = with pkgs; [ keepassxc libsForQt5.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 = { "/persist".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ]; "/nix".options = [ "compress=lzo" "autodefrag" "discard=async" "noatime" "defaults" ]; "/steam-library".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ]; "/home".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ]; }; 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? }