My personal dotfiles
Shell Batchfile VimL CSS
Latest commit dc865dc Dec 27, 2016 @skeeto Add git "host" alias.
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
_wallpaper Infinite random wallpaper loop. Jun 16, 2013
_xombrero Even more xombrero. Apr 18, 2016
bin Greatly improve um "mount most recent disk" command. Aug 31, 2016
gnupg Add pka-lookups to GPG config. Mar 25, 2015
w32bin Add some Windows batch files. Jun 7, 2016 Drop Thunar. Jun 24, 2015
_Xmodmap Try out removing capslock. Jun 5, 2013
_bash_aliases Remove deprecated --title in youtube-dl alias. Nov 1, 2016
_bash_profile Use absolute path in .bashrc sourcing. Jul 24, 2012
_bashrc Add quickuuid function to .bashrc. Sep 10, 2016
_gdbinit Use "intel" flavor in GDB disassembly. Apr 15, 2015
_gemrc Make --user-install default with gem. Dec 30, 2013
_gitconfig Add git "host" alias. Dec 27, 2016
_gntrc Add Finch .gntrc. Aug 23, 2012
_gtkrc-2.0 Add GTK theme selection. Aug 17, 2013 Add -nut to (no tabs). Aug 3, 2012
_nethackrc Fix up default directories. Jan 6, 2016
_quiltrc Debian mode for quilt. Sep 12, 2015
_quiltrc-dpkg Oops, add missing quiltrc file. Sep 12, 2015
_reportbugrc Disable signing in reportbug. Jun 14, 2016
_s3cfg.priv.gpg Add my first private dotfile. Jun 4, 2012
_screenrc Change screen escape binding. Apr 7, 2015
_vimperatorrc Update t bookmarklet. Dec 8, 2016
_vimrc Fix up default directories. Jan 6, 2016
_xombrero.conf Xombrero fullscreen with F11. Apr 18, 2016
_xsession Turn off system beep by default. Aug 5, 2013
install.bat Add some Windows batch files. Jun 7, 2016 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.