A collection of dotfiles and configuration files used on my desktop/laptops.
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.


My dotfiles

This repository contains a great deal of my dotfiles and configurations. This repo is used to:

  • Sync configurations between my machines.
  • Keep a backup of my configurations.
  • Keep old revisions of my configurations.
  • Quickly configure new machines (after installing a certain list of packages, syncing this repo should have a new desktop just I like it).

I decided to make these public, for three reasons:

  • Some of the applications I use have few examples. Google will surely point users seeking more here.
  • To share yet another "perfect mutt setup", which uses mutt+offlineimap+notmuch+opensmtpd.
  • The quickly share config files with friends who are curious on how I achieved something.

I use homesick to keep this repository in sync with my actual dotfiles using symlinks.

Feel free to reuse these files as you see fit. I don't think most they even qualify as "software" for them to actually require a license, if you think they do, feel free to reuse them under the terms of the BSD license.


Mutt + offlineimap + notmuch + opensmtpd + vdirsyncer.

I use mutt-kz for viewing and composing email, which offlineimap syncs locally. Notmuch indexes emails for faster searches, and opensmtpd relays outgoing emails, algo keeping them in queue if I'm offline and auto-delivering when I re-gain internet connection.

The entire setup provides very fast access to my entire mailbox - even offline, while keeping everything synced as much as possible.

Finally, vdirsyncer syncs contact data from my CardDav server, and I use a glue script to access them when composing from mutt.


I use systemd to manage my X or Wayland sessions. It starts various applications (eg: window manager, offlineimap, sxhkd, caffeine-ng), monitors them, and restarts them in case of failure.

My WM of choice is i3, and I use it along with i3pystatus to keep some useful data on my statusbar (along with a view of all my active desktops).

I use sxhkd for global keybindings. I've chosen it due to it's simple configuration syntax, simplicity, and lightweightness. I prefer not to use my WM for global keybindings, since using something like sxhkd allows me to swich WM easier if I choose to do so.


You should run :PlugInstall to install all vim plugins. Some additional utilities are required in your $PATH, like flake8 for python, etc.

Manual commands

The following commands should be run manually after symlinking:

echo -e ':PlugInstall\n' | nvim
chsh -s $(which zsh)

Copyright (c) 2012-2017, Hugo Osvaldo Barrera <hugo@barrera.io>