My personal dotfiles
Shell Batchfile VimL Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
_config Openbox: Use "mapped volume" when adjusting volume. Jun 19, 2016
_ssh/config.d Add LogLevel to ssh mail config. Mar 7, 2016
gnupg Add pka-lookups to GPG config. Mar 25, 2015
_bashrc Add quickuuid function to .bashrc. Sep 10, 2016
_gitconfig Add git pf alias (--ff-only). Nov 3, 2016
_quiltrc-dpkg Oops, add missing quiltrc file. Sep 12, 2015
_s3cfg.priv.gpg Add my first private dotfile. Jun 4, 2012
_vimperatorrc Update quickmark. Nov 21, 2016
install.bat Make the install script a little more portable. May 27, 2016

Personal dotfiles

This repository versions my personal dotfiles. It can be cloned to anywhere and the dotfiles installed by running I use Debian-based systems almost exclusively, so these dotfiles reflect Debian's defaults.

For convenience, I don't actually want these files hidden in the repository, so the dots are replaced with underscores.

Private (encrypted) dotfiles

Dotfiles ending in ".priv.gpg" will be decrypted before installation, with the ".priv.gpg" stripped from the name. You probably want gpg-agent running if you want to avoid entering your passphrase multiple times. Unlike the other dotfiles, these are not symlinked since there is nothing to symlink to.

I'm using keychain to start ssh-agent and gpg-agent so make sure it's installed along with the agents.

apt-get install keychain

You may have noticed, yes, I have my private PGP key in here! Dangerous?! Maybe, it's an experiment. It's got a strong passphrase on it and I've pumped up the key strengthening settings in GPG, like so,

gpg --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --s2k-mode 3 \
    --s2k-count 10000000 --edit-key <key id>

Then run passwd in the key editor. That's over 10 million rounds of SHA-512 which takes a half-second to compute on my laptop. Brute-forcing my passphrase should be completely impractical. I invite anyone to prove me wrong -- since I'd rather be wrong sooner than later.


An Openbox config is included. To use it fully, make sure you install feh (wallpapers) and compton (window transparency). I like to use lxterminal, which works properly with compton.

apt-get install openbox feh compton lxterminal

There's a .xsession file for launching Openbox, so the display manager should be told to use something like "user preference" or "system default" rather than "Openbox".

Check rc.xml for all of my fancy Openbox keyboard shortcuts. Examples,

  • W-n: launch a terminal
  • C-A-[arrow]: move focus to another desktop
  • C-S-[arrow]: move window, with focus, to another desktop
  • W-[arrow]: change focus to window in a direction
  • W-S-[arrow]: move window to an edge in a direction
  • W-A-[arrow]: grow window to nearest edge in a direction
  • W-C-[arrow]: shrink window away from an edge in a direction
  • W-l: toggle the window always-on-top

The desktop environment traditionally fills the role for a number of common activities. Since I'm using bare-bones Openbox, I have a number of independent applications for the job.

Application launching

I use dmenu to launch applications.

apt-get install dmenu
  • A-F1: use dmenu to launch an application


I'm using pmount (command line) for removable drive mounting.

apt-get install pmount

Screen locking

i3lock is used for screen locking.

apt-get install i3lock
  • C-A-l: lock the screen

Network management

A mediocre, but fully standalone, tool for network management is Wicd.

apt-get install wicd wicd-gtk wicd-curses
  • W-w: launch Wicd client


Wallpaper stuff is installed in ~/.wallpaper/. It includes a script that uses feh to change wallpapers randomly every 10 minutes. The Openbox config will start this tool automatically on login. There's also a script, which will download my wallpaper selection, hosted externally.

Any images thrown in ~/.wallpaper/ will become part of the random background rotation.

Other applications

Other configured applications include Git, indent, Pentadactyl (Firefox), quilt (for Debian patches), and s3cmd.

My Emacs config is much too complicated to be included here. It's in a separate repository.