{ config, lib, pkgs, inputs, outputs, username, ... }: { imports = [ ../modules/services/gpg.nix ]; nixpkgs.config.allowUnfree = true; programs.zsh.enable = true; boot.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''; }; users.users.${username} = { isNormalUser = true; extraGroups = [ "networkmanager" "wheel" ]; shell = pkgs.zsh; packages = with pkgs; [ bisq-desktop cargo cura dig element-desktop firefox freecad gcc keet libreoffice nmap rustc rustup sparrow sublime-music thunderbird timeshift tor-browser-bundle-bin transmission-gtk unison ]; }; fileSystems = { "/backup" = { device = "10.0.10.2:/volume1/system-backups"; fsType = "nfs"; }; "/movies" = { device = "10.0.10.2:/volume1/video/movies"; fsType = "nfs"; }; "/music" = { device = "10.0.10.2:/volume1/music"; fsType = "nfs"; }; "/tvshows" = { device = "10.0.10.2:/volume1/video/tvshows"; fsType = "nfs"; }; }; environment = { gnome.excludePackages = (with pkgs; [ gnome-tour ]) ++ (with pkgs.gnome; [ cheese gnome-music epiphany geary tali iagno hitori atomix ]); systemPackages = with pkgs; [ git htop lsof mullvad-vpn tree unzip vim wget zip gnome.gnome-tweaks gnomeExtensions.appindicator ]; }; time.timeZone = "America/New_York"; i18n = { defaultLocale = "en_US.utf8"; extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; }; nix = { package = pkgs.nixFlakes; settings.auto-optimise-store = true; registry.nixpkgs.flake = inputs.nixpkgs; extraOptions = '' experimental-features = nix-command flakes ''; }; networking.networkmanager.connectionConfig."connection.mdns" = 2; services = { avahi.enable = true; mullvad-vpn.enable = true; printing = { enable = true; }; pipewire = { enable = true; alsa = { enable = true; support32Bit = true; }; pulse.enable = true; }; resolved.enable = true; tor = { enable = true; client.enable = true; }; udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; xserver = { enable = true; layout = "us"; xkbVariant = ""; libinput.enable = true; desktopManager = { gnome.enable = true; xterm.enable = false; }; displayManager.gdm.enable = true; excludePackages = [ pkgs.xterm ]; }; }; security.rtkit.enable = true; fonts.packages = [ pkgs.corefonts ]; sound.enable = true; hardware.pulseaudio.enable = false; modules.gpg.enable = true; system.stateVersion = "23.05"; }