# NixOS Home Manager Configuration: /results/generated_home.nix # This file declaratively manages your user environment based on the discovered .zshrc. { config, pkgs, ... }: { # Set a state version for compatibility home.stateVersion = "24.05"; programs.home-manager.enable = true; # --- # 1. ZSH SHELL & POWERLEVEL10K PROMPT # --- programs.zsh = { enable = true; enableAutosuggestions = true; enableSyntaxHighlighting = true; oh-my-zsh = { enable = true; plugins = [ "git" ]; # zsh-autosuggestions & syntax-highlighting are enabled above theme = "powerlevel10k/powerlevel10k"; }; shellAliases = { ls = "eza --icons --git"; ll = "eza -l --icons --git"; la = "eza -la --icons --git"; tree = "eza --tree"; # Note: 'batcat' from your .zshrc is typically packaged as 'bat' in NixOS cat = "bat --color=always --paging=never"; }; }; # Set Zsh as the default shell home.shell = pkgs.zsh; # Enable Powerlevel10k theme programs.powerlevel10k = { enable = true; # Your Powerlevel10k config (~/.p10k.zsh) should be linked here if you have one. # For example: home.file.".p10k.zsh".source = ./p10k.zsh; }; # --- # 2. SHELL TOOLS & INTEGRATIONS # --- programs.atuin = { enable = true; enableZshIntegration = true; }; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.zoxide = { enable = true; enableZshIntegration = true; }; programs.nvm = { enable = true; }; # --- # 3. EDITORS & TERMINAL # --- programs.neovim = { enable = true; defaultEditor = true; # Sets EDITOR and VISUAL to nvim }; programs.kitty = { enable = true; }; programs.zellij = { enable = true; }; # --- # 4. PACKAGES & LANGUAGES # --- home.packages = with pkgs; [ # Core Utilities unzip zip p7zip htop wget curl nmap minicom screen tree # Modern CLI Enhancements (from .zshrc and recon logs) eza bat lazygit yazi tealdeer navi carapace-bin # Language Toolchains rustup go nodejs python3 ]; # --- # 5. ENVIRONMENT & API KEYS # --- # SECURITY: Do NOT store secrets in git-tracked Nix files. # Use a local-only file such as: # ~/.config/environment.d/10-secrets.conf # or adopt sops-nix / agenix later. # # Example (DO NOT COMMIT): # home.sessionVariables = { # OPENAI_API_KEY = "…"; # TAVILY_API_KEY = "…"; # DEEPSEEK_API_KEY = "…"; # }; # Add custom binary paths to your environment home.sessionPath = [ # For the 'opencode' CLI tool "$HOME/.opencode/bin" ]; # --- # AI TOOLS # --- programs.gemini-cli = { enable = true; }; # --- # 6. DOTFILE MANAGEMENT # --- # This section is a placeholder for linking config files from a Git repo. # e.g., home.file.".config/nvim/init.vim".source = ./config/nvim/init.vim; }