technonaturalist

image link to hive image link to ko-fi

Mooooore than halfway there

posted on: Tuesday, 8 July 2025 @ 5:23pm in
tagged

It’s been a good while since I wrote about the baby steps of my very slow transition to as much open source as I can manage.

quick recap

  • early twenteens: apparently (I searched my own blog XD) I was using linux on a small rig (laptop, the desktop is the “big rig”), and apparently it was Ubuntu/Kubuntu or some other derivative and I had a lot of problems with it (mostly because I wanted updates faster than I was getting them and getting what I wanted broke things) and went to Ubuntu Studio which was less of a problem enough to make a difference but still a problem
  • 2016: acquired the big rig (fondly referred to as “the frankenbox”) with its current case and original parts, installed Ubuntu Studio, problems persisted
  • 2017: so many problems that I fully cracked it after yet another dist-upgrade explosion requiring a reinstall, an online friend recommended Manjaro (and stayed up really late for him to make sure I got through the install process fine)
  • mid-late twenteens: started using ownCloud, and at some point after that switched to Nextcloud (purely on principle as I wasn’t sure I liked the direction ownCloud was going, it still functioned fine at the time)
  • late twenteens: broke away from the open source trend briefly with the acquisition of my current iPhone (reasonably certain I was replacing an Android which was doing my head in, I apparently hate Android a lot more than iOS) and much later a Macbook Air (both phones and Manjaro or the photo apps I was trying refused to play nice and my media was infinitely more important than my stupid principles)
  • 2020: acquired a NUC and started properly self-hosting my websites (of which I’m down to just this one now) and Nextcloud
  • 2023: the frankenbox got a lot of new hardware (basically all components except the case, drives and the gpu got replaced), switched to Arch for what ended up being no other reason than I’d mentally prepared for and committed to it (originally we thought I’d have to reinstall because Manjaro wouldn’t recognise all the new hardware but it didn’t care and just worked)

the watch

In much more recent history I’d told JJ I was going to have to switch away from Fitbit really soon partly because my Charge 4 was starting to die anyway (screen wouldn’t always turn back on with wrist turn or taps and then was never bright enough even if I explicitly set the brightness higher and the battery life had gotten noticably shorter but it was still going a few days between charges so that wasn’t a massive issue) and also Google had gone from being naggy (some crap about how it would somehow be so much better if you just use the Google account) to coercive (if you want to keep using this thing you have to use a Google account). J said the strap on his watch (some random cheap thing he’d gotten off ebay or something) had broken and he needed a new one too and told me to send him the one I’d been looking at.

I sent him links for PineTime and banglejs and said I couldn’t pick between them. He bought two PineTimes (probably because they were a lot cheaper) and they arrived mid-May. I had some scurrying around to do on the day they arrived and came back to the demure little box sitting patiently on my desk while J’s was already out and charging.

box sitting on very dusty desk

please excuse my dusty desk

I took a couple of obligatory deboxinating photos because I knew I was going to blog about it at some point but the box was wonderfully simple, it was the cardboard box with a very plain white box directly inside it.

PineTime watch getting slowly unboxed

The watch head was contained in a little extra section up the top like new watches are expected to be I guess, and the section below had the charger (which is magnetic).

Pinetime watch charging on its magnetic charger amongst the mess on the very dusty desk

I really needed to dust ay

Because I’m easily amused I was quite entertained when the watch and charger basically jumped onto each other when I put the watch close to it. The watch cheerfully turned on as soon as it was on the charger and I was greeted with the Casio face. I worked out what was where in pretty short order from playing with it (swipe up from watch face is notifications, down from watch face is apps, left doesn’t seem to do anything, right has settings). Downloaded Infinilink from the App Store on my phone and was faced with a problem. When JJ had set up his watch, it was the only one active in the house. I had two PineTimes to pick from. Of course the first one I grabbed was the wrong one (I could tell because it said firmware was up to date and it was on 67% battery, I had only just put mine on charge and I knew it needed an update). Second time round worked out better (said it needed a firmware update and battery was 0%).

this was a much better problem to have than some of the poor souls from last year and beyond who had to do a lot of reflashing and stuff to get theirs working

The firmware update went with no dramas (I’m reasonably certain I just did that while it was charging but can’t remember now) and I ended up with a new default watch face (just called “digital” in the watch face menu, and it’s the one that J is using).

