Skip to content

niketpathak/devpreferences

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

These are my own preferences while doing development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages