# 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 # --- # WARNING: Storing secrets in plain text is a security risk. # Consider using a tool like sops-nix for production environments. home.sessionVariables = { OPENAI_API_KEY = "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"; TAVILY_API_KEY = "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"; DEEPSEEK_API_KEY = "sk-26c66e4dd5b34017bd66f7aef748c625"; }; # 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; }