124 lines
2.9 KiB
Nix
Executable File
124 lines
2.9 KiB
Nix
Executable File
# 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;
|
|
}
|