Decided to share my recent experience/learnings in Guix migrating from StumpWM to Sway and setting up my Guix config as a Guile program.
After three pivitol SystemCrafters episodes, I finally decided to make the switch from StumpWM to Sway and completely overhaul my Guix configuration:
- How to Organize Your Guix Configuration - System Crafters
- Crafting a Minimal Sway Environment in Guix - System Crafters
- Configuring Rational Emacs with Guix Home - System Crafters
I have to say that Sway is much simpler to configure, at least on a basic standpoint - though I did spend quite some time configuring my swaybar (image below). Things are simply way more polished than I could have ever achieved in StumpWM, perhaps given my experience level.
Learning the power of customizing Guix services was a HUGE gain in harnessing the power of Guix! I also decided to create my own Emacs configuration as a package, similar to Crafted Emacs, and add to my Guix configuration via an extended service. This is similar to what the home-emacs-service-type
patch that David contributed to may provide (in addition to mainly configuring Emacs in Guile) once it makes it upstream (see: https://issues.guix.gnu.org/64620). This part was done in preparation for this feature.
Constructing my Guix configuration as a Guile program rather than a script or a set of configuration files was an absolute game changer for me! I went on a conquest converting everything to services that I possibly could, mainly extending home-profile-service-type
for sway desktop packages and home-xdg-configuration-files-service-type
to handle mostly sway-related configuration files as well as qutebrowser (yes decided to give it a try over Nyxt until it matures more). Defining each as their own standalone Guile module really makes for clean code aesthitics (in my opinion)!
I also decided to move all my repo’s to Codeberg! So far I am really enjoying the experience and definitely like the forgejo-dark theme!
Overall, definitely motivated and “pumped” to use Guile more so now seeing that it created such an interesting piece of art that we know as Guix! I even decided to abandon Common Lisp for Guile in an application I’ve been trying to bring to life. Currently playing around with guile-sdl2
for the UI aspect, but should probably get to implenting the more important aspects (but first need to become more proficient in Scheme).
Hope that yall found this somewhat interesting, useful, or motivating.
Best,
Erik