These are my personal dotfiles.
curl -L andrew.cloud/dotfiles.sh | sh
These dotfiles are intended for use with zsh, oh-my-zsh, and the solarized colorscheme. The configuration uses powerline-based status bars for vim and tmux and Powerlevel10k as its zsh theme.
These dotfiles are available as a Docker image. It's the easiest way to emulate the development environment that I normally use. To spin up a new container, install Docker and run the command below.
docker run -it docker.io/liuandrewk/dotfilesYou should also make sure to have Powerline fonts available in your terminal. It'll otherwise work out of the box.
These dotfiles contain the following software dependencies:
- Linux, MacOS, or WSL
- Neovim (latest stable version)
There currently is no Windows support. However, MacOS and most flavors of Linux should work fine.
Go to the next section if you have already configured these dotfiles on your machine once, or if you are SSHing into another machine. These setup instructions only need to be done once on a local machine.
New machines require two tasks to be done which are not part of the setup script:
- Installing (and using) Powerline/FontAwesome-compatible fonts.
- Using the Solarized colorscheme.
We will be using Nerd Fonts to patch in all of our symbols. This font aggregator is nice in the sense that it collects many different glyphs from various sources. (We'll be using a lot of different symbols!)
Follow the Powerlevel10k font instructions to install the proper fonts.
p10k configureThe Text section of my iTerm settings looks like the picture below.
The Solarized colors for iTerm can be found in its
official repository.
(You won't need to download it.)
In the Colors section of your iTerm profile, use the Solarized Dark preset.
On Macs, pbcopy and pbpaste don't natively work in tmux.
Luckly there's a Homebrew formula to fix that.
brew install reattach-to-user-namespaceThe tmux configuration will do the rest for you. Note that this only applies to machines running MacOS.
If using iTerm, setting Scroll wheel sends arrow keys when in alternate screen mode. to Yes will allow trackpad scrolling while in Vim.
The setting can be found in the advanced preferences.
If using iTerm, you may want to set the option key mode to Esc+ to make it be
a meta key.
It's used for a few shortcuts, such as resizing tmux panes.
Uncheck the Brighten Bold Text option in iTerm if all bold text is gray.
Similarly to that of MacOS, you'll need to fetch modified fonts. We'll install the same font that we use for MacOS. Follow the Powerlevel10k font instructions to install the proper fonts.
To get Solarized on the Ubuntu Terminal, you will want to create a new profile. The solarized colorscheme should be a default option on most modern terminals. If it's not default, follow the instructions in gnome-terminal-colors-solarized to set the color scheme.
There are a few recommended (but optional) tools you can install to improve your shell experience in general.
delta: Delta is a diffing tool that works great with git.rg: Ripgrep is a faster alternative overag,ack, andgrep.fzf: Fzf is a highly performant fuzzy finder.fd:fdis a faster alternative to thefindcommand. It works very well when paired withfzf.exa: An improved version ofls. We use its tree feature to improve the output of<alt-c>fromfzfand directory tab completion.bat: An improved version ofcat. We use it for the file previews when running<ctrl-t>fromfzf.
You should install all of these independently of this dotfile repo. Figuring out how to install them is left as an exercise for the reader.
Installation is as simple as downloading and running the install script. The install script will run the configuration script, which fetches oh-my-zsh and symlinks the dotfiles to your home directory.
curl -L andrew.cloud/dotfiles.sh | sh
# or
wget -qO- andrew.cloud/dotfiles.sh | shAlternatively, you can manually clone the repository and run the setup.sh
script.
git clone --filter=blob:none git@github.com:MrPickles/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./setup.sh -t buildYou will also likely need to manually change your shell to zsh if you are
currently using a different shell.
chsh -s $(which zsh)You can customize zsh, vim, tmux, and git for each specific machine. Just put any additional configurations in the following files:
~/.zshrc.local~/.vimrc.local~/.tmux.conf.local
Custom git configurations can be placed in ~/.gitconfig.
The normal git config file is not put under version control, so it's safe to put
machine-specific tokens in it.
If you'd like to build the dotfiles as a Docker image locally, run the following command:
docker build -t liuandrewk/dotfiles .Then you can run it with the command below:
docker run -it liuandrewk/dotfilesNote that this will be an ephemeral instance. Make sure to mount a volume if you'd like to persist your work.
To clean up the dotfiles, run the configuration script with the clean
argument.
It will remove all symlinks, but zsh and oh-my-zsh will be untouched.
If you wish to remove those, you will have to manually delete them.
cd ~/.dotfiles
./setup.sh -t clean
rm -rf ~/.oh-my-zsh # optionally remove oh-my-zsh
chsh -s $(which bash) # optionally change shell back to bash
