{ pkgs, ... }: let tex = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small latexmk; }; in { imports = [ ./hardware-configuration.nix ]; nixpkgs.config.allowUnfree = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; networking.hostName = "aspire-laptop"; networking.networkmanager.enable = true; networking.nameservers = [ "1.1.1.1" "8.8.8.8" ]; 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 pkgs.kdePackages.xdg-desktop-portal-kde ]; security.polkit.enable = true; programs.dconf.enable = true; services.openssh = { enable = true; openFirewall = true; settings = { PasswordAuthentication = true; KbdInteractiveAuthentication = false; PermitRootLogin = "no"; }; }; 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 tex zathura zathuraPkgs.zathura_pdf_mupdf ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot.configurationLimit = 20; boot.loader.efi.efiSysMountPoint="/boot/efi"; networking.firewall.enable = true; system.stateVersion = "25.11"; }