Files
Nix-Vibe/home-manager/modules/zsh.nix
T

60 lines
1.4 KiB
Nix

{ pkgs, ... }:
{
# Configure Zsh
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
autocd = true;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"eza"
"vscode"
"sudo"
];
theme = "lukerandall";
};
# Use initContent to add custom Zsh configuration after Home Manager's setup
initContent = ''
# Load Gemini API Key from SOPS
if [ -f "/run/secrets/gemini-api-key" ]; then
export GOOGLE_GENERATIVE_AI_API_KEY=$(cat "/run/secrets/gemini-api-key")
export GEMINI_API_KEY="$GOOGLE_GENERATIVE_AI_API_KEY"
fi
# Load OpenCode API Key from SOPS
if [ -f "/run/secrets/opencode-api-key" ]; then
export OPENCODE_API_KEY=$(cat "/run/secrets/opencode-api-key")
fi
# Load Gitea MCP access token from SOPS (used by opencode's gitea MCP server)
if [ -f "/run/secrets/x1carbon/gitea-mcp-token" ]; then
export GITEA_ACCESS_TOKEN=$(cat "/run/secrets/x1carbon/gitea-mcp-token")
fi
# Fastfetch check
if command -v fastfetch >/dev/null 2>&1; then
fastfetch --config ${./fastfetch.json}
fi
'';
};
programs.zoxide.enable = true;
programs.eza = {
enable = true;
extraOptions = [
"-l"
"--icons"
"--git"
"-a"
];
};
}