Some people on activitypub seemed a bit interested in mobile linux, so I decided to share a bit more of my experience on here. I will break it up into different posts covering different aspects.
I have been using a PinePhone 1.2b (3GB of RAM, 32GB eMMC storage) as my daily driver for roughly four years now. That may sound impressive, but I only really use a phone so people can reach me, for music on the go, and for a browser in a pinch. I'm not on my phone all that often.
PinePhone: https://pine64.org/devices/pinephone/
Currently, I have Mobian (based on Debian) Trixie installed on the internal eMMC storage and a 512GB microSD card mounted at /home, both utilizing full-disk encryption, for plenty of storage for my use-case. I'm using the Phosh interface, since it is more stable in my experience than plasma mobile currently. I also mostly use GTK software since they tend to integrate better with Phosh. I do not have cellular service on it, I even have the entire cellular modem disabled via the hardware dipswitch on the back currently.
Mobian: https://mobian-project.org/
Phosh: https://phosh.mobi/
#mobian #debian #linux #mobilelinux #pinephone #linuxphone #phosh
I have been using a PinePhone 1.2b (3GB of RAM, 32GB eMMC storage) as my daily driver for roughly four years now. That may sound impressive, but I only really use a phone so people can reach me, for music on the go, and for a browser in a pinch. I'm not on my phone all that often.
PinePhone: https://pine64.org/devices/pinephone/
Currently, I have Mobian (based on Debian) Trixie installed on the internal eMMC storage and a 512GB microSD card mounted at /home, both utilizing full-disk encryption, for plenty of storage for my use-case. I'm using the Phosh interface, since it is more stable in my experience than plasma mobile currently. I also mostly use GTK software since they tend to integrate better with Phosh. I do not have cellular service on it, I even have the entire cellular modem disabled via the hardware dipswitch on the back currently.
Mobian: https://mobian-project.org/
Phosh: https://phosh.mobi/
#mobian #debian #linux #mobilelinux #pinephone #linuxphone #phosh
Camera Support
I'll post about bigger downsides first. Currently, camera support is lacking. An app called megapixels worked back on the previous version of Mobian (Bookworm), but GTK4 dropped support for OpenGLES 2.0 and some apps, like megapixels, depend on being able to utilize OpenGL. You can patch GTK4 to add support back in, but that's just a bandage for now. You might be able to get it working with millipixels or Gnome Snapshot, but I have not had success with them yet.
Megapixels: https://gitlab.com/postmarketOS/megapixels
Millipixels: https://source.puri.sm/Librem5/millipixels
Gnome Snapshot: https://apps.gnome.org/Snapshot/
If you want a PinePhone and want to use the camera, sticking to Mobian Bookworm or looking to see what PostmarketOS are doing are probably your best options for now.
PostmarketOS: https://postmarketos.org/
That said, when I was running Mobian Bookworm, it could actually take some decent pictures, assuming the lighting was usable. It's by no means what you could get out of a Google Pixel, but it was fine for most situations. There was no decent way to record video with it, though, nor did it work for video calls.
I'll post about bigger downsides first. Currently, camera support is lacking. An app called megapixels worked back on the previous version of Mobian (Bookworm), but GTK4 dropped support for OpenGLES 2.0 and some apps, like megapixels, depend on being able to utilize OpenGL. You can patch GTK4 to add support back in, but that's just a bandage for now. You might be able to get it working with millipixels or Gnome Snapshot, but I have not had success with them yet.
Megapixels: https://gitlab.com/postmarketOS/megapixels
Millipixels: https://source.puri.sm/Librem5/millipixels
Gnome Snapshot: https://apps.gnome.org/Snapshot/
If you want a PinePhone and want to use the camera, sticking to Mobian Bookworm or looking to see what PostmarketOS are doing are probably your best options for now.
PostmarketOS: https://postmarketos.org/
That said, when I was running Mobian Bookworm, it could actually take some decent pictures, assuming the lighting was usable. It's by no means what you could get out of a Google Pixel, but it was fine for most situations. There was no decent way to record video with it, though, nor did it work for video calls.
Suspend/Deep Sleep mode
The pinephone's battery life is abysmal unless you use suspend and don't actively use the pinephone much. The downside to suspend, however, is the pinephone can only receive SMS/MMS (text messages) and PSTN (phone calls) while suspended. Anything that depends on an internet connection or any additional process can not receive any messages. So no Signal, XMPP, or anything else while suspended.
I get around that using a sleepwalk script. I forked mine from LovePoison's sleepwalk project. However, I do plan to overhaul my script and simplify it since a lot of its features are built directly into Mobian now.
My sleepwalk script: https://codeberg.org/maskedwitch/sleepwalk-systemd
LovePoison: https://github.com/L0v3P01s0n
How it works is it automatically wakes the system from suspend every few minutes to reconnect to the internet and allow software to check for updates and messages. It's not perfect, though, since you still can't receive calls over those other services unless your phone happens to be awake when the other person calls, but it's fine if all you need are messages.
The pinephone's battery life is abysmal unless you use suspend and don't actively use the pinephone much. The downside to suspend, however, is the pinephone can only receive SMS/MMS (text messages) and PSTN (phone calls) while suspended. Anything that depends on an internet connection or any additional process can not receive any messages. So no Signal, XMPP, or anything else while suspended.
I get around that using a sleepwalk script. I forked mine from LovePoison's sleepwalk project. However, I do plan to overhaul my script and simplify it since a lot of its features are built directly into Mobian now.
My sleepwalk script: https://codeberg.org/maskedwitch/sleepwalk-systemd
LovePoison: https://github.com/L0v3P01s0n
How it works is it automatically wakes the system from suspend every few minutes to reconnect to the internet and allow software to check for updates and messages. It's not perfect, though, since you still can't receive calls over those other services unless your phone happens to be awake when the other person calls, but it's fine if all you need are messages.
GPS/Maps
Don't depend on the pinephone for navigation, especially if you have the cellular modem disabled. I'm fine using a basic map for navigation. Gnome Maps technically works, but it does not work well without a consistent internet connection.
Gnome Maps: https://apps.gnome.org/Maps/
There are other options, but I haven't explored them since I can't really use the GPS on it currently.
#gnomemaps
Don't depend on the pinephone for navigation, especially if you have the cellular modem disabled. I'm fine using a basic map for navigation. Gnome Maps technically works, but it does not work well without a consistent internet connection.
Gnome Maps: https://apps.gnome.org/Maps/
There are other options, but I haven't explored them since I can't really use the GPS on it currently.
#gnomemaps
Messengers
Currently, I primarily rely on XMPP/Jabber. Dino makes for a decent phone XMPP client and pretty much the only native one currently that supports most of what you would expect. Kaidan is coming along but still lacks MUC (multi-user chat) support. Otherwise, Movim is a solid webapp for it. I use JMP for my phone number over XMPP.
Dino: https://dino.im
Kaidan: https://www.kaidan.im
Movim: https://movim.eu
JMP: https://jmp.chat
For Signal, I use Flare. It is a solid Signal client, though doesn't have the most intuitive UI. For the longest time I didn't realize it supported reactions and replies until I accidentally long-pressed on a message. Otherwise, it works well for what I need, is very lightweight compared to the official Signal desktop client, and adapts well to mobile interfaces.
Flare: https://gitlab.com/schmiddi-on-mobile/flare
Briar desktop is unusable currently and kind of expects you to have an android device regardless for the mailbox feature, kind of defeating the point for me.
Briar Desktop: https://briarproject.org/download-briar-desktop/
As for running these messengers over Tor, Dino mostly respects system-wide or environment proxy settings. However, it periodically makes DNS requests for whatever turn/stun service your account uses, and those requests leak out no matter the proxy setting as far as I can tell, even if you are not trying to make calls. Flare does not respect proxy settings whatsoever and does not work with torsocks.
#xmpp #signal #dino #movim #flare #tor
Currently, I primarily rely on XMPP/Jabber. Dino makes for a decent phone XMPP client and pretty much the only native one currently that supports most of what you would expect. Kaidan is coming along but still lacks MUC (multi-user chat) support. Otherwise, Movim is a solid webapp for it. I use JMP for my phone number over XMPP.
Dino: https://dino.im
Kaidan: https://www.kaidan.im
Movim: https://movim.eu
JMP: https://jmp.chat
For Signal, I use Flare. It is a solid Signal client, though doesn't have the most intuitive UI. For the longest time I didn't realize it supported reactions and replies until I accidentally long-pressed on a message. Otherwise, it works well for what I need, is very lightweight compared to the official Signal desktop client, and adapts well to mobile interfaces.
Flare: https://gitlab.com/schmiddi-on-mobile/flare
Briar desktop is unusable currently and kind of expects you to have an android device regardless for the mailbox feature, kind of defeating the point for me.
Briar Desktop: https://briarproject.org/download-briar-desktop/
As for running these messengers over Tor, Dino mostly respects system-wide or environment proxy settings. However, it periodically makes DNS requests for whatever turn/stun service your account uses, and those requests leak out no matter the proxy setting as far as I can tell, even if you are not trying to make calls. Flare does not respect proxy settings whatsoever and does not work with torsocks.
#xmpp #signal #dino #movim #flare #tor
Connectivity
I'm not using cellular service with it at all currently. Back when I did use T-Mobile with it, it was unreliable. However, that was back at the end of Buster and early months of Bookworm, so that might have changed significantly. I currently just use public wifi on the go.
On the wifi front, it has been solid for only supporting 2.4GHz. There were some issues with WPA3 and moving between connections, but Trixie brought fixes that resolved those.
Bluetooth on it works well. Though, if it's actively using bluetooth for something more intensive (like audio) and wifi, then I recommend keeping it to the SBC codec instead of SBC-XQ. It starts having connectivity issues if both of them are actively being used.
I'm not using cellular service with it at all currently. Back when I did use T-Mobile with it, it was unreliable. However, that was back at the end of Buster and early months of Bookworm, so that might have changed significantly. I currently just use public wifi on the go.
On the wifi front, it has been solid for only supporting 2.4GHz. There were some issues with WPA3 and moving between connections, but Trixie brought fixes that resolved those.
Bluetooth on it works well. Though, if it's actively using bluetooth for something more intensive (like audio) and wifi, then I recommend keeping it to the SBC codec instead of SBC-XQ. It starts having connectivity issues if both of them are actively being used.
Music
Lollypop works beautifully. Not much to say about it. I've been using my pinephone as my main portable music player (I'm not an audiophile) and it's been solid. It even has a headphone jack if that's something you care about.
#lollypop
Lollypop works beautifully. Not much to say about it. I've been using my pinephone as my main portable music player (I'm not an audiophile) and it's been solid. It even has a headphone jack if that's something you care about.
#lollypop
Video
MPV is the only video player working well for me currently. I used to use Celluloid, but it stopped working as GTK dropped support for OpenGLES 2.0. MPV is simple and straightforward. It also works with yt-dlp if you want to watch videos from peertube or youtube.
MPV: https://mpv.io/
#mpv
MPV is the only video player working well for me currently. I used to use Celluloid, but it stopped working as GTK dropped support for OpenGLES 2.0. MPV is simple and straightforward. It also works with yt-dlp if you want to watch videos from peertube or youtube.
MPV: https://mpv.io/
#mpv
Calendar, Contacts, & Integration
GOA (Gnome Online Accounts) works well for integrating calendars and contacts over Nextcloud. It also supports WebDAV, but that options leaks DNS requests if you want to use it with Tor. Evolution has better support for using WebDAV with Tor. Evolution is also what I use for tasks, since Endeavor/GnomeToDo has issues with reoccurring tasks and syncing tasks over WebDAV.
Evolution: https://wiki.gnome.org/Apps/Evolution/
Gnome Todo: https://wiki.gnome.org/Apps/Todo
#gnomeevolution #gnometodo #webdav #gnome
GOA (Gnome Online Accounts) works well for integrating calendars and contacts over Nextcloud. It also supports WebDAV, but that options leaks DNS requests if you want to use it with Tor. Evolution has better support for using WebDAV with Tor. Evolution is also what I use for tasks, since Endeavor/GnomeToDo has issues with reoccurring tasks and syncing tasks over WebDAV.
Evolution: https://wiki.gnome.org/Apps/Evolution/
Gnome Todo: https://wiki.gnome.org/Apps/Todo
#gnomeevolution #gnometodo #webdav #gnome
Web Browsers
I'm primarily using Firefox ESR with firefox-esr-mobile-config and the Arkenfox user.js. It works well and is smooth on most sites. Something like youtube is a bit too intensive for it, but it works beautifully for me as someone that just needs it once in a while in a pinch.
Firefox ESR: https://packages.debian.org/stable/firefox-esr
firefox-esr-mobile-config (based on): https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox
Gnome Web is another option. It does not handle rendering much all that well, though. I use it for some basic PWAs since it's the only option for PWAs.
Gnome Web: https://apps.gnome.org/Epiphany/
#firefox #gnomeweb #browsers
I'm primarily using Firefox ESR with firefox-esr-mobile-config and the Arkenfox user.js. It works well and is smooth on most sites. Something like youtube is a bit too intensive for it, but it works beautifully for me as someone that just needs it once in a while in a pinch.
Firefox ESR: https://packages.debian.org/stable/firefox-esr
firefox-esr-mobile-config (based on): https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox
Gnome Web is another option. It does not handle rendering much all that well, though. I use it for some basic PWAs since it's the only option for PWAs.
Gnome Web: https://apps.gnome.org/Epiphany/
#firefox #gnomeweb #browsers
Voice Calls
No video calls with the built-in camera setup, sorry. Voice calls generally work fine, though. Outside of regular phone calls (PSTN), you will probably have to manually switch which speaker it uses. Beyond that, Dino, Movim, and Mumble work beautifully. Jitsi Meet works, though the app does not format well for the screen size. Flare does not have calling support yet.
Dino: https://dino.im
Movim: https://movim.eu
Mumble: https://www.mumble.info
Jitsi Meet: https://meet.jit.si
If you want to route everything over Tor, Mumble is probably your only real option since it can route everything through TCP. Calling over XMPP would just break whatever privacy you are going for, if it works at all.
#xmpp #dino #movim #mumble #tor #jitsimeet
No video calls with the built-in camera setup, sorry. Voice calls generally work fine, though. Outside of regular phone calls (PSTN), you will probably have to manually switch which speaker it uses. Beyond that, Dino, Movim, and Mumble work beautifully. Jitsi Meet works, though the app does not format well for the screen size. Flare does not have calling support yet.
Dino: https://dino.im
Movim: https://movim.eu
Mumble: https://www.mumble.info
Jitsi Meet: https://meet.jit.si
If you want to route everything over Tor, Mumble is probably your only real option since it can route everything through TCP. Calling over XMPP would just break whatever privacy you are going for, if it works at all.
#xmpp #dino #movim #mumble #tor #jitsimeet
@maskedwitch (i care loads about a headphone jack but im also pretencious enough to call nyself an audiophile)
- replies
- 1
- announces
- 0
- likes
- 0
@disaster2life There is nothing wrong with that. Though, I doubt the pinephone would be worthwhile as an audiophile devices, at least with what hardware is built into it
@maskedwitch try mepo! it's lightweight, scriptable and cool! #mobilelinux
@maskedwitch eh, now I wanna hear what it sounds like! (im actually not that particularly picky about my sound)
@disaster2life It sounds like what you would expect from a middling phone. You can probably improve it a bit by playing around with pipewire. Unfortunately, pipewire still seems a bit buggy around switching sample rates still
#pipewire
#pipewire
@maskedwitch hmmm, i havent had a bad music exoerience in a while actually, so dunno
@maskedwitch /me waves the secret pinephone daily driver¹ salute :D
I'm using cellular service rather than wifi more than half of the time, and I feel that these days it's way more reliable than it used to be: lately the main reason why I didn't have data service has been because I had not paid for it (ehm... :D ), or disabled international roaming because I live close to a border and then traveled internationally (double ehm...)
to be fair, I never use it for phone calls, only data, so I don't know whether receiving calls is reliable
(and I suspend a lot, because battery and not wanting notifications anyway)
¹ for values of “daily” where I don't use a phone every day
@valhalla Trying a sleepwalk script (like the one I maintain https://codeberg.org/maskedwitch/sleepwalkneo for Mobian) might work for you. It suspends the phone but periodically wakes the phone to connect to the internet to allow apps to check for messages