[Librem 14] Quick first impressions

To my fellow purists:

Little bird (aka DHL) delivered a Librem 14 to my European doorstep about a week ago (after payment of a considerable import tax). Production-wise, it is one of the slicker laptops I owned (though, bear in mind my criteria are low – I’ve burned lots of years on junky netbooks). It is not my intention to give a full breakdown of its physical properties, though I have to note I am delighted by its minimalist and brandless design. Its ironic how proudly system76 and tuxedo brand their oem laptops, while Purism who actually designs the hardware from ground up keeps such a low profile.

I am afraid I can also not tell anything about PureOS. As soon as I switched the laptop on, I stuck an USB stick with GNU Guix boot image and started the installation procedure.

Guix is the main reason you are seeing this post. I just want to confirm that the installation procedure went splendidly well. This is a big thing, because Guix, aside of being a revolutionary distribution in terms of reproducibility, hackability and automation is also one of the few distros that puts emphasis on fully free computing. Most relevant hardware (including WiFi) got instantly recognised and has been working without issues during and after installation.

The post may be extended as I gain more feel for my new system.


The system configuration is a Guile program. In my case, it looks like this

(use-modules (gnu)
	     (gnu packages xorg)
	     (gnu packages wm)
	     (gnu packages gnome)
	     (guix utils)
	     (guix build-system gnu)
	     (srfi srfi-1))

(use-service-modules desktop networking
		     ssh xorg
		     admin sddm)

(define extra-sys-pkgs '("nss-certs"

  (locale "en_GB.utf8")
  (timezone "Europe/BoringEUCountry")
  (keyboard-layout (keyboard-layout "us"))
  (host-name "machinename")
  (users (cons* (user-account
                  (name "loginname")
                  (comment "Fake User")
                  (group "users")
                  (home-directory "/home/loginname")
                    '("wheel" "netdev" "audio" "video")))
    (map specification->package extra-sys-pkgs)
     (list (service openssh-service-type)
	   (service sddm-service-type
		     (theme "guix-simplyblack-sddm")
                       (keyboard-layout keyboard-layout)))
		     (display-server "wayland"))))
     (remove (lambda (srv) (eq? (service-kind srv)
      (bootloader grub-bootloader)
      (target "/dev/nvme0n1")
      (keyboard-layout keyboard-layout)))
    (list (mapped-device
              (uuid "xxxxxxxxx-xxxxx-...."))
            (target "Generic")
            (type luks-device-mapping))))
    (cons* (file-system
             (mount-point "/home")
             (device "/dev/mapper/Generic")
             (type "ext4")
             (dependencies mapped-devices))
             (mount-point "/")
               (uuid "xxxxxxxxx-xxxx-xxxx-x...."
             (type "ext4"))

The configuration above is almost bare-bones. The two “twists” are the replacement of the standard GDM as the login manager/Gnome as DE with SDDM/Sway on Wayland combo and /home as a separate partition (if you can call that a twist). I was a long-time fluxbox user, but as that does not seem to change much these days, I decided I need to find myself another window manager. The choice for now is Sway … and it looks like I’ll be sticking with it … as long as I figure out how to make clipboard working between different applications.

Useful Links

Guix Docs


A little bird? Now we know the speed of a laden African Swallow, because Monty Python only asked about unladen African Swallow.


1975 ? you should crack jokes that the algorithm can understand … it doesn’t go so far back. or does it ? :rofl:

were you expecting GNU Guix to not work on the L14 ? why ?

if PureOS works, then ANY GNU/Linux distribution that uses the Linux-Libre-Kernel should work on the L14. as far as i know there is no special sauce that says that L14 can only be used with ONLY a CERTAIN OS. Guix can be made to work with non-free/libre hardware as well but not official support exists. unofficially you can find someone to help you …

1 Like


I think I’ll have to dive deeply into the sauce again when I get Librem hardware. ^^

No, I expected L14 to work, as I am aware it is built (mostly) of components which can be run using free drivers – which is why I went for L14 in the first place.

Obviously, I believe it is still worth pointing out that the thing works with Guix for several reasons. Newcomers to the world of free computing who are curious about the distro may feel encouraged to know that it just works out of the box. I know, I know, it is not likely that someone starts with Guix as their first distro, but it is not excluded. Back in the day, I began my Free Software adventure on Debian Woody which was supposed to be newbie-unfriendly.

Also, my first experience with Linux-specific hardware was with a Neo Freerunner phone. I thought that the device being called a phone meant I can actually call someone. Boy, I was wrong. So much for expectations.

Sure, Guix can be made to work with non-free hardware, but this is not officially encouraged (Guix being part of GNU) and not documented.

Just be cognisant of the fact that not everyone who may come across this post is savvy enough to know these facts.

1 Like

To these two whippersnappers @tracy and @reC . #enoughisenough
I’m writing a blog about this inappropriate attempt of comedy on Medium. Github petition is coming, too.
You have been a dangerous force in our community for far too long. #removemontypython

1 Like

Does Guix work with coreboot/Heads?

Not sure about heads, it should work with coreboot.

Guix stores linux image and initrd in /gnu/store/ and not in /boot. Heads requires unencrypted /boot with the linux image and initrd. I haven’t found a way howto use Guix with Heads together.

Therefore I switched to coreboot/seaBIOS, but there were some issues with the L14 getting stuck during boot when I used encrypted partition using LUKS. It took me a lot of time to find out what was going on and the solution seems to be this line in config:

(initrd-modules (cons* "i915" %base-initrd-modules))

I don’t have a separate /boot partition now. The whole disk is encrypted with LUKS and on top of LUKS I have other partitions such as / and /home (that are encrypted).

1 Like

probably worth raising this issue on Guix mailing list (https://lists.gnu.org/mailman/listinfo/help-guix).

1 Like

I’ve already done that.

Back here after a while. L14 is still my main laptop and feels great to use. One irritating detail, though, is the dimension and position of the right “Shift” button on the laptop keyboard. I tend to swap between left and right Shift frequently to avoid overexertion and carpal tunnel syndrome despite typing a lot. But, the right shift on L14 keyboard is so far away that in order to use it, it is necessary to move your right hand off the main row. Were those arrow keys really so necessary?


I agree 100% if anybody figures out a way to swap the pgup key and the right shift key I would love that!
I thought I would get used to it overtime and it’s just not happening.

It probably is possible to swap keys by config but my Linux-fu is not up to the job.

Doing it that way may mean that the swap is not effective in the pre-boot environment i.e. only after Linux is booted, but that may be acceptable.

1 Like

Even if you swap the keys, the shift will stay tiny.

True, I just always hit the PgUp key :smile:

I want to add to this conversation. I am delighted with my L14. I have settled with Qubes and despite a small hiccup with my docking station of choice, all is well. Great laptop and I am glad I waited.

Now to get that matching L5 phone…


My original intention was to use Qubes OS too. But after not being able to switcch CPU Turbo Mode off in Qubes OS, I had to revert to PureOS.

Did you resolve Fan Noise / CPU Turbo Mode off or is the fan just blasting all the time?


It’s been a non-issue for me. I had been bracing for it as I tend to run ~6 AppVMs at a time at about 24 GB of RAM total baseline. But for some reason or another, I don’t have that issue at all.

What version of Qubes did you try?