Personal dotfiles for setting up a familiar shell, editor, Git, tmux, and macOS/Ubuntu development environment. The Makefile symlinks tracked configuration files into the home directory so a new machine can be brought up quickly.
- make
- git
- curl
- zsh
- (neo)vim
Clone this repository and run the Makefile from the repository root.
git clone https://github.com/Fumire/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
makeThe default make target installs the core shell and Vim configuration:
- Symlinks
zsh/zshenvto~/.zshenv - Symlinks
zsh/zshrcto~/.zshrc - Symlinks
zsh/alias.zshto~/.alias.zsh - Installs oh-my-zsh if
~/.oh-my-zshis missing - Installs the
zsh-syntax-highlightingoh-my-zsh plugin - Symlinks local oh-my-zsh themes into
~/.oh-my-zsh/themes - Symlinks
vim/vimrcto~/.vimrc
The installer uses symbolic links, so changes in this repository are reflected in your home directory. When a target file already exists and is not a symlink, the Makefiles back it up with a .bak.YYYYmmddHHMMSS suffix before linking.
Install additional configuration targets as needed:
make tmux_run
make git_run
make gnupg_run
make -C ssh "$HOME/.ssh/config"
make -C ssh decrypt_key
make -C nvim
make -C vim
make -C zshThese commands install the following files:
make tmux_run: symlinks~/.tmux.confand~/.tmux.conf.localmake git_run: symlinks~/.gitconfigand~/.gitignore_globalmake gnupg_run: symlinks GnuPG config files and restartsgpg-agentmake -C ssh "$HOME/.ssh/config": symlinksssh/configto~/.ssh/configmake -C ssh decrypt_key: decrypts~/Documents/PrivateKeys/id_ed25519.ascto~/.ssh/id_ed25519, falling back toid_rsa.ascmake -C nvim: symlinks Neovim config files under~/.config/nvimmake -C vim: symlinks Vim-related tooling config such as YAPF and TabNine filesmake -C zsh: symlinks~/.zlogout
On macOS, install Homebrew first if it is not already available, then run:
make mac_runThis runs brew bundle with mac/Brewfile.free to install the free Homebrew packages listed there. The macOS CI workflow checks the latest macOS environment:
On Ubuntu, install the required packages first, then run the default target:
makeThe Ubuntu CI workflow checks the latest Ubuntu environment: