Gioverse news

December 2022 - Text Selection and RSS

First up, I'd like to thank Egon Elbre for implementing an RSS feed for these newsletters. You can find that feed if you prefer to consume content via feeds.

November 2022 - Bidirectional text is eating the world

It's seemingly been a quiet month in the Gio project. Not many patches have landed in our repos, and one might almost think that nothing was happening. However, this quiescence is actually the result of Elias and I iterating heavily on Gio's upcoming text API. Adding both font fallback and bidirectional text support to Gio has stretched our text abstractions to the breaking point, so we've had to rethink them this month. That work has primarily been on the gio-patches mailing list, so you won't have seen it unless you're subscribed.

October 2022 - Mipmaps and text patches

This month Elias upgraded our handling of image scaling by automatically generating mipmaps for all images. This ensures that images look good when downscaled, and also boosts performance when downscaling images. You don't need to make any application changes to take advantage of this new feature.

September 2022 - Font fallback is coming

Elias is settling into a new place in Central America, and is starting to turn a critical eye towards Gio's layout system. He's exploring ways to make Gio layout more flexible, to solve , and to reduce the boilerplate of writing Gio code. There's no concrete proposal to share yet, but I look forward to hearing what comes of this exploration.

August 2022 - Boiling away dependencies

This month one of the biggest changes was Egon Elbre's work to eliminate many of Gio's transitive dependencies. He did this by rewriting significant parts of the text segmentation library that we use, as well as figuring out the proper dance to update us to the multi-module version of The results are a go.sum with 500 fewer lines, and Gio binaries that are 1.5MiB smaller.

July 2022 - Editor Enhancements

This month saw a number of small-but-useful improvements to widget.Editor, including the ability to filter characters, enforce a maximum length, and built-in support for undo/redo. Additionally, numerous subtle event processing bugs were ironed out.

April 2022 - io/key changes

As many of you know, Fyne and Gio together ran a "Go GUI Developer Survey" recently, and Andy from Fyne has published the results here:

March 2022 - Complex script support

Elias spent the last month reviewing my text work, improving widget focus traversal, and improving many small details about core. In particular, there is now a nix-based development environment for gio available in core's flake.nix file. For details on nix, see:

February 2022 - pointer.CursorNameOp renamed to pointer.Cursor

Elias implemented focus traversal for Gio interfaces this month. This enables users to navigate between focusable widgets (buttons, editors, etc) with actions like pressing tab. This single feature has a huge impact on the ease of using Gio for entering data into form fields and general keyboard navigation.