Thought I’d post this here to show a little project I’ve been working on in my spare time the last few weekends. It’s nothing particularly clever, but it might prove useful for some readers, and I’d love any feedback.
In short, it’s a PowerShell module to provide a (hopefully) simple but quite powerful framework for managing dotfiles on Windows systems. The inspiration is that Windows has traditionally been a pain to manage configurations on in a portable way due to a multitude of reasons, in stark contrast to Unix(-like) systems which typically allow for simply copying or symlinking files into the correct locations under your home directory. This module aims to abstract much of the complexity involved on Windows systems so you can easily maintain your own Windows specific dotfiles.
It handles enumerating, installing (via symlinks) and removing dotfiles configurations for distinct applications, referred to as components, and has a quite powerful metadata system to customise the installation of each component via an XML file. See sample.xml for a fully commented version and the files under metadata/ for actual examples of what’s possible. An XML file is entirely optional as we try to pick sane defaults.