Been a while since I posted anything here, and it's always good to have some fresh content, so I thought I'd post my latest creation PrepFS (Pre-process FS), a small utility FUSE filesystem, that enables preprocessing of files.

My main motivation behind creating this, is enabling modified .Xdefaults dependent on running window manager, or machine it is being viewed from. An Example of usage would be something like this:

~/.xinitrc

wm=`echo -e "openbox\nxmonad" | dmenu`
prepfs ~/.dotfiles/prepfs -b ~/.dotfiles/real -pp "gpp -D$wm -x \"%s\""
exec $wm

~/.dotfiles/real/.Xdefaults

#ifdef openbox
	blah*blah: blah
#else
	this*stuff: here
#endif

Then make sure ~/.Xdefaults is symlinked to ~/.dotfiles/prepfs/.Xdefaults

More information (including source) can be found here http://bbs.archlinux.org/viewtopic.php?pid=576680