A framework for configuring development environments in Linux machines.
The dotfiles project is my response for the common pattern of sharing your development configuration to other developers on GitHub.
Usually these repos consist of
bash/zsh/shell configuration files, however I took the extra step of having a repo that maintains all the tools and configurations I use on my Linux development machine. Instead of working with shell configuration files, I represent my configurations with
The way it works is pretty simple. The framework is built on top of three fundamentals:
modules, which represent an actionable unit within the framework. A module can be an alias configuration, a tool, a setup script, etc….
converters, which translate modules in different representations. There are converters that translate modules from their
jsonrepresentation to framework models, and converters that translate framework models to their
bashrepresentation (in short, the framework accepts
jsonas input, and outputs
profiles, which describe a set of modules that are loaded to the framework. The goal of profiles is to specify different configuration workspaces for their needs (e.g., you can specify the configuration of your
The framework uses converters concept as way to segregate system configuration, promoting adaptability to other systems (i.e., I could easily add support for Windows environments using a converter for Windows representation.)
Here’s a demo of the framework in action (configuring work profile on a fresh Ubuntu machine):
#projects #dotfiles #linux #workspace #development-environment #installer