Files
nixos-4screen/results/generated_home.nix
2026-02-08 13:58:05 +11:00

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;
}