Personal dotfiles for macOS, managed with GNU Stow.
| File / directory | Description |
|---|---|
.alacritty.toml |
Alacritty terminal with Dracula colour scheme |
.aliases |
Handy shell aliases |
.bash_profile / .bashrc / .profile |
Bash startup files |
.brew |
Homebrew formulae and casks |
.gitconfig |
Git settings (diff-so-fancy, GPG signing, …) |
.gitmessage |
Conventional Commits message template |
.gnupg/ |
GPG configuration |
.macos |
Sensible macOS defaults |
.macos_hardening |
Security-focused macOS hardening settings |
.ssh/ |
SSH client configuration |
.tmux.conf |
tmux with vi-style key bindings |
.vimrc |
Vim with Vundle plugins (fzf, ALE, airline, …) |
bin/ |
Utility scripts |
- git
- GNU Stow —
brew install stow(macOS) orapt install stow(Debian/Ubuntu)
git clone https://github.com/bdossantos/dotfiles ~/.dotfiles
cd ~/.dotfiles
make installcd ~/.dotfiles
make uninstallWhen setting up a new Mac, you may want to apply sensible defaults and security hardening:
su - admin -c "env PATH=$PATH:/usr/sbin/ bash -x $HOME/.dotfiles/.macos"
su - admin -c "env PATH=$PATH:/usr/sbin/ bash -x $HOME/.dotfiles/.macos_hardening"make run-brewchsh -s "$(brew --prefix)/bin/bash"
exec $SHELL~/.bash_profileshould be super-simple and just load~/.profileand~/.bashrc(in that order)~/.profilehas the stuff NOT specifically related to bash, such as environment variables (PATH and friends)~/.bashrchas anything you'd want at an interactive command line. Command prompt, EDITOR variable, bash aliases for my use
A few other notes:
- Anything that should be available to graphical applications OR to sh (or bash
invoked as sh) MUST be in
~/.profile ~/.bashrcmust not output anything- Anything that should be available only to login shells should go in
~/.profile - Ensure that
~/.bash_logindoes not exist.
See also https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
pre-commit is used for linting (shellcheck, YAML, trailing whitespace, …). Run the full test suite with:
make testWTFPL © Benjamin Dos Santos