![]() Multiple "desktop" environments, Darwin (MacOS), bspwm, kde, etc.Multiple independent hardware devices.We must cater to an installation characterized as such. Ideally we want a single repository that enables sharing configuration and installed programs across any *nix operating system that supports nix. Now, I wanted to do the same for my dotfiles. Using this ability I was able to successfully create a portable system configuration, that could be deployed using shared elements such as the Desktop Environment, to multiple computers running NixOS. NixOS allows you to define your system configuration, system users, desktop environments, bootloader, etc, using the declarative Nix language and enables atomic updates that can be reliably rolled back. It's safe to say that managing dotfiles is a tough problem and I wasn't happy with my git bare repo solution.Īfter recently getting started with and learning to love Nix/NixOS, installing NixOS on my desktop and Nix on my Darwin machine, I had a renewed interest in improving my dotfile management. This made it particularly hard to keep common configs like my Neovim config in sync across Darwin and Linux. The big issue was that I had to keep my Darwin and Arch/NixOS configuration separate because many configs needed to be tailored to the individual system. This solution served me well for a while, I could use a single repo per machine to store my dotfiles which enabled all the benefits of version control. The files used to configure tools like your shell, fish in my case, and your editor, neovim, are commonly referred to as 'dotfiles' and usually live within ~/.config/Įveryone tends to have their own unique solution to the problem throughout most of 2018 and the start of 2019 I used the git bare repo approach described in this Atlassian Doc. This post now serves as an account of how I previously managed my dotfiles with Nix.Īnyone who spends a significant amount of time in the terminal or developing applications on more than one device has come across the challenge of portable user configuration management. You can find the Elemental repo at gh:hugoreeves/elemental. Updated 2: I have now moved to a new system I'm calling Elemental. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |