{ config, pkgs, ... }: { # === System Packages === environment.systemPackages = with pkgs; [ # Core development tools pi-coding-agent qmd nodejs bun git zsh curl wget # System utilities htop neofetch ripgrep fd jq tree tmux unzip # SSH essentials openssh mosh ]; # === Shell === programs.zsh = { enable = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -la"; la = "ls -A"; l = "ls -CF"; nix-rebuild = "sudo nixos-rebuild switch --flake ~/laptop-config#laptop"; nix-clean = "sudo nix-collect-garbage -d && nix-collect-garbage -d"; vault-search = "qmd query"; pi-run = "pi"; }; ohMyZsh = { enable = true; plugins = [ "git" "node" "npm" "ssh-agent" "sudo" "history" ]; theme = "robbyrussell"; }; }; # Default to zsh users.defaultUserShell = pkgs.zsh; # === SSH === programs.ssh = { startAgent = true; extraConfig = '' Host n97-mini HostName 192.168.168.41 User sscoble ForwardAgent yes IdentityFile ~/.ssh/id_ed25519 Host n97-mini-ext HostName os.scoble.me Port 22 User sscoble ForwardAgent yes IdentityFile ~/.ssh/id_ed25519 Host forgejo HostName os.scoble.me User git IdentityFile ~/.ssh/id_ed25519 ''; }; # === Fonts (for pi TUI) === fonts.packages = with pkgs; [ nerd-fonts.jetbrains-mono nerd-fonts.fira-code ]; # === Nix Settings === nix = { settings = { experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; }; gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 30d"; }; }; # === User === users.users.sscoble = { isNormalUser = true; description = "Scott Scoble"; extraGroups = [ "networkmanager" "wheel" "docker" ]; shell = pkgs.zsh; }; # === Locale === time.timeZone = "America/Los_Angeles"; i18n.defaultLocale = "en_US.UTF-8"; # === Boot === boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; }