my dotfiles for *nix systems
This repo contains the dotfiles I (Jacob) use on *nix machines, as well as an install.sh script for setup.
Project principles:
- The repo contains dotfiles, not code; only the
Makefile
is executable. As a consequence, the project should be compatible with arbitrary *nix systems (tested on Ubuntu 18+). - The dotfiles are kept minimal, including only commands I think our necessary and relying on the software's presets as much as possible.
Implementation details:
- The install script adds symlinks to a target directory (
~
by default).
GNU Stow for symlinking dotfiles
- Mac OS:
brew install stow
- Debian:
sudo apt install stow
Make for executing commands from the makefile
- Mac OS:
brew install make
- Debian:
sudo apt install make
- clone the repo to gain access to the dotfiles
- To clear pre-existing dotfiles, run
make clear-dotfiles
. The dotfiles will be placed into areplaced_dotfiles
folder; you can continue using them by adding them to the dotfiles repo. - run
make symlink-dotfiles
to symlink files to target directory (~
by default). This will adopt any dotfiles in the target directory!
To uninstall, run make unlink-dotfiles
(or manually delete the symlinks)
- Run the following git commands to install package dependencies:
git submodule init
git submodule update
- Package managers (vundle and tpm) are used for Vim and tmux (respectively). The package managers are pre-installed via submodules, which are instantiated (cloned from their home repos) via the above
git
commands. From there, the plugin manager functionality suffices to install plugins:- run
:PluginInstall
from Vim orvim +PluginInstall +qall
from command line - For tmux, use
prefix + I
to install dependencies
- run
- The
.bashrc
(and.zshrc
) runs asecrets.sh
script loading sensitive environment variables (API keys).