I promised to write about it in last LinBits, so here you go. Recently, I decided to re-do my months old eMMC install of ArchLinuxARM/DanctNIX mobile, which has been my main PinePhone OS for quite a while now. I wanted to switch to the F2FS file system, and loose some clutter that had accumulated in various attempts to try out software for LINMOBapps, where I had neglected to write a PKGBUILD, but had just build and installed the program from source, making uninstall a tedious process.

Choosing default apps

I tried to be considerate and only install the programs I really need and use.

In particular, I installed:

  • Angelfish (plasma-angelfish, AUR): The Plasma Mobile browser that I use a lot.
  • Backups (deja-dup): To restore my backup and to backup my current setup. An alternative to this would be “Pika Backup”, which is based on borg instead of duplicity.
  • Calindori (calindori-git (AUR)): Plasma Mobile calendar. I am going to set it up to sync, but I didn’t not get around to that yet.
  • Cawbird (cawbird-git (AUR)): Twitter client. I switched to git when the 1.3.x release appeared.
  • Evolution (evolution): Mail client. This is not adjusted for the mobile form factor at all, but once a few elements are hidden, it works ok. I mainly use it, because I had serious bad luck with Geary, which sometimes would not fetch my mails.
  • Image Viewer (eog): This really should be preinstalled.
  • Jami (jami-gnome): Jami is an interesting service (you may know it under its previous name GNU Ring); unfortunately I don’t know anyone who uses it. It can also be a SIP app, altough calls did not work out-of-the-box for me (and I did not have the time to tinker yet).
  • mpv (mpv): Always good to have this one around.
  • NewsFlash (newsflash-git (AUR)): I use this to follow the news, as I am an RSS addict since I was first told about RSS. It’s a Rust app, you can download my build here (pacman -U filename) to install.
  • Nextcloud (nextcloud-client): Works terribly (scale-to-fit com.nextcloud.desktopclient.nextcloud on helps with initial setup), but I had to start using this as Notes (gnome-notes) would take ages to sync my Notes folder because it does not seem to cache locally. The good thing is: It only has to be setup once.
  • Notorious (notorious-git(AUR)): Replaced Gnome Notes as my editor when I switched over to the above sync solution. It’s fine, but I might try ThiefMD (AUR: thiefmd) as well soon.
  • Password Safe (gnome-passwordsafe): Client to use KeePass databases. While it was dreadfully slow with my database earlier, this improved lately, so that I now longer need to use KeePassXC on my phone.
  • Pidgin (pidgin): This is a piece of really old GTK2-software, but as its libpurple is what Chatty is building upon, I decided to add it to my setup. For it to run, Chatty has to be killed, which is why I had to add a script and a launcher to easily do this. Pidgin is interesting as it supports many services such as Discord, Signal, Threema etc. via plugin. I’ll report back on this once I’ve set up some of these services.
  • Podcasts (gnome-podcasts): I recommend importing an OPML file you exported from your previous Podcast client for this app, as you would have to hunt for feed URLs (which for some podcasts is unacceptably hard) otherwise.
  • Quickddit (quickddit (AUR)): Reddit client, originally developed for Ubuntu Touch. It’s quite nice, and I just prefer it’s wider feature set to Giara, which would be more native on Phosh.
  • SuperTuxKart (supertuxkart): Once ~/.config/supertuxkart/config-0.10/ and the launcher are adjusted, the game works ok, at least with the less graphically challenging maps. I think it’s just running on the CPU and not using the GPU, but I am not sure about that. Also, the proximity sensor interferes with it, which is annoying, but there seems to be a simple way to fix this.
  • Telegram desktop (telegram-desktop): I am not a massive fan of this service, but there are activities in my life that basically require using this. While I also have Telegram set up in Chatty (and thus Pidgin, which is way more useful as an interface than Chatty currently is), I sometimes start this app to browse Telegram. With a modified .desktop file it works just fine.
  • To Do (gnome-to-do-mobile, Manjaro package): This is the mobile-friendly downstream of Gnome To Do which basically is a simple To Do manager that integrates nicely with Nextcloud. I had to steal Manjaro’s package here, I would have prefered to just steal their PKGBUILD but was unable to find it on their gitlab.
  • Tootle (tootle-git (AUR)): Mobile friendly Mastodon client. It’s not perfect, but good enough for some light Mastodon interactions.
  • Weather (gnome-weather-git (AUR)): The mobile patches that have been available in Gnome Weather for PureOS and Mobian in a while seem to be making it upstream. The current version has issues when you install
  • YouPlay (not packaged, install script): A simple YouTube music downloader. I rarely use it, but it was fun to try to write a stupid local installer. Also, I installed:
  • wlr-randr and yad to use the script in this old blog post by Purism. The script is quite helpful, and I look forward to doing more with yad in the future. Also, tor and tor-socks are installed, but that will follow later.

