Contains:
- System defaults and Dock icons setup
- Git config with aliases and Git global ignore
- Packaages and Applications and macOS Defaults
- Themes
ssh-managercommand to manage ssh config hosts and keys, including copy public keys to clipboard, transfer to server and more with autocomplete- Packages / CLI (brew, dockutil, mycli, mysql, ncdu, ios-deploy, p7zip, pacvim pgcli, postgresql, rclone, redis, tmux, trash, tree, unar, wget, wget, yarn, zsh, zsh-completions)
- Applications (android-studio, google-chrome, iina, intellij-idea, iterm2, microsoft-edge, pgadmin4, postman, pycharm, react-native-debugger, rectangle, the-unarchiver, visual-studio-code)
-
On fresh installation of MacOS:
sudo softwareupdate -i -a xcode-select --install -
Download HomeBrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" export PATH=/opt/homebrew/bin:$PATH export PATH=/opt/homebrew/sbin:$PATH -
Clone and install dotfiles:
git clone https://github.com/21stBam/dotfiles.git ~/.dotfiles cd ~/.dotfiles chmod +wx install.sh chmod -R +wx ~/dotfiles/bins ./install.shUseful focused runs:
./install.sh --dry-run ./install.sh --profile personal ./install.sh --only symlinks ./install.sh --skip macos ./install.sh --profile personal --dry-run --only symlinks,brewSafe local test for the macOS path:
./test_macos_logic.sh
$ dotfiles
→ Usage: dotfiles <command>
Commands:
help This help message
update Update packages and pkg managers (OS, brew, npm, yarn)
clean Clean up caches (brew, npm, yarn)
doctor Check dotfiles health
install Run installer; passes through installer options
symlinks Run symlinks script
brew Run brew script
macos Run MacOS defaults script
java Run java script
javascript Run javascript script
python Run python script
install/profiles/personal.env is the default place for machine bootstrap preferences that should be reusable but still personal. For example, set DOTFILES_COMPUTER_NAME there to avoid the macOS computer-name prompt on a fresh machine.
Keep secrets and machine-only overrides in ~/.local.zsh; it is sourced by .zshrc and should not be committed.
$ ssh-manager
→ Usage: ssh-manager <command>
Commands:
help This help message
list List of all SSH keys and hosts in SSH config
list-keys List of all SSH keys
list-host List of all hosts in SSH config
copy Copy public SSH key
new Generate new SSH key
host Add host to SSH config, use --key to generate new key
remove Remove host from SSH config