# How to get my dotfiles set up for VIM, Ranger, neovim, compton, Awesome WM

This is an old post and the contents may or may not be correct anymore and links may or may not be safe.

I’ve used Linux for years, before that I used OSx but I’m firmly back on neutral ground. Earlier this year, I found the sub-culture of Linux which is “ricing” on Reddit via /r/unixporn and it really interested me how these people were sharing entire operating system themes and I decided I was going to do the same.

I knew about dotfiles, I knew what they were for but for some unknown reason… I never committed mine to a repo or re-used them across any of my platforms. I use a few different devices for different contexts.

  • I use a laptop for my daily driver
    • This runs Arch Linux, Awesome WM and very little else that isn’t totally necessary to my work-flow.
  • I use a Surface Pro 3 for work where I need a developer tool bar
    • I’m looking at you mobile browser vendors, we need to be able to debug on a device.
  • I use my phone (Android) with Termux to do pretty much everything but mostly I build my open source on this platform.

So this subreddit encouraged me to devise my own config based system and actually commit it to a repository that I can simply replicate on another system (I don’t ever stop tweaking) and maintain a history of my changes.

So, I now have a repo traditionally named dotfiles which contains everything I need to go from a base Arch or Termux session to my confortable environment very easily.

Screenshot of a minimalist Linux desktop with a few terminal windows open

What configs do I have in my dotfiles repo?

  • Awesome WM base which I then use my theme called Vex.
  • Neovim, I use Neovim nightly because it has floating window support.
    • Defx for the file browser, very fast, very configurable and very easy to use.
    • Vista for ctag based symbol navigation within a file.
    • Coc for all my language server needs
    • Fugititve for Git integration (although I probably only use it half the time)
    • My custom configs and mappings.
    • fzf and fd for fast file navigation.
  • Ranger - Terminal based file management.
    • Image and video previews in terminal
  • Termite terminal
    • Tmux config
  • Oh My ZSH config
  • Z for super fast path changing.
  • auto suggestions for zsh, syntax highlighting of your shell too.


My install script tries it’s hardest not to smash your existing config so backs everything up to a filename-YOURS next to the one it then symlinks into place. This means if you want to edit any of your dotfiles, you can just fire up nvim in ~/dotfiles.

git clone https://github.com/davemackintosh/dotfiles.git ~/dotfiles
cd ~/dotfiles
bash ./install-dotfiles.sh

For nvim there is an extra step to install all the dependencies of CoC. You also need to run

INSTALL_COC_PLUGINS="yes" nvim +source ~/.config/nvim/configs/coc.vim

Which will install the CoC Marketplace plugins I use to write React, TypeScript, Flow and associated linters and compilers.

You can of course ln -s i/want/this/dotfile to/install/here for each of the configs you actually want though.

I hope you enjoy my dotfiles :)