I set up an F-Droid repository for the #Lagrange alpha/beta testing:
fdroidrepos://raw.githubusercontent.com/skyjake/lagrange-fdroid/master/fdroid/repo?fingerprint=46AEA2F2D86047AD65DA955126C6532F79B05AF2BFEFFC5CF1B467A79E686F86
Configuring this was a bit of an adventure, but it seems to work now?
Currently it has the latest build (1.10a3) that you may already have installed. Let's see how well this works once I post a new build at some point.
Lagrange Meets a Green Robot
gemini://skyjake.fi/gemlog/2021-12_lagrange-meets-a-green-robot.gmi
For now iOS is firmly in focus when it comes to mobile, but the Android port has also seen some progress.
It's wonderful that the Noto fonts are under SIL OFL.
https://en.wikipedia.org/wiki/Noto_fonts
Preparing these for the #Lagrange v1.8 release...
Courier is such a classic font. This brings back strong memories of playing around with WordPerfect and an HP LaserJet on my parents' PC back in the early 90's. π¨
Working on much more flexible fonts for #Lagrange v1.8. The previously hardcoded font library is now defined by a set of .fontpack files.
Use of platform-dependent text/font APIs (i.e., system fonts) is likely too much to include in this release, but now at least you'll be able to freely customize the UI and pages with any TTF fonts you have available.
Introducing bookmark folders and better popup menus in #Lagrange v1.7:
gemini://skyjake.fi/gemlog/2021-09_lagrange-1.7.gmi
https://gmi.skyjake.fi/gemlog/2021-09_lagrange-1.7.gmi
See the release announcement for all the details. Just uploaded v1.7.0 to git.skyjake.fi and GitHub, download while it's hot! π₯
Managed to get context menus working via NSMenu on macOS. It did need a minor tweak in SDL to make it realize the right mouse button has been released after the menu goes away.
A first step toward multiple windows in #Lagrange: popup menus that live outside the main window.
On Mac/Windows it makes more sense to use native menus for this, but everywhere else a platform-agnostic method is needed, and this one is purely based on SDL-managed borderless windows.
This morning I was puzzled by all hostname lookups failing in Lagrange on my phone. Could it be an iOS beta thing? Maybe my router needs rebooting? But everything else works...?
After half an hour of troubleshooting I remembered I had been testing input widget changes the night before. π€¦ββοΈ
There's been a little pause on this but I'm still working on my small Emoji font. Here's today's glyph: A turkey!
https://codeberg.org/skyjake/smol-emoji
The Emoji test page in Lagrange shows full coverage up to Unicode 7. The turkey is part of Unicode 8 (about halfway done).
Note: Lagrange uses Noto Emoji/Symbol fonts as well.
It's a bit of a challenge to call FriBidi at the right time. I'll need to refactor the document layout somewhat so the text renderer has visibility to the full paragraph and can process it in one go. At the moment it's more of a line-based operation, which makes it more challenging to apply alignment (and justification).
Looks like FriBidi is doing its thing!
(i.e., applying the Unicode Bidirectional Algorithm)
Still need to optimize the text handling a bit to avoid repeated processing of static strings, e.g., UI labels. Text selection is also a bit wonky over RTL runs...
HarfBuzz & FriBidi mean a big step forward in supporting complex scripts. The final big issue remaining is expanding the collection of available fonts.
After a while it became evident that trying to write my own text shaping engine would be a monumental project of its own. And since HarfBuzz already exists, quite a waste a time...
So I've gradually been integrating HarfBuzz into Lagrange's text renderer. There are still a few issues with the current set of fonts not containing all combining glyphs.
Next step: FriBidi for dealing with RTL scripts.
#Lagrange v1.5 is now available with several UI improvements.
https://gmi.skyjake.fi/gemlog/2021-05_lagrange-1.5.gmi
gemini://skyjake.fi/gemlog/2021-05_lagrange-1.5.gmi
- improved identity management
- multi-line text input
- query response length indicator
- animated sidebars and dialogs
- custom fallback font
- Gempub navigation
Having an absolutely wild Saturday evening investigating Unicode combining characters. Lagrange currently utterly fails to render these. A special layout algorithm that adapts to any number of combined extra glyphs is needed.
I haven't thrown in the towel yet, but falling back to using an existing library is always an option...
Graphics/UX/UI researcher at Nokia. On my free time I write code for fun. π»
Currently focusing on the Lagrange Gemini client. I started working on Doomsday Engine in 1999 and somehow that project is still ongoing, too.
PGP public key fingerprint: 1567 4AE4 9866 7047 A3EB 9431 BACC FCFB 98DB 2EDC