Title: Extend Guix Linux with the nonguix repository
Author: Solène
Date: 27 May 2021
Tags: guix
Description: 

# Introduction

Guix is a full open source Linux distribution approved by the FSF,
meaning it's fully free.  However, for many people this will mean the
drivers requiring firmwares won't work and their usual software won't
be present (like Firefox isn't considered free because of trademark
issue).

A group of people is keeping a parallel repository for Guix to add some
not-100% free stuff like kernel with firmware loading capability or
packages such as Firefox, this can be added to any Guix installation
quite easily.
nonguix git repository
Guix project website
# Configuration

Most of the code and instructions you will find here come from the
nonguix README, you need to add the new channel to download the
packages or the definitions to build them if they are not available as
binary packages (called substitutions) yet.

Create a new file /etc/guix/channels.scm with this content:

```
(cons* (channel
        (name 'nonguix)
        (url "https://gitlab.com/nonguix/nonguix")
        ;; Enable signature verification:
        (introduction
         (make-channel-introduction
          "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
          (openpgp-fingerprint
           "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5"))))
       %default-channels)
```

And then run "guix pull" to get the new repository, you have to restart
"guix-daemon" using the command "herd restart guix-daemon" to make it
accounted.

# Deploy a new kernel

If you use this repository you certainly want to have the kernel
provided that allow loading firmwares and the firmwares, so edit your
/etc/config.scm

```
(use-modules (nongnu packages linux)
             (nongnu system linux-initrd))

(operating-system ;; you should already have this line
  (kernel linux)
  (initrd microcode-initrd)
  (firmware (list linux-firmware))
  #...
```

Then you use "guix system reconfigure /etc/config.scm" to rebuild the
system with the new kernel, you will certainly have to rebuild the
kernel but it's not that long.  Once it's done, reboot and enjoy.

# Installing packages

You should also have packages available now.  You can enable the
channel for your user only by modifying ~/.config/guix/channels.scm
instead of the system wide /etc/channels.scm file.  Note that you may
have to build the packages you want because the repository doesn't
build all the derivations but only a few packages (like firefox,
keepassxc and a few others).

Note that Guix provide flatpak in its official repository, this is a
workaround for many packages like "desktop app" for instant messaging
or even Firefox, but it doesn't integrates well with the system.

# Gaming

There is also a dedicated gaming channel!
Guix gaming channel
# Conclusion

The nonguix repository is a nice illustration that it's possible to
contribute to a project without forking it entirely when you don't
fully agree with the ideas of the project.  It integrates well with
Guix while being totally separated from it, as a side project.

If you have any issues related to this repository, you should seek help
from the nonguix project and not Guix because they are not affiliated.