Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 4.21 KB

File metadata and controls

81 lines (61 loc) · 4.21 KB

Development Preferences

ShellCheck

Personal development environment preferences (dotfiles), organised per tool.

Layout

Path Installs to (typical) Purpose
bash/.bash_profile ~/.bash_profile Bash login shell: history, git prompt, starship
bash/.bash_aliases ~/.bash_aliases and $ZSH_CUSTOM/aliases.zsh Aliases shared between bash and zsh
zsh/.zshrc ~/.zshrc Oh My Zsh, plugins, history, starship
zsh/.zshenv ~/.zshenv Cargo environment
git/.gitconfig ~/.gitconfig Git aliases and sensible defaults
git/.gitignore_global ~/.gitignore_global Global gitignore (wired via core.excludesfile)
starship/starship.toml ~/.config/starship.toml Starship prompt
terminator/config ~/.config/terminator/config Terminator terminal
lsd/config.yaml, lsd/icons.yaml ~/.config/lsd/ lsd (ls replacement)
scripts/update-git-prompt.sh — (run it, don't install it) Fetches the latest upstream git-prompt.sh

Installation

Symlink (preferred — edits in the repo apply immediately) or copy the files to the locations above. Example:

ln -s "$PWD/git/.gitconfig"        ~/.gitconfig
ln -s "$PWD/git/.gitignore_global" ~/.gitignore_global
ln -s "$PWD/zsh/.zshrc"            ~/.zshrc
ln -s "$PWD/bash/.bash_aliases"    ~/.bash_aliases
ln -s "$PWD/bash/.bash_aliases"    "$HOME/.oh-my-zsh/custom/aliases.zsh"
ln -s "$PWD/starship/starship.toml" ~/.config/starship.toml

Then set your identity locally (the committed .gitconfig ships a placeholder):

git config --global user.name  "Your Name"
git config --global user.email "you@example.com"

Note: git config --global writes through the symlink into this repo's git/.gitconfig — if you symlinked it, set your identity by hand in a separate machine-local file instead, e.g. keep ~/.gitconfig as a 3-line file that sets user.* and uses [include] path = /path/to/devpreferences/git/.gitconfig.

git-prompt.sh

~/.git-prompt.sh (used by bash/.bash_profile for __git_ps1) is not vendored in this repo — it used to be, and went stale. Install or update it with:

scripts/update-git-prompt.sh

This downloads the canonical version from git/git contrib/completion/git-prompt.sh to ~/.git-prompt.sh (override the destination with GIT_PROMPT_DEST=/path). Re-run it whenever you want to pick up upstream changes. The decision record is in docs/plans/2026-06-10-improvement-plan.md.

Quality checks

CI runs ShellCheck on the bash files and scripts/, plus a zsh -n syntax check on the zsh files (see .github/workflows/shellcheck.yml). Run locally:

shellcheck -s bash bash/.bash_aliases bash/.bash_profile
shellcheck scripts/*.sh
zsh -n zsh/.zshrc

Contributor/agent conventions live in AGENTS.md; improvement plans live in docs/plans/.

References

  • Reference article to setup a global .gitignore file
  • Reference article to setup a global .gitconfig file as well as git alias
  • The default .gitconfig file is located at ~/.gitconfig (for Unix systems; see the article above for other OSes)