- Clone this repo to location ~/code/dotfiles
- Install essential dependencies:
- homebrew
- Install all packages with
brew bundle
. Check the section below for install details.
- Configure git, see git setup instructions
- Link files using the install command
- Install current font - see font install instructions and setup guide
- Install Starship shell prompt
- Install tpm - Tmux Plugin Manager
- Install common tools:
- Install Scala-CLI
- Run Brew
- In command line ensure that the working directory is the base of this project
- Run command
brew bundle install --file=./Brewfile
- In command line ensure that the working directory is the base of this project
- Run command
Ensure there is a .config
folder
stow -t ~ -v home
stow -t ~/.config -v config
- Install git:
brew install git
- Create a local
.gitconfig
file and add the username, email, and ... ssh for signing - Configure git by adding the following line to the
.gitconfig
[include]
path = ~/.gitconfig_extension
- For folder specific / project specific git config, create a different config file
.gitconfig_${folder_name}
and link to that for that folder in.gitconfig
. For example to use a different user details for signing commits in folder~/code/foo
then add the following
// .gitconfig
[includeIf "gitdir:code/foo/"]
path = .gitconfig_foo
// .gitconfig_foo
[user]
name = <Name>
email = <Email>
signingKey = <SigningKey>
- Add the following line to the
.zshrc
. ~/.zshrc_extension
- Install font:
brew install --cask ???
- Change font for each profile to use installed font
- Configure font in VSCode
- Change font familty:
"editor.fontFamily": "'FiraCode Nerd Font Mono', Menlo, Monaco, 'Courier New', monospace"
- Enable ligatures:
"editor.fontLigatures": true
- Change font familty:
See Nerd Fonts for more options.
- Install using SDKMAN
- Follow instructions for shell completions
- In command line ensure that the working directory is the base of this project
- Uninstall command:
stow -t ~ -v -D home
stow -t ~/.config -v -D config
The aim of the folder structure adopted here is to make a modular folder structure.
For example, if the .shell_conf
file is removed the .zshrc
should still load.
- Instead of
.zshrc
I have a.zshrc_extension
. This is so that the .zshrc that oh-my-zsh creates can source the.zshrc_extension
- Using Vim-Plug to manage plugins
Install using
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- Make linking configs to local config files a script
- Make unlinking configs to local config files a script