In the process of moving dotfiles management to GNU Guix for reproducibility across four machines.
Top-level module path is at polterguix.
The aim is to modularize services and system configurations whenever possible. The core system module contains the shared operating system declarations, along with a minimal set of services and packages, which are inherited by the individual system modules (example). The system module adds some hardware/drive-specific configurations, then adds a home
symbol containing a home-environment
declaration.
For reconfigure
commands, a conditional checks an environment variable GUIX_TARGET
. If the value is set to system
, the system
configuration is passed to reconfigure
; likewise for home
. Meanwhile, a shell script uses the hostname
environment variable to determine which system module to use.
- [ ] Add zsh and hyper symlinks to stow ignore
- [ ] Create core home services module
- [ ] Create hyprland module instead of using external channel
- [ ] Create emacs home service and slowly migrate emacs package management from use-package to guix
- [ ] Move rest of xdg dotfiles
- [ ] Create personal installation ISO
- [ ] Create system for babylon