After it had finished charging I started playing around with it seriously and setting it up. I automatically switched to the analogue face because I feel like my dyscalculia has been getting worse with age (and probably not helped by persistent lack of sleep) and I find reading the shape of the hands quicker than the amount of time it takes for my brain to parse numbers, but the analogue face didn’t have heartbeat or step count which I kind of wanted for no real reason.

I ended up settling on the Terminal face because I found it hilarious (like the watch is such a tool for devs that they didn’t even bother shipping a watch face XD).

PineTime with Terminal watchface on wrist

This time please excuse the protective film I didn’t get around to removing til later, and also the heartbeat monitor saying I’m dead as it apparently only runs when the screen is active and takes a while to sort itself out.

Because it was brand new I spent the first few days running it into absolutely everything including things I was nowhere near (this is just a thing that happens whenever I have something new, delicate or an injury which is why I go out of my way to avoid carrying anything delicate and why I don’t care when I have an injury because it’s going to get bashed on everything anyway).

It held up quite well. It gets recharged every Friday for the most part (aside from a couple of times I’ve done it earlier because I played 2 too much). It doesn’t do sleep or exercise tracking/monitoring, at least one of those is in the works (there are several PRs sitting around, I don’t know how to do the flashy thing with watches and I haven’t been wanting it badly enough to try, and I also don’t know how long they take between updates but apparently there was almost a year between the version I have now and the one before it).

the phone

As per my usual deal with phones, I started seriously investigating options when my (currently still functional) iPhone XR started showing signs of its age (mostly occasional jitteriness to incredible lag which sometimes requires me to try to intervene/close down whatever is causing the lag, and sometimes manages to eventually sort itself out, and in this model I’ve noticed some insane gps drift which is fine when I’m walking or navigating to somewhere I know most of the way to or at least am somewhat familiar with the area but much less fine when I have no idea where I’m going, at least I haven’t had insanely rapid discharge issues this time round which previously was the first thing that happened).

After going back and forth with JJ for a little bit trying to decide whether I get an Android phone, root it and chuck one of the degoogled Androids or one of the mobile linuxes on it or one of the actual linux phones, I decided to risk the Pinephone Pro because it was somewhat modular and cheaper than the other two somewhat modular phones I was aware of (Fairphone which seems like a hassle to get over here and Librem 5).

JJ ordered the phone at some point after I told him that the gps drift was becoming more frequent. It arrived late June.

PinePhone Pro box

I forgot to take a photo that showed the side of the box but it is the Explorer Edition.

PinePhone Pro in box with lid off

The entire contents of the box was the phone itself with its minimal packaging and rattling around in some airspace underneath, the bright red cable.

PinePhone Pro and bright red charge cable sitting on top of PinePhone Pro box

Being able to easily pull the thing apart was cool. Haven’t been able to do that to a mobile device for a while. The sdcard and sim slots (vertically stacked, shown here with one of my sdcards installed) are easily accessible after removing the battery which also goes in and out really easily.

PinePhone Pro with back cover off showing the easy to see internals

I needed the new phone to do these things (in roughly this order):

  • calendar
  • contacts
  • camera
  • text
  • navigation
  • signal/discord/whatsapp (ergh)
  • car music
  • talk to the watch
  • flick stuff to and from the computers sometimes
  • eye candy!
  • phone calls I guess

The OS it had shipped with was Sailfish which last I heard had moved to a subscription model which I generally hate so I needed to do something else.

As expected, it was a saga.

attempt #1: Barebones Arch + Plasma Mobile

My desktop is “barebones” Arch (because I think that’s pretty much what it is by default) + KDE so I was willing to give that a shot again.

The other reason I did it that way was because there wasn’t a pre-built image

Flashing onto a sdcard following instructions went fine and I was able to ssh into the phone from the big rig which was fun. I scp’d the image onto the sdcard and again following instructions flashed that onto the emmc.

That did not go fine and everything exploded, or at least the phone wouldn’t boot. We spent a few intermittent hours over the next few days trying to work out why, and then eventually installed Towboot and that immediately fixed it. I was in and installed Plasma Mobile and was messing around with things and then realised something on the back end was awry (I cannot for the life of me remember what now) and also I wanted Plasma Mobile 6.4 and the repos only had 6.3.5, so I very cleverly installed it from AUR.

The first major hurdle I encountered was that I’m reasonably certain I also very cleverly installed sddm as that’s what KDE normally uses and the login screen at first boot was the desktop one which would have been fine if it would pop up a virtual keyboard to do with it, but apparently no amount of messing around with config files would do that.