I removed:

  • Geary (geary-mobile): I use Evolution, see above.

But how do you use Matrix?

While I can sometimes shut up about how and why Matrix is great, I am an avid user of the platform. With this new setup, I decided to just go with Firefox webapps. I was using chromium before, but even with ozone and wayland I had keyboard issues — the keyboard would not pop up automatically, and worse, the o and k key would not work on every keyboard layout, thus rendering me unable to type my blogs URL (unacceptable!). Therefore, I decided to use Firefox, which is available in the current release (as opposed to ESR on PureOS or Mobian) on ArchLinuxARM. In order to use Firefox for this, I opted to create a seperate profile.

Setting up new profiles is relatively easy. Just navigate to about:profiles and click Create a New Profiles to add a new one. Notice that you can not only name your profile, but that you can also choose the location where you want to safe it. I deciced to save my additional profiles under “ssb.default” and tor.default” in ~/.mozilla/firefox/, in order to make the creation of launchers easier than it is if you have Firefox assign random names to the profile folders. The main benefit of this is, aside from having a seperate profile for “Site specific browsers”, which is a feature that you need to enable in about:config (set browser.ssb.enabled to true, is that you can customize many of the other settings, e.g.

  • the user-agent: general.useragent.override in about:config, maybe to avoid the Android user-agent that comes with firefox-mobile-config and leads to many unsoliceted “use our Android app” recommendations;
  • customize the proxy, be it for VPN or Tor;
  • enable specific plugins that you might not want to use all the time, but for certain use cases, e.g. NoScript (which is handy, but hard to configure on the mobilized desktop Firefox on the PinePhone.

For Matrix, I created two launchers: One for Hydrogen, which is an official mobile front-end supporting a limited featureset (desktop file); the other for the proper, MOfull featured Element app, which does not work too well on the default dpi, but is fine once scaling is set to 1.75 or 1.5.1 The main reason for this is compatibility and to have less different interfaces for Matrix. While Fractal and NeoChat are both great and native on Phosh and Plasma Mobile respectively, neither of them supports end-to-end encryption (E2EE) without hacks like Pantalaimon, which does not perform to well once you use many chats. Mirage thus is currently the best option, and I like it a lot, but I ran into issues with accessing encrypted conversations that I hope to avoid by using first party clients and only these.

Thoughts and Conclusions

This setup is not perfect, but it mostly works for now. I would really like to have Full Disk Encryption, a feature that’s not easily available on Arch Linux ARM yet. I thought about switching to Mobian for that, but then I would have to miss out Plasma Mobile, Calindori and Quickddit — or at least have a harder time obtaining these apps. Also, if I were to travel, I could switch Gnome Maps for Pure Maps and add KTrip and Itinerary. KDE Connect could also be a handy addition (it works well), but my desktop getting battery warnings from the PinePhone at 85% charge let me to not install it again without needing it. For FOSDEM, I am going to re-install Confy (confy-git); if I should be running Plasma Mobile by then, I would instead opt for Kongress.

Looking at what I considered necessary early on, I would say that we’re pretty close:

  • I could run Org-Mode in Emacs (although Emacs with it’s modifier-heavy commands is difficult to use with a software keyboard),
  • were I less lazy, I would have already set up GPG email with Evolution,
  • Threema, Signal can both be “solved” via Anbox, but I will try to explore the possibilities around libpurple for now,
  • quassel-client should work fine at a 150% scaling once the chat list is in its own window.

I’d wish that Phosh would crash less often, and the kernel itself could also loose a few small bugs. All things considered though, I must say that I am quite happy with the current state of the PinePhone.

  1. For more information on scaling, see this blog post