my profile picture

Framebufferphone on Arch Linux ARM

An exciting new UI option

2023-01-31

Framebufferphone[0] is a mobile linux UI maintained by Miles Alan, the creator of sxmo,[1] Mepo,[2] and other mobile and desktop linux programs. Framebufferphone is composed of 2 components that work independently of one another, yet work together to provide a minimal mobile environment that takes advantage of the benefits of the framebuffer.

f_web script open with the strings menu to nelect available websites

Why a new UI?

There are plenty of other UI options to choose from on the Pinephone and other mobile linux devices. Some of the most popular projects include Phosh,[3] Plasma Mobile,[4] sxmo, and Lomiri.[5] Yet even with all these great choices, framebufferphone is able to bring something new to the table. The entire interface is centered around the framebuffer. The core UI, called fbp,[6] is written in Zig.[7] fbp implements a unique virutal keyboard that combines elements of a traditional mobile interface with the power of dmenu-like technology. The keyboard switches between a text input mode, and a strings mode that dynamically adapts to the script or program you are currently running. This allows you to enter complete commands with the tap of one finger. fbp also binds the hardware buttons, traditionally the volume and power buttons, to preform many functions in a similar manner to what is implemented in sxmo.

The second seperate component that completes the framebufferphone mobile environment are the fscripts.[8] Each script is written in oilshell and is fully independent of one another. These scripts allow users to easily place calls and texts, adjust audio settings and volume, change network settings, theme their framebuffer, and preform many other vital functions of a linux phone. fscripts don't even need to be used in combination with fbp, many of them are equally useful on desktop machines.

f_phone script open sending a test text

Daily Driver Status

I'm not able to use framebufferphone daily yet, even for my light use case. Texting, using email, and checking rss all work great, but there are two main features that are keeping me from making the switch to full time use. Calling is still in progress due to the outdated pinephone call audio script that doesn't route call audio properly or reliably on newer versions of Biktorgj's mostly open modem firmware.[12] The other feature is a broken netsurf-framebuffer installation that I'm trying to debug and use effectively. While w3m works great, I do need to browse the web graphically much of the time due to poorly built websites that I have to use for school or work.

Wrapping Up

This promising UI is definitely something to keep an eye on, and I plan on continuing to maintain it's port to Arch ARM whether it becomes daily driver ready in the near future or otherwise. framebufferphone's unique two components make it both simple to use and easy to understand. While it might not be an option for everyone, if you use postmarketOS I'd encourage you to give it a try.

Links/Notes

  1. sr.ht/~mil/framebufferphone
  2. sxmo.org
  3. mepo.milesalan.com
  4. source.puri.sm/Librem5/phosh
  5. plasma-mobile.org
  6. lomiri.com
  7. git.sr.ht/~mil/fbp
  8. ziglang.org
  9. git.sr.ht/~mil/f_scripts
  10. github.com/dreemurrs-embedded/Pine64-Arch
  11. github.com/hamblingreen/Pine64-Arch
  12. lists.sr.ht/~mil/framebufferphone-devel
  13. github.com/the-modem-distro/pinephonemodemsdk