Font browser application for KDE Plasma (Help needed)

Hello! My first time posting in the forum so forgive me if I wrote anything in the wrong way.

About half a year ago, I put heavy effort into creating a font browser application for KDE Plasma that let’s you browse fonts from Google Fonts, install them locally on your user, save them to a directory and manage them. Below you can find a screenshot (can only embed one screenshot since I’m a new user):

One note I should mention. It doesn’t quite use the traditional KDE application stack. It still uses Qt and QML but it’s entirely written in Rust with no C++ involved. You can take a look at the Github repo and code for more info:

The initial reason I left this project was packaging. I’ve been using linux for a few years but I’ve never packaged an application I wrote. I find it incredibly hard and confusing, none of the packaging system are easy to understand and actually package to. You can find my efforts to get a working AppImage in the gh repo, it works but not properly and is kinda messed up on non-KDE systems.

If anybody experienced with packaging applications to AppImage and Flatpak can help me, I would be more than happy to release this app under the KDE umbrella (or as a separate project if it’s not accepted). It’s far from perfect currently, has minor bugs and lacks any kind of i18n but I am willing to work on those issues and maintain it (if I can actually package it, as I mentioned).

And if you want to try app for yourself, just clone the repo and run cargo run (assuming you have Rust and Cargo installed on your system). Any kind of test feedback is also welcome!

12 Likes

The apps sounds really interesting! You could also integrate local font browsing at some point. You can ask for help in #flatpak:kde.org and find the Incubator process at Incubator - KDE Community Wiki. there’s also Distributing KDE Software as Flatpak | Developer

4 Likes

Thank you! I’ll read the wiki pages and see if I can find help in the matrix channels

2 Likes

Looks really cool! I could see this being a good replacement for KFontView someday. That software is quite dated with scary code, and I’ve always though it would have made more sense as a standalone app than a System Settings page,

One UI suggestion: embed the search field in the toolbar. If that toolbar “Search” button is living on a Kirigami.ActionToolBar, then you can set its displayComponent: to be a Kirigami.SearchField and it will appear inline, rather than as a button. The KNewStuff dialog uses this trick.

6 Likes

Done!

Here are some more screenshots of different UI elements, would like to hear further suggestions:

2023-07-01_16-47_3

2023-07-01_16-47_2

5 Likes

It looks fabulous. I’m very impressed.

4 Likes

I could try to package it to flatpak, this should not be that complicated hopefully.

4 Likes

For internalization with qmetaobject where is https://crates.io/crates/ki18n

2 Likes

Would really appreciate the help! Just moved it to KDE Invent from Github, also added a simple flatpak manifest, metainfo file and desktop file:

Another thing about the flatpak build, seems like Cargo isn’t usually used alone for building Rust applications into a flatpak. I think a CMake or meson build file needs to be written.

2 Likes

The main obstacle to adopt QML in a local font browser is a font can have variants, and QML font engine is still too weak to show all of them. One has to face the ancient bizarre freetype interface when dealing with local fonts.

2 Likes

I’m not very experienced with font formats but yeah I can see how that could be a problem for local font support. And some other things that QML doesn’t seem to support (which Google Fonts provides support and fonts for) seems to be variable fonts and colored fonts (although I don’t think Qt Widgets supports them either but I may be wrong).

2 Likes