{ pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; nixpkgs.config.allowUnfree = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; networking.hostName = "aspire-laptop"; networking.networkmanager.enable = true; time.timeZone = "Australia/Melbourne"; i18n.defaultLocale = "en_AU.UTF-8"; console.useXkbConfig = true; services.xserver.enable = true; services.xserver.xkb.layout = "au"; services.displayManager.sddm.enable = true; services.displayManager.sddm.wayland.enable = true; services.desktopManager.plasma6.enable = true; programs.hyprland.enable = true; programs.hyprland.xwayland.enable = true; xdg.portal.enable = true; xdg.portal.extraPortals = with pkgs; [ xdg-desktop-portal-hyprland xdg-desktop-portal-gtk xdg-desktop-portal-kde ]; security.polkit.enable = true; programs.dconf.enable = true; services.libinput.enable = true; services.pipewire.enable = true; services.pipewire.pulse.enable = true; services.pipewire.alsa.enable = true; services.pipewire.alsa.support32Bit = true; security.rtkit.enable = true; zramSwap.enable = true; services.tailscale.enable = true; programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; users.users.sam = { isNormalUser = true; description = "sam"; extraGroups = [ "wheel" "networkmanager" "audio" "video" ]; shell = pkgs.zsh; }; environment.systemPackages = with pkgs; [ # Browsers / editors google-chrome vscode thunderbird # KDE apps (Plasma includes Dolphin usually, but we pin it) kdePackages.dolphin # Base tools git curl wget jq # CLI tools you listed atuin zellij starship fzf ripgrep fd bat btop zoxide eza yazi tealdeer navi dua lazygit gh borgbackup # Terminal kitty # Clipboard wl-clipboard xclip # Neovim + build deps for treesitter/etc. neovim gcc gnumake unzip # Markdown / LaTeX (small) pandoc texlive.combined.scheme-small latexmk zathura zathura-pdf-mupdf ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot.configurationLimit = 20; networking.firewall.enable = true; system.stateVersion = "25.11"; }