Skip to content

Repository files navigation

Development Preferences

ShellCheck

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

Layout

PathInstalls to (typical)Purpose
bash/.bash_profile~/.bash_profileBash login shell: history, git prompt, starship
bash/.bash_aliases~/.bash_aliasesand$ZSH_CUSTOM/aliases.zshAliases shared between bash and zsh
zsh/.zshrc~/.zshrcOh My Zsh, plugins, history, starship
zsh/.zshenv~/.zshenvCargo environment
git/.gitconfig~/.gitconfigGit aliases and sensible defaults
git/.gitignore_global~/.gitignore_globalGlobal gitignore (wired via core.excludesfile)
starship/starship.toml~/.config/starship.tomlStarship prompt
terminator/config~/.config/terminator/configTerminator 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)

About

These are my own preferences while doing development.

Topics

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages