TODO: insert photo preview of dotfiles
- Install [Homebrew][homebrew] (if on MacOS)
- Install zsh
- Install
rcm
- Set zsh as your login shell
- Clone dotfiles
- Sync (restart terminal session and re-sync, if errors)
- Restart terminal session
For the most up-to-date docs on how to install homebrew, visit [their homepage][homebrew]. For those too lazy to do that, here's a one-liner that'll probably work for you too.
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
For MacOS:
$ brew install zsh
For Ubuntu:
$ sudo apt-get install zsh
For Manjaro Linux:
$ pamac install zsh
For MacOS:
$ brew tap thoughtbot/formulae
$ brew install rcm
For Ubuntu:
$ sudo add-apt-repository -y ppa:martin-frost/thoughtbot-rcm
$ sudo apt-get install -y rcm
For Manjaro Linux:
$ pamac install rcm
For MacOS:
$ grep -qFe '/usr/local/bin/zsh' /etc/shells &>/dev/null || echo '/usr/local/bin/zsh' | sudo tee -a /etc/shells 1>/dev/null
$ chsh -s /usr/local/bin/zsh
For Ubuntu:
$ chsh -s "$(command -v zsh)"
For Manjaro:
$ chsh -s "$(command -v zsh)"
$ git clone https://gitlab.com/thelonelyghost/dotfiles.git ~/.dotfiles
(Or, fork and keep your fork updated).
$ env RCRC="${HOME}/.dotfiles/rcrc" rcup
After the initial installation, you can run rcup
without the one-time variable RCRC
being set (rcup
will symlink the repo's rcrc
to ~/.rcrc
for future runs of rcup
). See example.
This command will create symlinks for config files in your home directory. Setting the RCRC
environment variable tells rcup
to use standard configuration options:
- Exclude the
README.md
andLICENSE
files, which are part of thedotfiles
repository but do not need to be symlinked in. - Give precedence to personal overrides which by default are placed in
~/.dotfiles-local
- Detect if MacOS or Linux and sync platform-specific files from the relevant
tag-
directory as well
You can safely run rcup
multiple times to update:
$ rcup
You should run rcup
after running git pull
to finalize any updates, otherwise you risk subsequent shell sessions being broken if files that were previously symlinked in-place are removed by the update. Worst case scenario, no changes to the bash shell are made and you can always set /bin/bash
as your shell to recover
- Customization
- Shell (ZSH)
- Terminal (Alacritty)
- Git
- tmux
- Password Manager (KeePassXC)
- Python
- Ruby
- NodeJS
- Go
- Docker
- Project-specific sandboxing
Thank you, thoughtbot (and contributors) for initial scaffolding of dotfiles repository.
dotfiles is copyright © 2009-2020 thoughtbot and David Alexander. It is free software, and may be redistributed under the terms specified in the LICENSE
file.