{ myModules, inputs, pkgs, ... }: { imports = [ myModules.desktop.sway myModules.desktop.greetd myModules.audio.pipewire myModules.network.networkmanager myModules.network.firewall myModules.misc.fonts ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; nixpkgs.config.allowUnfree = true; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "desktop-main"; time.timeZone = "Asia/Hong_Kong"; i18n.defaultLocale = "en_US.UTF-8"; console.keyMap = "us"; # Users (host-owned, per your decision) users.users.phill = { isNormalUser = true; extraGroups = [ "wheel" "networkmanager" "video" "input" "audio" ]; shell = pkgs.fish; }; security.sudo.wheelNeedsPassword = true; programs.fish.enable = true; my.desktop.sway = { utilities = "full"; # minimal|essentials|full x11Compatibility = true; }; my.desktop.greetd = { user = "phill"; command = "${pkgs.sway}/bin/sway"; }; my.audio.pipewire = { support32Bit = true; tools = "full"; # none|basic|full }; my.network.networkmanager = { wifiPowersave = false; useResolved = true; }; my.network.firewall = { allowPing = true; allowedTCPPorts = [ ]; trustedInterfaces = [ ]; }; my.misc.fonts.extra = with pkgs; [ nerd-fonts.fira-code nerd-fonts.hack ]; programs.steam.enable = true; programs.gamemode.enable = true; programs.thunar.enable = true; services.tumbler.enable = true; programs.neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; }; environment.systemPackages = with pkgs; [ git lazygit go firefox foot prismlauncher discord spotify wireguard-tools lua-language-server vlc gnumake fd ripgrep bat delta fzf tree-sitter gcc clang zathura texliveFull tinymist gopls opencode lsof tmux nodejs localsend luajitPackages.tiktoken_core unzip protonvpn-gui cht-sh zoxide starship filezilla typst ]; # Must match the value you originally installed with (do not change casually) system.stateVersion = "25.05"; }