Skip to content

jcyamacho/zdotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZDOTFILES

Compact Zsh setup that wires in Antidote for plugins and Starship for the prompt. Everything is driven by a single zshrc.sh so you can drop it into any machine quickly.

Install

  1. Clone the repo (defaults to ~/.zdotfiles):

    git clone git@github.com:jcyamacho/zdotfiles.git "$HOME/.zdotfiles"
  2. Source the main file from your ~/.zshrc:

    source "${ZDOTFILES_DIR:-$HOME/.zdotfiles}/zshrc.sh"

Customizing

  • Keep the repo elsewhere by setting ZDOTFILES_DIR before sourcing.
  • Change the editor used by helper commands by exporting EDITOR.
  • Adjust where tools like Starship install by overriding CUSTOM_TOOLS_DIR.
  • Set GIT_WORKTREE_BASE to change where gwt-new creates worktrees (see git-worktree).

Plugins

Antidote reads .zsh_plugins.txt and builds a static .zsh_plugins.zsh. The default setup enables:

  • Always-on shell UX: Starship prompt, zsh-autosuggestions, syntax highlighting (F-Sy-H), and “you-should-use”.
  • Oh My Zsh helpers + curated plugins: pulls in OMZ core helpers plus plugins like git and brew.
  • Local plugin helpers: small plugins/* scripts that add install-*, update-*, uninstall-*, and *-config helpers.

Many integrations are conditional (they only activate when the underlying binary exists) to keep startup fast and avoid errors.

Installable Tools

These are the install-* helpers (run the command to install; integrations load on reload/next shell start). Tools are grouped by how useful they are for the default shell experience.

Recommended (not installed by default)

  • install-fzffzf fuzzy finder (enables fzf-tab if present)
  • install-zoxide (or install-z) – zoxide smarter cd
  • install-atuinAtuin synced, searchable history
  • install-carapaceCarapace completions
  • install-direnvdirenv + hook

Optional

  • install-batbat cat clone
  • install-bunBun runtime
  • install-claude-codeClaude Code CLI
  • install-codeVS Code
  • install-codexOpenAI Codex CLI
  • install-cursorCursor
  • install-denoDeno runtime
  • install-dockerDocker CLI
  • install-fabricFabric
  • install-flutterFlutter SDK
  • install-fnm (or install-node) – fnm + LTS activation
  • install-geminiGemini CLI
  • install-ghosttyGhostty terminal + config restore
  • install-weztermWezTerm terminal + config restore
  • install-ghGitHub CLI
  • install-goGo + golangci-lint
  • install-jqjq
  • install-lsdlsd + config/theme
  • install-misemise
  • install-ollamaOllama
  • install-opencodeOpenCode
  • install-rbenv (or install-ruby) – rbenv
  • install-rustrustup
  • install-uv (or install-python) – uv + Python tooling (python)
  • install-zedZed
  • install-zellijZellij terminal workspace
  • install-zigZig
  • install-antigravityAntigravity
  • install-fontsHomebrew font casks

Utility Plugins

Additional helper functions (no external tool required):

  • git-utilsgit-pull, git-pull-all with hook support
  • git-worktreegwt-* helpers for managing Git worktrees

Utility Functions

Shell helpers from _utils.zsh:

  • mkcd <dir> – create a directory and cd into it
  • edit <file> – open a file in $EDITOR (defaults to vim)
  • home – cd to $HOME
  • zsh-config – edit ~/.zshrc and reload
  • kill-port <port> – kill the process listening on a given port
  • cls – alias for clear
  • rmf – alias for rm -rf
  • cd.. – alias for cd ..

Gist Sync

Sync files and directories to/from private GitHub Gists. See github-cli for details on save-file-to-gist, load-file-from-gist, and related functions.

Updating

  • reload – reload the configuration.
  • update-zdotfiles – pull the latest repo changes and reload.
  • update-antidote – update Antidote and reload.
  • update-all – run all registered updaters and reload.
  • clear-all-cached-init – remove all cached tool init files (regenerate on next reload).

The updates Array

update-all iterates over the updates array and calls each registered function. Plugins register their updaters like this:

_update_mytool() {
  info "Updating mytool..."
  # update logic here
  clear-cached-init mytool  # if using cached init
}

updates+=(_update_mytool)

Use an internal _update_* function (no reload) so update-all can batch updates and reload once at the end. Tools installed via Homebrew don't need individual updaters since update-brew runs brew upgrade --greedy.

Performance

  • Benchmark before/after changes with zsh-startup-bench.
  • Use zsh-startup-profile for a quick zprof-enabled timing run.
  • Quick sanity check without launching an interactive shell: zsh -lic exit.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published