i have been using guix home for my default applications and guix system for system wide things like fonts and drivers, what way is the correct?
That is generally how I do it too.
There are pitfalls where you need to install something in guix-home for it to work, for example, with icon packs.
I would say never ever ever ever use guix install to install software, since this reduces the reproducibility of your environment. If I install a piece of software using guix install, and reinstall my configuration on a new machine, I will have to remember to do this again. Such is not the case when outlining what packages to install through code (whether that be a manifest for a project or your home/system configuration)
Agree. I did this in the beginning but then quickly realized that what I was looking for is guix shell for one-off usages of programs.
I guess, this also works for GUI programs?
Also is there a workflow to check for guix install programs to list them and migrate them to guix home?
guix shell does also work for GUI programs.
You can use guix package --list-installed | cut -f 1 to get a list of all of the names of packages you have installed and then copy those packages into your guix home config
Another ways is
*** generate an initial config
#+BEGIN_SRC shell
guix home import ~/src/guix-config
#+END_SRC
This will create the ~/src/guix-config directory and populate it with a bunch
of files among which there is home-configuration.scm which includes the packages you have installed.
Thanks @wxie but that ship already sailed ![]()
Maybe I should whip up a tool that runs periodically, diffs guix home and guix package --list-installed and then alerts me of my bad habits.
This should help me to remember to use guix shell and migrate or remove remnants if I forgot again.