Some subscriptions are better without the web links. πŸ˜‰

Coming in v1.8.

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. πŸ–¨

Show thread

Working on much more flexible fonts for 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 v1.7:

gemini://skyjake.fi/gemlog/202
gmi.skyjake.fi/gemlog/2021-09_

See the release announcement for all the details. Just uploaded v1.7.0 to git.skyjake.fi and GitHub, download while it's hot! πŸ”₯

A foggy September morning turned into a gorgeous sunny afternoon. My favorite time of the year to snap some pics.

A little teaser: in the upcoming v1.7, you can finally organize your bookmarks into folders.

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.

Show thread

A first step toward multiple windows in : 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!

codeberg.org/skyjake/smol-emoj

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).

Show thread

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.

Show thread

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.

Show thread

Fancy a custom UI theme? 😎

In v1.6, UI colors can be customized via a config file.

v1.5 is now available with several UI improvements.

gmi.skyjake.fi/gemlog/2021-05_
gemini://skyjake.fi/gemlog/202

- 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...

Working on improvements to the Lagrange text input widget. Word wrapping and multiple lines make a world of difference for writing a bit of text.

I've updated the Gempub support in Lagrange's dev branch. The new split modes are also pretty handy here... @nytpu @oppen

Show older

skyjake's choices:

skyjake.fi

skyjake's personal Mastodon instance