121 lines
3.0 KiB
Nix
121 lines
3.0 KiB
Nix
# 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;
|
|
}
|
|
|