Skip to content
My standard setup on UNIX-like systems.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.n @ 14b43bd
.npm_global @ dc7afd3
.vim @ 5c16783


My standard setup on UNIX-like systems.



The terminal emulator is WSLtty, running on Windows 10, using the Windows Subsystem for Linux + Ubuntu 16.04.2 LTS.

The font is Fira Code, which has neat programming ligatures and is already patched with powerline symbols.

The programs being run are tmux for multiplexing the various shells, neovim for editing, and bash for the shell, all set up using the configurations in this repo.


macOS-specific instructions

  1. Skip this section if you are not running macOS.
  2. Install MacPorts. Other macOS package managers work too, but I use MacPorts.
  3. Install the coreutils, tmux, and tmux-pasteboard ports: sudo port install coreutils tmux tmux-pasteboard


  1. Install Neovim.
  2. Install Python 3.
    • Your package manager may have a relevant package.
  3. Install the neovim pip package: pip3 install neovim.


  1. Clone the repo and move the files into your home directory:
    • rsync -avh ~/setup-unix ~
    • This WILL overwrite existing files; please make a backup if you care about your existing config!
  2. IMPORTANT Modify all the following files with your own name/email:
    • In .gitconfig:
      • name and email should have your own name and email.
  3. Get the submodules (this may take a while): git submodule update --init --recursive
  4. Restart your shell.

That's it!

Optional: Installing node.js dependencies

  1. Install the desired version of node.js: n <node version>
  2. Update npm: npm install -g npm
  3. Install "global" npm modules: npm_g install
  4. Restart your shell.


Some personal configuration/state is often contained in these configuration files (e.g. npm logins stored in .npmrc). To prevent yourself from accidentally adding these to the repo, try:

git update-index --assume-unchanged <path>

To start automatically checking for changes again:

git update-index --no-assume-unchanged <path>

To show all files being tracked (assume-unchanged files are marked with h, instead of the normal H):

git ls-files -v
You can’t perform that action at this time.