Files
dotfiles/home/.zshrc
T

71 lines
2.2 KiB
Bash

# Oh My Zsh
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="agnoster"
plugins=(git docker python pip uv vscode command-not-found zsh-autosuggestions zsh-syntax-highlighting)
source "$ZSH/oh-my-zsh.sh"
# User PATH
export PATH="$HOME/.local/bin:$PATH"
export EDITOR="${EDITOR:-nano}"
export MPLBACKEND="${MPLBACKEND:-Agg}"
# Source LiteLLM model presets if dotfiles delivered them
[ -f "$HOME/.config/models.env" ] && source "$HOME/.config/models.env"
# Aliases
alias ll='ls -lah --color=auto'
alias g='git'
alias gs='git status -sb'
alias gd='git diff'
alias gco='git checkout'
alias uvr='uv run'
alias uvs='uv sync'
# Model-switch aliases for aider (override per-call)
alias aider-code='AIDER_MODEL=$MODEL_CODE aider'
alias aider-big='AIDER_MODEL=$MODEL_BIG_CODE aider'
alias aider-reason='AIDER_MODEL=$MODEL_REASON aider'
alias aider-fast='AIDER_MODEL=$MODEL_FAST aider'
mkproj() {
local name="$1"
[ -z "$name" ] && echo 'usage: mkproj <name>' && return 1
local dir="$HOME/work/$name"
mkdir -p "$dir" && cd "$dir" || return 1
uv init --no-readme >/dev/null
# tag pyproject with workspace + owner from Coder env (when present)
if [ -n "${CODER_WORKSPACE_NAME:-}" ]; then
cat >> pyproject.toml <<TOMLEND
[tool.coder]
workspace = "$CODER_WORKSPACE_NAME"
owner = "$CODER_WORKSPACE_OWNER"
owner_email = "$CODER_WORKSPACE_OWNER_EMAIL"
TOMLEND
fi
# Python .gitignore
cp -n "$HOME/.config/templates/python.gitignore" .gitignore 2>/dev/null
# Dev tooling + pre-commit
uv add --dev pytest ruff ty pre-commit >/dev/null 2>&1 || true
cp -n "$HOME/.config/templates/.pre-commit-config.yaml" . 2>/dev/null
uv run pre-commit install >/dev/null 2>&1 || true
# First commit
git init -q -b main
git add . && git commit -q -m "chore: scaffold $name (mkproj)" || true
echo "$name ready at $dir"
}
# Docker — detach from a running attach with Ctrl+P, Ctrl+Q
alias dps='docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"'
alias da='docker attach'
alias dl='docker logs -f --tail=200'
alias de='docker exec -it'
# Claude Code — sensible permission allowlist lives in ~/.claude/settings.json;
# add --dangerously-skip-permissions per-call when you want full trust.