Update on what happened across the GNOME project in the week from August 15 to August 22.
Sandboxed and extendable image loading and editing.
Sophie (she/her) announces
Glycin 2.0.beta.3 has been released. Among the important changes are fixes for thumbnailers not working in certain configurations, loading speed for JPEG XL having been dramatically improved, fixed sandbox rules that broke image loading on some systems, and fixed editing for some JPEG images saved in progressive mode.
A simple backup tool.
Michael Terry announces
Déjà Dup 49.beta was released! It just fixes a few small bugs and uses the new libadwaita shortcuts dialog.
But if you haven’t tried the 49.x branch yet, it has a big UI refactor and adds file-manager-based restore for Restic backups.
Read more details and install instructions in the previous 49.alpha announcement. Thanks for any testing you can do before this reaches the masses!
Mir Sobhan announces
We forked the TWIG website and forged it into a “good first issue” tracker. It catches all GNOME-related projects on GitHub and GNOME GitLab to show issues labeled “good first issue” or “Newcomers.” This can help newcomers find places to contribute including myself.
Website: https://ggfi.mirsobhan.ir Repo: https://gitlab.gnome.org/misano/goodfirstissue
Džeremi says
Chronograph gets a BIG new 4.0 update!
What is Chronograph?
Chronograph is an app for syncing lyrics, making them display like karaoke in supported players. It comes with a beautiful GTK4 + LibAdwaita interface and includes a built-in metadata editor, so you can manage your music library along with syncing lyrics. Default LRC files can be published to the large lyrics database LRClib.net, which is widely used by many open-source players to fetch lyrics. Until now, Chronograph supported only line-by-line lyrics, which was enough for most cases since standard LRC is the most common format. But times change…
Word-by-Word support!
Starting August 24th, Chronograph will gain support for Word-by-Word syncing. This feature uses the eLRC format (also known as LRC A2 or Enchanted LRC). In eLRC, each word has its own timestamp, allowing players that support it to animate lyrics word-by-word, giving you a true karaoke experience. And this is just the beginning: future updates will also bring support for TTML (Timed Text Markup Language).
Final notes
I hope you’ll enjoy using the latest version of Chronograph, and together we can spread awareness of eLRC to the wider community. Sync lyrics of your loved songs! ♥️
Nathan Perlman announces
Rewaita — Give Adwaita some flavour
Hi there, a few weeks ago I released Rewaita, a spiritual successor to Gradience. With it, you can recolour GTK4/Adwaita apps to popular colour schemes. That’s where the name comes from ~ Re(colour Ad)waita.
As of v1.0.4, released this week, you can create your own custom colour palettes if the ones we provide don’t suit you, and you can also change the window controls to be either coloured or MacOS-styled.
You can find it on Flathub, but also in the AUR and NIXPKGS (the Nix Package is still under review).
Rewaita is also going through rapid development, so any help would be appreciated, or just leave us a star :). In particular, GTK3 and Cinnamon support are next up on the chopping block.
JumpLink says
ts-for-gir - TypeScript bindings for GObject Introspection
This week we’ve released a major improvement for GObject interface implementation: Virtual Interface Generation.
Instead of having to implement all methods of a GObject interface, developers can now only implement the virtual methods (
vfunc_*
). This matches the actual GObject-Introspection pattern and makes interface implementation much cleaner.Before (implement all methods):
class CustomPaintable implements Gdk.Paintable { // Implement all methods manually get_current_image(): Gdk.Paintable { ... } get_flags(): Gdk.PaintableFlags { ... } get_intrinsic_width(): number { ... } // ... and many more }
After (only virtual methods):
class CustomPaintable implements Gdk.Paintable.Interface { // Declare for TypeScript compatibility declare get_current_image: Gdk.Paintable["get_current_image"]; declare get_flags: Gdk.Paintable["get_flags"]; // Only implement virtual methods vfunc_get_current_image(): Gdk.Paintable { ... } vfunc_get_flags(): Gdk.PaintableFlags { ... } }
We’ve created a comprehensive example: https://github.com/gjsify/ts-for-gir/tree/main/examples/virtual-interface-test
This shows both
Gio.ListModel
andGdk.Paintable
implementations using the new pattern.Release: v4.0.0-beta.35 and v4.0.0-beta.36
Note: Last week we also released v4.0.0-beta.34 which introduced Advanced Variant Types by default, completing the gi.ts integration with enhanced TypeScript support for
GLib.Variant.deepUnpack()
and better type inference for GObject patterns.
See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!
“This Week in GNOME” is available to the entire GNOME community. No matter if core, circle or third-party project - we are interested in all news! Simply share your news in our Matrix Room!
Send Message