Porting GNOME Applications


This guide will cover the tasks associated with porting GNOME applications to the Librem 5 phone, taking into account the different capabilities, form factor and other constraints that make application design different to that on laptops and desktop machines.

The Workflow

A typical developer workflow for porting will involve something like this:

  • Install flatpak and flatpak-builder.
  • Install GNOME Builder.
  • Checkout a GNOME app to port, or start a new GNOME application project within GNOME Builder.
  • Adjust dependencies for the project to pull in libhandy or other possible requirements.
  • Adjust project code and/or XML files for UI changes to accommodate for mobile.
  • Build a flatpak for the app from within GNOME Builder.
  • Copy flatpak into the emulator, install and run it within the emulator.
  • Debug any issues you encounter.
  • Repeat until your app works well on the Librem 5 emulator.
  • Test on a development board or Librem 5.
  • Contribute the app or port.

Hints and Tips

There are some UI elements in GTK+ that are touch friendly (and therefore good to use on a phone) while others are not (e.g. combo boxes).

This page will explain how to make the currently non touch friendly parts of an app more touch friendly. This page is still a work in progress. Until more is written, please take a look at these touch friendly applications as examples:

Any touch friendly UI elements should be good for apps on the Librem5.