These are my dotfiles. Take anything you want, but at your own risk. It targets macOS systems.
Shout out to Lars Kappert for his excellent intro to dotfiles. Borrowed heavily from his thinking and his code.
I've organized the dotfiles into the following major categories:
.
├── README.md
├── bin
│ ├── dotfiles
│ └── tat
├── install
│ ├── .DS_Store
│ ├── bash.sh
│ ├── brew-cask.sh
│ ├── brew.sh
│ ├── gem.sh
│ └── npm.sh
├── install.sh
├── macos
│ ├── defaults.sh
│ └── dock.sh
├── remote-install.sh
├── system
│ ├── .alias
│ ├── .alias.macos
│ ├── .bash_profile
│ ├── .completion
│ ├── .env
│ ├── .function
│ ├── .function.macos
│ ├── .function_fs
│ ├── .gemrc
│ ├── .inputrc
│ ├── .nvm
│ ├── .path
│ ├── .prompt
│ ├── .rvm
│ ├── .tmux.conf
├── test
│ ├── bin.bats
│ └── function.bats
└── vim
└──.vimrc
This is the core script that coordiates all the others. The major steps it takes are:
1. Sources common function in `system/*`.
2. Updates the dotfiles from this repo on Github.
3. Creates symlinks from this repo to where bash expects it.
4. Configures vim from `vim/`.
5. Configures other package managers from `install/`.
6. Runs tests from `test`.
7. Installs any extra stuff based on local configurations found in `extra/`.
Contains additional functions:
- `dotfiles` is used to update the macos defaults and dock settings.
- `tat` attaches or creates a tmux session named the same as the current directory.
Contains git configuration files: .gitconfig
and .gitignore_global
Contains a variety of installation scripts:
- bash.sh
to install bash
- brew-cask.sh
to install macOS apps, fonts and Quick Look plugins
- brew.sh
to install a common brew packages
- gem.sh
to install ruby and other gems
- npm.sh
to install node and other node packages
Configures macOS and dock defaults with defaults.sh
and dock.sh
. Heavily inspired from Mathias Bynens.
Contain most of configuration files for bash:
- .alias*
contains abbreviations, command shortcuts, etc.
- .bash_profile
- .completion
contains completion scripts for Bash, custom dotfiles command, grunt, killall, and brew
- .env
contains all the environment variable goodies
- .function*
contains custom bash function
- .path
sets up Bash path
- .prompt
sets up Bash path prompts
Contains a few tests to verify that custom functions loaded properly
Contains vim configuration file, .vimrc
Requires brew
and node
On a sparkling fresh installation of macOS:
sudo softwareupdate -i -a
xcode-select --install
Install the dotfiles with either Git or curl:
git clone https://github.com/jeremybeasley/dotfiles.git ~/.dotfiles
source ~/.dotfiles/install.sh
$ dotfiles help
Usage: dotfiles <command>
Commands:
clean Clean up caches (brew, npm, gem, rvm)
dock Apply macOS Dock settings
edit Open dotfiles in IDE (ws) and Git GUI (stree)
help This help message
macos Apply macOS system defaults
test Run tests
update Update packages and pkg managers (OS, brew, npm, gem)