Should i use guix home guix system or guix install for installing packages?

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

2 Likes

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 :wink:

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.