Using Phrog 🐸 with Phosh on postmarketOS (openrc)
Table of Contents
At FOSDEM 2025, I had the opportunity to take care and demo some devices running Mobian at the LinuxOnMobile stand1. When handling the Poco F1 with Mobian, I was once again reminded that having Phog as a greeter is IMHO a great choice, as it means that you don't need to unlock your keyring manually.2
This morning, on holidays in South Tyrol on the first day without plans but with clouds, I had the opportunity to finally try phrog on my Pixel 3a running postmarketOS edge (with Phosh, still openRC).
What the 🐸?
phrog/🐸, like phog, is a mobile-device greeter for Phosh. It uses libphosh and is written in Rust. As the README states,
phrog uses Phosh to conduct a greetd conversation.
You do not really need to understand the technical details to use it. Just think of it as something like gdm: You log in with it, and if you want, you can also choose a different graphical session, e.g., log into sway instead of phosh, assuming you have sway installed. Also, there's another use-case that may be relevant for device used by multiple users: With phrog, you easily login with different users. So if this was holding you back from going for that Mobile Linux family tablet, don't fret anymore!
Install and setup
Do not try this on a systemd-install of postmarketOS with Phosh!1 If you are on 24.12, the instructions should work just as well, but I have not tried on one of my 24.12 phones yet.
If your device contains valuable data, make a backup first. It's recommended to enable the sshd service before experimenting, so that you can fix your install if something should go wrong!
Most of the install process is in Phrog's readme:
sudo apk add greetd-phrog
Then configure greetd to use Phrog (you can also edit /etc/conf.d/greetd
and just add the line starting with cfgfile=
if you prefer it that way):
cat <<HERE | sudo tee -a /etc/conf.d/greetd
cfgfile="/etc/phrog/greetd-config.toml"
HERE
After that, make sure greetd is run at startup:
sudo rc-update add greetd
If you want to make sure that worked, you can now reboot. greetd and Phrog will already be run, in fact, you should already be able to briefly see something black and green, to then end up in Phosh's standard login screen.
To really use phrog, there's one more step:
sudo rc-update del tinydm
This disables tinydm, the default display manager on postmarketOS that usually starts Phosh on postmarketOS. As now greetd/phrog starts Phosh, tinydm no longer needed.
Enjoy
Now, when you start your phone or log out of Phosh, your screen will look something like this:
![A Google Pixel 3a running Phrog A Google Pixel 3a running Phrog, showing a green bar containing the user's name and a gray menu at the bottom for session selection, with the word Session on the left and the word Phosh on the right, next to a downwards pointing triangle indicating the option to choose a different session.](/media/2025/pixel3a-with-phrog.jpg)
Undoing (just in case)
If you, unlike me, should not like the Phrog experience, you can undo it by re-enabling tinydm
sudo rc-update add tinydm
and disabling greetd:
sudo rc-update del greetd
Afterwards, you can uninstall greetd-phrog.
Which I put there myself and was not well prepared for (think of offline demos beforehand, e.g., games, Waydroid or an Android Translation Layer app next time) ... it improved comparatively on day 2, but that's a different story. Praise Phosh for these days supporting no-pin unlock and having that Caffeine quick setting, though - demoing was way harder without that, when I last did prepare demo devices for real.
On Phosh, that is; and only if the keyring password matches your login password. When booting a Plasma Mobile image for the first time, and I see Phog greet(d) me, I am always quite confused and wonder: Wait, but I downloaded and flashed Plasma Mobile, right? Fortunately, that visual confusion does not last after entering the pin/password to login.
Unless, of course, you know how to do the necessary systemd-service magi. At least initially, Phosh may keep requiring tinydm with systemd, alternatively, it may actually get all this greetd goodness by default on systemd and openrc.