[Librem 5] Recommendation for GUI


Hello friends of privacy,

I want to develop an app for the Librem 5. So far I learned Java and JavaFX (also stuff like HTML, CSS and JavaScript for webpages), but I want to learn C for programming the app (unless you tell me another language has more advantages :wink: ) and want to ask you what GUI you would recommend me.
Gnome looks very boring in my opinion from what I saw. Could you customize it so that it looks totally different or do you have to choose another GUI?

Have a nice evening :slight_smile:


Hello @halcyon,

You can find some information there if you have not yet found it.

Not sure it will answer your questions, but it might be a good start.


Python perhaps. Not wanting to start a programming-language-religious-war but I consider C to be a primitive language. If you are writing device drivers or kernel code, C could be good but …

As a freed environment, you are of course free to put whatever software on your phone you like, but I am not sure that there will be Java support out of the box at Day 1 on the Librem 5.

Happy to stand corrected on that.

Will the JRE be there? Will it feature JIT compilation? (On the Raspberry Pi the speed difference between the JIT and non-JIT versions is stark.)

The previous discussion also raised issues about the Java bindings. In other words, if what you want to do can be done without Java bindings then it may work better than if you need to go outside the Java environment.

Other discussions:


On that site it seems like you don’t have much freedom with Gnome. You can say that there should be a title bar or a button and set titles of it. But can you also create your own design for buttons and other UI elements so that you can even have a Material Design or something similar?

What do you mean by primitive language? I thought it would be a powerful language because Linux is written with it.

That’s okay for me. I don’t want to use Java anyway :wink:

The first one sounds good and the first few posts looked promising, but then there is a lot OT and I couldn’t find something helpful for GUI development :frowning_face:


Lots of code to express something that actually obfuscates the intent of the code v. simpler, shorter, more expressive code.

As I said, if you are writing device drivers or kernel code.

I’m sure C is powerful in the sense that it can do everything a higher level language can do. Assembly language is more powerful still.

Power is good but so are other considerations.

A lot OT? That doesn’t sound like this forum. :slight_smile:


You can have a look at https://extensions.gnome.org/
or https://www.gnome-look.org/ to see some examples of gnome customizations. There are quite a lot.


Thanks. I don’t want to change the whole Gnome shell but only the look of my app. Still, I think I can find something useful there that I can integrate in the GUI.


You can customize your app to a certain extent with CSS. It was something I used in an example to get things looking how I wanted them.


If you customize the look of the application you create this way, does it ignore the system theme preferences?


I think it uses the theme preferences as a base but if you specify that, for example, some text will be red then that will obviously ignore the system theme preferences. At least, that’s how I understand it.

Maybe someone can say how to define a style that uses values defined in the system theme, or perhaps refer us to some documentation. It would be interesting to see something like that.


I’d definitely prefer the application GUI respect the system theming as opposed to having its own theme.

Hopefully there’s an easy way to make that work.