Alternative system softwares (keyboard, shell, OS, etc) on Librem 5

I am looking for more information on the status of support for:

  • Alternative keyboards.
  • Alternative compositors/shells.
  • Alternative operating systems.

As well as more about how the bootloader works, and honestly, anything else vaguely related to these topics that I have not already seen.

So far, I’ve had a lot of issues with Phosh and Squeekboard, so am looking to see what alternatives are available and if they are any better. However, it seems that most alternatives (KDE Plasma Mobile, SXMO) are not available in the repositories for some reason, nor SXMO’s on-screen keyboard svkbd. Even my favourite Wayland terminal, alacritty, does not seem to be available in the repositories. Overall, PureOS seems to have really bad software repositories, much worse than I am used to on Gentoo.

Question/Approach 1: Is it possible the repositories may get better in the future, or are there better third-party repositories I may use? Or more generally, any other information in regards to making the software situation better, without switching from PureOS?

Question/Approach 2: Is there a comprehensive list of alternative operating systems that support the Librem 5? So far I have found PostmarketOS (I prefer something based on the more well-supported Glibc and GNU Coreutils rather than Muscl and Busybox though) and Mobian. What others support the Librem 5? Does Mobian have better repositories, or is there another distribution available, which is better supported?

Question/Approach 3: How does the bootloader work?? Does it support EFI? I might want to try installing Gentoo. Compilation will be a pain with so little RAM, but maybe I can just cross-compile.

Question/Approach 4: In general, what are some of the best ways I can test interfaces other than Phosh?

Question 5, relevant to multiple approaches: How does the software which receives and logs calls and texts work? It will be important to keep these working across GUI and/or distro hopping.

Some links I have found trying to answer these questions so far:

I wish there was more comprehensive documentation/wiki for these kinds of things in regards to the Librem 5 and PureOS. So far, Pinephone, PostmarketOS, and Debian have had much better information available on their respective wikis, while with the Librem 5, I have to search through many disperate links on many different websites. It’s bad enough that it’s hard for me to even organise this post well with how much I cannot find good enough documentation for, so that is part of why this post is so messy.

1 Like

I think it likely, not just possible.

For testing whole other operating systems, you may find it helpful to boot from uSD card (which is supported with the latest uboot). That way, you can test as many alternative distros as you want (one uSD card per distro) and all without (hopefully) messing up the existing PureOS install on the eMMC card.

My opinion is that Purism is flat out making the existing distro and DE work as best as it can, so there won’t be much interest from them in worrying about other distros and other DEs.

Texts are going to be a problem. If you are doing a lot of messing around you should
a) disable that functionality within the alternative distro, and
b) make sure that you boot PureOS every few days in order to pick up texts.

I’ve cross-compiled more or less the whole kernel for PureOS for the Librem 5 on my PC. So that should in theory be doable for you.

Depends whether you mean “instead of” or “in addition to”. The latter is considered to be not recommended. In terms of the general question, who has an incentive to make a better distro for the Librem 5 than Purism?

1 Like

Having more incentive doesn’t necessarily matter if one is spread too thin to actually follow through, otherwise most software (and similar) issues I experience would have been solved a long time ago by myself, and Purism’s Librem 5 probably wouldn’t be so delayed. Furthermore, there are also matters of taste, where the default software may be incentivised to follow a different path than what I would prefer; and support in the other operating systems I have looked at already seems to be much better than Purism’s in regards to more options for system software.

Actually, I even have a specific example of why it won’t work to rely on this: For by far one of my most important usability issues in Phosh, they have already said “scarce time is better put elsewhere”: Per-application GUI scaling? . So I basically have to either make a pull request to fix it myself, or see if someone else has already made something better. My use case, of making desktop-class software work as well as it possibly can on a touch screen with as little compromise as possible, is different than the design focus of making better mobile-class apps.

RE: Texts and Testing: I was more referring to which specific daemon is responsible for retrieving calls and texts, how to set it up if I install something like Gentoo that doesn’t come with it, and whether they would persist between user interfaces if I stayed on PureOS but switched from Phosh. If I were to move to another OS full-time, I would want it to have full texting functionality. If part time, I will probably just turn off the hardware kill switch for the modem. I generally prefer having a bunch of different UIs available in the same OS than to constantly switch distros as that means I do not have to worry about migrating files every single time I want to use something different. That also means I probably wouldn’t be testing a bunch of different distros on an SD card; even if I knew of more than 2 available, it’s a lot less chaotic to find only 1 OS that supports everything and then switch between GUIs on that. Ideally I would either find some method to test them all on PureOS; or find some other distro which works better to test them on, do some initial testing on SD card, then switch to it full-time.

The kernel is by far one of the easier packages to compile because it is written in C. What I’m really worried about are those packages based on C++ and Rust, especially the HUGE ones like QTWebKit. QTWebKit takes well over 1GB of RAM per compile thread in my experience so would probably end up overwhelming the Librem 5 with its 4 threads and 3GB of RAM. And even the smaller Alacritty ended up completely overwhelming my Librem 5 virtual machine when I tested compiling it quite a while ago. If I am remembering correctly, one step that often takes a ton of RAM isn’t even just the compiling itself but the linking, and I’m not sure it’s possible to do the linking step entirely on the remote system with Distcc, so that is one of my main concerns.

The specific methods I would be using, via the Gentoo Wiki, would either be or . Distcc might have problems with bandwidth, and still being somewhat dependent on the original system, while the binary package host would require compiling many packages in advance, and both would require a degree of setup.

Interesting. I am referring to the latter, as I often see software suggesting using some custom PPA repository to install on Debian-based distros so thought it might be more normal and expected to use them on Debian-based distros like PureOS. Do you have any more information or links that go in-depth about how this is an issue?


Surf for “frankenrepo” or “franken-repo” etc.

It’s not a problem to add a repo that only provides packages that are not in the existing repo. In that scenario installing from the additional repo should either succeed or otherwise will fail with unsatisfied dependencies.

It is a problem if both repos provide the same package (which will often be a dependency not the actual package that motivated you to the add the repo in the first place). You can end up with an installed system made from some packages from one repo, other packages from the other repo, but all with subtle incompatibilities because there were duplicated package names but the packages weren’t actually identical.

1 Like

I’m running NixOS which has the largest repository - nixpkgs - by far.

Only issue is that I do not have sound in calls.

NixOS compiles the kernel from Purism source. Takes hours on Librem 5 but works.

One of the big advantages of NixOS is that one defines the required state of the OS in a configuration file. And one can either rollback to a previous configuration, or simply undo the changes in the configuration file and rebuild.

This makes it very easy to test other settings or software.

This. I’m struggling to figure out what configuration in PureOS makes the modem available as a sound source and sink. I’m currently shifting through the actuall files in the Librem 5 PureOS image with no clue what to look for.

1 Like