The only way I could log in was attach a keyboard to the phone. Unlocking the phone after the first boot was fine and put up a virtual keyboard (in the shape of a pinpad).

I did try to work around that for a bit while also simultaneously trying to find a solution to that particular problem. I probably should have gone back to using the one from repo as that one at least had a usable first boot login screen but didn’t because of whatever the other problem was.

attempt #2: Arch + Phosh

There was some trepidation going into this as I’ve historically hated Gnome (for purely aesthetic reasons). Not as much as I hate Windows but still enough to investigate SXMO first (hey may as well try something new?). I saw “menu driven” (I do remember trying a window manager once upon a midnight dreary and not being smart enough for that) and chickened out of even trying.

I did not hate Phosh when it started up and actually found how it sorted out apps pretty clever. And I could actually move forward sensibly.

  • ✔️ calendar (worked out of the box)
  • ✔️ contacts (worked out of the box)
  • ❌ camera (could not get it working)
  • ⏳ text (didn’t test)
  • 🔍 navigation (middle of the state, found out later in attempt #3 that it was probably due to what it was getting from the wifi)
  • ⏳ signal/discord/whatsapp (didn’t quite get this far)
  • ⏳ car music (didn’t quite get this far)
  • ⏳ talk to the watch (completely didn’t think about this)
  • ⏳ flick stuff to and from the computers sometimes (did not think about this)
  • ❌ eye candy!
  • ⏳ phone calls I guess

After getting calendar and contacts working and failing hard at the camera I jumped to eye candy just to do something fun for a bit and hit a major snag. Stuff which is pretty mindlessly easy in Plasma (wallpaper + lockscreen slideshow was literally all I wanted) seemed unncessarily convoluted in Phosh. Setting one wallpaper was pretty brainless but a slideshow required work (extensions if I wanted easy and bash scripting if I wanted slightly more effort).

I had also installed Waydroid to be able to get/try some other things (Waydroid is great by the way) and while I really liked the apps showing up on Phosh and being able to launch them straight from there rather than having to open Waydroid first, it was doubling up on a lot of things which was only mildly confusing (the icons for things like Settings were different enough that I could tell which was which).

I got impatient and tried again, but this was going to be my fallback if absolutely nothing else worked.

attempt #3: postmarketOS + Plasma Mobile

Most of what I remember of the fresh install was flatpak already installed and enabled and managable in Discover (which I think was also supposed to be able to be responsible for system updates but I only saw the system files sometimes and not others, no idea what was going on there other than Discover doing Discover things).

  • ❌ calendar (Settings page wouldn’t open, problem was reported by someone else who had a very slightly different error message to what I had)
  • ❌ contacts (it wouldn’t populate from the online accounts and it didn’t have an option to add any accounts)
  • ✔️ camera (worked to some value of worked)
  • ⏳ text (didn’t test)
  • ⏳ navigation (pending, I had something working to some value of working but had to figure out a way to test)
  • ✔️ signal/discord/whatsapp (ended up using Android apps as that worked out a lot better than the desktop equivalents, Signal came from a repo added to F-Droid, Discord came from Aurora Store which was installed via F-Droid and Whatsapp politely provided an apk on their website)
  • 🔍 car music (app called Spot from Flathub, didn’t try connecting to car at the time)
  • ⏳ talk to the watch
  • ⏳ flick stuff to and from the computers sometimes
  • ✔️ eye candy! (so very easy, love Plasma)
  • ⏳ phone calls I guess

The first photo taken with the PinePhone Pro was pretty awful.

terrible photo of my Eeveelutions coffee mug on my messy desk taken with the PinePhone Pro

I’m not sure if it was better or worse than the whole lot of nothing that I had before. As far as I can tell it’s a software issue as the camera specs look pretty good (they’re slightly better than my iPhone).

I eventually figured out that pmos stable was 6 monthly updates with occasional “service packs” to backport stuff which recalled “fond” memories of Ubuntu dist-upgrades consistently exploding and without giving this poor new thing a chance (pmos’ base is Alpine Linux which I only found out the existence of after deciding to try pmos) I immediately jumped to the edge branch with its slightly more precarious rolling release.

Then some inspiration struck. It was something along the lines of minimalist install and realising that I should have installed tinydm instead of sddm. I honestly can’t remember now.

attempt #4: Barebones Arch + Plasma Mobile “I just want to try something” edition

This time with a bit more documentation!

in the order I happened to do it in, only some of it needs to be done in a particular order

  • once more flashed following aforementioned instructions (but this time doing the unrecommended Towboot mass storage way)
  • reboot
  • ssh in following Barebones Quickstart (ssh alarm@10.15.19.82 password 123456 while phone is attached to computer)
  • installed yay using the yay-bin so it didn’t take a bazillion years to compile on the tiny little phone
  • sudo pacman -S aur/plasma-mobile (because I want 6.4 now now now now now now now now now and everything else is still hanging out on 6.3.5 where it’s safe, also I forgot when I started that I should probably figure out how to cross-compile as it would be so much faster compiling on the big rig because that took the better part of forever)
  • answer yes to prompts and put in password as required
  • hope phone doesn’t die partway through (should be fine as long as it was mostly-fully charged before commencing but it doesn’t seem to like charging off the red cable attached to my computer anymore, to mitigate this ip a to get the wifi address after activating the wifi connection, connect phone to actual power and ssh over wifi)
  • reboot
  • do barebones Arch post install shenanigans up to the bit where it starts going on about network configuration
  • sudo pacman -S tinydm (single user display manager that all the phone OSs seem to use)
  • sudo systemctl enable tinydm (makes it start up on boot)
  • sudo tinydm-set-session -s /usr/share/wayland-sessions/plasma-mobile.desktop (makes it actually log in to Plasma Mobile apparently)
  • sudo pacman -S kscreen (gives the display manager in Settings)
  • sudo pacman -S iio-sensor-proxy (screen rotation)
  • sudo pacman -S qt6-base-es2 (replaces qt6-base, needed so the task switcher actually works)
  • sudo systemctl enable --now bluetooth (turns on bluetooth)

I was doing reboots between most of the steps to make sure things were still functioning.

At this point it entered my head that setting stuff up from scratch is a lot of effort and before I get too in-depth getting stuff working I should see if the problem I had with Merkuro Calendar before was still a problem and unfortunately it was. A bit more digging later I found out that the issue I already knew about (settings page not appearing in the app) was an upstream bug which was reported upstream.

I then couldn’t figure out how to fix the flashlight (it wouldn’t turn on) so I somewhat arbitrarily decided I was going to drop to postmarketOS edge + Phosh with the vague plan of switching back to Plasma Mobile “at some point” after Merkuro stopped being annoying (probably by reflashing as that seems to be the safest way to do things, though it is theoretically possible to just uninstall one shell and install the other on a running system).

attempt #5: postmarketOS edge + phosh

I told JJ what I wanted to do and after he verified that I very definitely wanted edge not stable he asked WHY DO YOU DO THIS TO YOURSELF and then cackled when I explained everything.

  • ✔️ calendar (Just Worked in calendar app after I set up the Online Accounts in Settings)
  • ✔️ contacts (Just Worked in contacts app after I set up the Online Accounts in Settings)
  • 🔍 camera (as terrible as it was the first time, think the software is still very much a work in progress, I guess I’m using the GoPro more in the meantime, bigger problem is inability to scan QR codes, there are workarounds I’m going to try later)
  • ✔️ text (tested while trying to get geolocation working)
  • 🔍 navigation (Gnome Maps locates me in the centre of the state without the sim card and a few streets away with, is able to do a route between two points but doesn’t actually do useful things like turn by turn navigation, will have to seriously try to fix this when I switch phones over or find some stopgap)
  • 🔍 signal/discord/whatsapp (Signal and WhatsApp will probably be Waydroid again and hope for the best because they’re unhealthily addicted to phone numbers, Dissent works better on Phosh than it did on Plasma Mobile, at this stage I’m seriously considering trying to shift people onto xmpp or Matrix and also possibly self-hosting that)
  • ✔️ car music (Spot from Flathub, repo one doesn’t want to log in, requires Spotify Premium, connecting to car was easy but I did have to drop into the phone settings to specifically tell it to use the new “headphones” for playback when connected)
  • ✔️ talk to the watch (Watchmate installed, had some trouble connecting, and then trouble reading, and then I rebooted the watch and suddenly everything was fine)
  • ✔️ flick stuff to and from the computers sometimes (Warp)
  • ✔️ eye candy! (cobbled together a very basic bash script)
  • ⏳ phone calls I guess (pending sim transfer)

There was a moment of idiocy where the Nextcloud desktop client wouldn’t pop up the virtual keyboard at all (the keyboard had popped up on Plasma Mobile, it had just covered the screen, and in both instances everything seemed to be a somewhat fixed size which was bigger than the viewport) so I ended up angrily digging up my bon.elk hub which only sees use every couple of years when we go to Christmas Island and middle child’s spare keyboard (she bought herself a full sized one) and doing a super quick convergence.

very messy convergence setup on very messy desk

It was literally for that one textbox in the Nextcloud but I kept it like that for some console commands before giving up and putting the phone on the longer charge cable and getting the extra keyboard out of my way and sshing in like a normal person.

My eye candy was a bit more of a fight than it should have been. I have this script cobbled together from random things I read around the internet living in the home directory:

#!/bin/bash

src=/path/to/wallpaper

while pic=$(find $src -type f -regex '.*\(avif\|jpg\|jpeg\|png\)' -maxdepth 1 | shuf -n1)
do
	gsettings set org.gnome.desktop.background picture-uri "file://$pic"
	gsettings set org.gnome.desktop.background picture-uri-dark "file://$pic"
	gsettings set org.gnome.desktop.screensaver picture-uri "file://$pic"

	sleep 3600
done

It’s accompanied by wallpaper-switcher.timer (located in /etc/systemd/user and requiring systemctl enable --user wallpaper-switcher.timer)

[Unit]
Description=run wallpaper script hopefully after desktop loads

[Timer]
OnBootSec=3min

[Install]
WantedBy=timers.target

and wallpaper-switcher.service (same place).

[Unit]
Description=wallpaper switcher

[Service]
ExecStart=/bin/bash /path/to/wallpaper.sh

And this super basic one which just checks which theme is set and switches it to the other one.

#!/bin/bash

set=$(gsettings get org.gnome.desktop.interface color-scheme)

if [[ $set == *"default"* ]]
then gsettings set org.gnome.desktop.interface color-scheme prefer-dark
else gsettings set org.gnome.desktop.interface color-scheme default
fi

The timer file was only slightly different:

[Unit]
Description=switch themes at 8am and 6pm

[Timer]
OnCalendar=*-*-* 08:00:00
OnCalendar=*-*-* 18:00:00

[Install]
WantedBy=timers.target

Service file was the same as the wallpaper one with a different description and script.

I was somewhat aware of the thoroughly abysmal battery life of the PinePhone Pro going in (had read that it lasts 45min?! to 3 hours depending on how much it’s being used) and it did run down very rapidly while I was playing with it. It also ran down overnight when it theoretically wasn’t doing anything (I think attempt #1 survived to critically low but enough to stay on and be used for a couple of minutes in the morning which is part of the reason I persisted with Danctnix so much, all other attempts were dead in the morning).

Yesteerday I decided to simulate taking the phone out with me (it will start coming on trips with me after its case arrives, the sim will be transferred over once I have everything working reliably) and took it off charge at about 11:30am before going out. I returned home slightly later than anticipated at 4:30pm or so and was pleasantly surprised to find it at 92%. I optimistically hoped that the decent looking update I’d pulled down in the morning had some battery optimisations, and noticed that the battery drain did seem to be a lot slower as I played with it (using it more like I would normally use a phone when I’m not playing stupid phone games or frantically setting stuff up).

Everything was going great til I opened Waydroid (unrelated it’s just what I happened to be on at the time) and the batttery immediately dropped from 67% to 0% and it popped up a message saying it was critically low and going to shut down now (didn’t get a chance as I immediately plugged it in).

It then proceeded to survive pretty decently overnight (battery reported 73%, iPhone was at 90%, both had been taken off charge and to bed at 100%). I played around a little bit with it (I’ll sometimes do weather and calendar checks from bed if I’m too tired/lazy to get up right then) and watched it drop to 71%, then suddenly jump to 67%, then to 65%. As I was noodling around trying to figure out if there was a way to configure what kind of notifications Watchmate sent to the Pinetime, the watch buzzed informing me that the phone was about to shut down, and I glanced at the battery meter which was suddenly at 0.

I think it rebooted all the way as it had dropped to logo by the time I got around to getting out of bed (I was in no particular hurry and had to apologise to a cat I accidentally turfed as I misjudged where on the bed she was as I was getting up). I can’t remember what JJ said about refreshing something to do with the battery but it’s currently a later problem.

Looking forward to the case arriving and seeing how it travels.

And the last thing that’s left is my laptop. I’m now aiming for a Framework 12 as it looks like it could be what I wanted from way back when I had to choose between the iPad Pro and the Surface Pro (chose the latter but it turned out there wasn’t a correct decision out of those two, one of the very few times money was wasted on a big purchase).