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 ready to use on a phone, while others are not.

A collection of application mock-ups for GNOME applications should help to give an overview of the presentation and user interface paradigms that developers are using.

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.