call_end

    • chevron_right

      Michael Meeks: 2025-04-08 Tuesday

      news.movim.eu / PlanetGnome • 8 April

    • Quickish planning call, partner sales call. Kate, James & Penelope over for lunch - caught up with them.
    • Multi-partner call later in the afternoon, dinner, mail chew - feeling somewhat unwell oddly.
    • Richard published the first pod-cast, Open Matters - around Document Formats featuring yours truly geeking out on some technical details underneath documents:
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-04-08.html

    • chevron_right

      Michael Meeks: 2025-04-07 Monday

      news.movim.eu / PlanetGnome • 7 April

    • Mail chew, sync with Miklos, Chris & Gokay, the marketing team, Naomi, Pedro & Eloy.
    • Intermittent patch review, call with Anna, dinner.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-04-07.html

    • chevron_right

      Christian Hergert: Foundry.DocumentationManager

      news.movim.eu / PlanetGnome • 7 April • 3 minutes

    Back in December (before I caught the flu working at a farmers market, then Covid two weeks later, then two months of long-Covid) I mentioned that we’d discuss the various subsystems needed in libfoundry to build an IDE as a library.

    I used the little bit of energy I had to work on some core abstractions. In an effort to live up to my word lets talk a bit about what went into libfoundry last night.

    There is now a DocumentationManager sub-system which handles documentation installed on the host system, chroots, and Flatpak SDKs. It’s a bit tricky to make this all work without blurring the lines of abstraction so lets cover how that works.

    Generally speaking, we try to avoid plugins depending on other plugins. Sometimes it happens but usually it is an opportunity to make a better abstraction in libfoundry. Lets look at what is needed around documentation.

    • We have many SDKs and they all might have documentation available at different locations.
    • We primarily have one format we need to support in GNOME, which is the venerable Devhelp2 XML format serving as an index.
    • SDKs might contain the same documentation but at different versions (Nightly vs GNOME 48 vs jhbuild for example)
    • There may be more formats that matter in the future especially as we look at pulling in support for new languages.
    • Adding new search capabilities shouldn’t break the API.
    • Querying needs to be fast enough to update as you type.

    So lets dive into the abstractions.

    DocumentationManager

    This is the core abstraction you start interfacing with. It is a service of the FoundryContext and therefore can be accessed with Foundry.Context:documentation-manager property.

    The documentation manager manages the Foundry.DocumentationProvider plug-in abstractions. Plug-ins that which to contribute to the documentation pipeline must subclass this in their plug-in.

    To query documentation, use Foundry.DocumentationManager.query() . As I noted earlier, I don’t want new capabilities to break the API so a Foundry.DocumentationQuery object is used rather than a sequence of parameters which would need to be modified.

    Avoiding Formats in the API

    Since we want to be able to support other documentation formats in the future, it is important that we do not force anything about devhelp2 XML into the core abstraction.

    The core result object from queries is a simple Foundry.Documentation object. Like above, we want to avoid breaking API/ABI when new capabilities are added so this object serves as our abstraction to do so. Navigating a tree structure will live here and can be implemented by plug-ins through subclassing.

    Additionally, a “devhelp” plug-in provides support for crawling the devhelp2-style directories on disk. But this plug-in knows nothing about where to find documentation as that is relevant only to the SDKs.

    This is where the Foundry.DocumentationRoot object becomes useful. SDK plug-ins can implement DocumentationProvider in their plug-in to expose documentation roots. The host-sdk , jhbuild , and Flatpak plug-ins all do this to expose the location of their documentation.

    Now the devhelp plug-in can be provided the information it needs for crawling without any knowledge of SDKs.

    Fast Querying

    The old adage is that the only way to go faster on a computer is to do less work. This is particularly important in search systems where doing an entire query of a database means a lot of wasted CPU, memory, and storage I/O.

    To make querying fast the devhelp plug-in indexes information about SDKs in SQLite. Way back in Builder we’d avoid this and just make an optimized fuzzy search index, mmap that, and search it. But now days we’ve gone from one set of documentation to multiple sets of documentation across SDK versions. The problem domain explodes quite a bit. SQLite seemed like a nice way to do this while also allowing us to be lazy in our searching.

    By lazy what I mean is that while we’ll start your query, we only retrieve the first few results from the cursor. The rest are lazily fetched as the GListModel is scanned by scrolling. As that is not a very common operation compared to typing, you can throw away a lot of work naturally while still sitting behind the comfortable GListModel interface.

    What now?

    Since libfoundry already supports SDK management (including Flatpak) you could probably re-implement Manuals in a week-end. Hopefully this also breaks down a bit of the knowledge used to build such an application and the deceptive complexity behind doing it well.

    This should also, hopefully soon, allow us to share a documentation implementation across Builder, Manuals, and an upcoming project I have which will benefit from easy access to documentation of object properties.

    • wifi_tethering open_in_new

      This post is public

      blogs.gnome.org /chergert/2025/04/07/foundry-documentationmanager/

    • chevron_right

      Brage Fuglseth: Keypunch 6.0

      news.movim.eu / PlanetGnome • 4 April • 4 minutes

    Spring is in the air, the snow is finally melting away here in the cold north, and Keypunch is getting an update! Let’s walk through all the new features and improvements together.

    Realistic Results

    Up to now, Keypunch’s measurements of typing performance have been rather primitive. For speed, it has just compared the total number of typed characters, both correct and incorrect, to the test duration. Likewise, the “correctness” rate is nothing more than the share of correctly typed characters at the time of calculation. If you make a mistake and then correct it, it’s not taken into account at all.

    These calculations are easy to understand and interpret, but also flawed and potentially misleading. The one for speed in particular has caused some pretty ridiculous result screens because of its uncritical counting. Needless to say, this is not ideal.

    I’ve gone a little back and forth with myself on how to move forward, and ended up overhauling both of the calculations: For speed, Keypunch now counts how many correct characters there are at the end of the test, while the correctness rate has been replaced with real accuracy, based on all operations that have changed the typed text rather than just the final result.

    An overview of the new result calculations An overview of the new result calculations

    The new calculations come with their own trade-offs, such as the incentive to correct mistakes being slightly reduced. In general, however, I view them as a change for the better.

    Frustration Relief

    Learning to type is awfully hard. At least it was for me; sometimes it felt like I wasn’t even in control of my own fingers. This made me furious, and my number-one coping mechanism was to go berserk with my keyboard and mash random keys in frustration. As one might guess, this did not help me progress, and I probably should just have gone for a walk or something instead.

    To safeguard the poor souls who come after me, I’m introducing something I call frustration relief . The concept is simple: If Keypunch detects that you’re randomly mashing your keyboard, it will cancel the test and provide a helpful piece of life advice.

    Frustration relief in action Frustration relief in action

    I can’t understate how much I wish I had something like this a couple of years ago.

    Input Improvements

    Being a text-centric app with multi-language support, Keypunch inevitably has to work with the many intricacies of digital text input. This includes the fact that the Unicode standard contains more than a dozen different space characters. For a while, Keypunch has supported entering regular spaces in the place of non-breaking ones, and now the same is possible the other way around too. Notably, this is a significant improvement for users of the francophone BÉPO keyboard layout.

    New Languages

    Keypunch’s international community has been hard at work lately, and I’m happy to report a solid upturn in language support. For text generation, these languages have been added:

    • Catalan
    • Dutch
    • Estonian
    • Greek
    • Indonesian
    • Slovak
    • Persian

    This brings the total language count up to 38! Does Keypunch support your language yet? If not, feel free to open a language request .

    A preview of the extended language support A preview of the extended language support

    On the interface translation side, Keypunch has enrolled in GNOME’s common translation system, Damned Lies , allowing it to benefit from the coordinated and high-quality work of GNOME’s translation teams. Since the last update, Keypunch has been translated into these languages:

    • Catalan
    • British English
    • Persian
    • Finnish
    • Indonesian
    • Kabyle
    • Slovak
    • Slovenian
    • Chinese

    Thanks to everyone who is helping make Keypunch speak their language!

    Platform Progression

    This Keypunch release is based on GNOME 48 , which brings a bunch of external platform goodness to the app:

    • The latest Adwaita styling
    • Better adherence to the system font settings
    • Improved performance
    • An “Other Apps” section in the About dialog
    The new "Other Apps" section in the About dialog The new “Other Apps” section in the About dialog

    While not directly part of the runtime, Keypunch will also benefit a lot from the new Adwaita Fonts . It’s exciting to build on such a rapidly improving platform.

    Additional Artwork

    Apparently, some people are keeping Keypunch in their game libraries . If you’re one of them, I’ve made a couple of assets to make Keypunch integrate better visually with the rest of your collection. Enjoy!

    Circle Inclusion

    Keypunch is now part of GNOME Circle ! I’m happy and grateful to have another app of mine accepted into the program. For full transparency, I’m part of the Circle Committee myself, but Keypunch has been independently reviewed by two other committee members, namely Tobias and Gregor . Thanks!

    Final Thoughts

    That’s it for this update. Initially, I was planning on just doing a platform/translation bump now and holding off the headline features for an even bigger update later on, but I decided that it’s better to ship what I have at the moment and let the rest wait for later. There’s still more on the roadmap, but I don’t want to spoil anything!

    If you have questions or feedback, feel free to mention me on Mastodon or message me on Matrix.

    Oh, and if you’d like to support my work, feel free to make a donation ! I’d really appreciate that.

    • wifi_tethering open_in_new

      This post is public

      blogs.gnome.org /bragefuglseth/2025/04/05/keypunch-6-0/

    • chevron_right

      Brage Fuglseth: Keypunch 6.0

      news.movim.eu / PlanetGnome • 4 April

    Spring is in the air, the snow is finally melting away here in the cold north, and Keypunch is getting an update! Let’s walk through all the new features and improvements together. Realistic Results Up to now, Keypunch’s measurements of typing performance have been rather primitive. For speed, it has just compared the total number […]
    • wifi_tethering open_in_new

      This post is public

      blogs.gnome.org /bragefuglseth/2025/04/05/keypunch-6-0/

    • chevron_right

      This Week in GNOME: #194 Nineteen Years Old

      news.movim.eu / PlanetGnome • 4 April • 3 minutes

    Update on what happened across the GNOME project in the week from March 28 to April 04.

    GNOME Core Apps and Libraries

    GLib

    The low-level core library that forms the basis for projects such as GTK and GNOME.

    Philip Withnall reports

    Sam James and Jakub Jelinek fixed a 19-year-old race condition in GClosure in GLib, when they initially thought they were out to fix a gcc optimisation bug! https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4575

    GNOME Circle Apps and Libraries

    Video Trimmer

    Trim videos quickly.

    Ivan Molodetskikh says

    I released Video Trimmer v25.03, moving the trimming options from the save dialog into the main UI. This makes them more discoverable and allows for better visual feedback down the line.

    Identity

    Compare images and videos.

    Ivan Molodetskikh reports

    Identity v25.03 is out with a minor visual refresh for GNOME 48: now using a toggle group for the display mode switcher in the main menu.

    Amberol

    Plays music, and nothing else.

    Emmanuele Bassi announces

    Amberol 2025.1 is out. Not many changes, this time, except for an update in the dependencies to use the latest GNOME 48 run time, and the new release of Lofty , the metadata parsing library. This last update should fix various recent issues with malformed fields inside MP3 files.

    Third Party Projects

    nokyan says

    Resources 1.8 has been released, featuring support for new hardware such as the Raspberry Pi’s GPU and quality of life changes like type-to-search.

    In addition, Resources can now display the link type and speed of GPUs, drives and network interfaces as well as the combined memory and swap usage in the Apps and Processes views in a new column.

    Last but not least, Resources is now built using the new GNOME 48 runtime, showing off its new sleek colors when using its dark theme.

    As always, the update is available on Flathub . Enjoy!

    JumpLink reports

    My first app Learn 6502 Assembly is now available on Flathub! This application provides a complete learning environment for 6502 assembly language programming.

    The app features an interactive tutorial with step-by-step guidance, a code editor with syntax highlighting, an integrated assembler and debugger showing registers and memory in real-time, and a visual game console to see your code in action.

    The application is built with GJS and TypeScript, fully supports Adwaita, and works on both desktop and mobile Linux devices.

    Available on Flathub Code on GitHub

    youpie reports

    Iconic V2025.3.2 , is out! Iconic is an application that allows you to add images to folders, to help you differentiate them better. It also has support for changing the icons according to the system accent color. Which makes it look great in combination with Adwaita-colors

    Sebastian Wiesner reports

    A new release of Turn On is available. With this release Turn On now finds web interfaces on devices and links them in the UI.

    Turn On is a small GNOME utility to turn on remote systems such as NAS devices with Wake On LAN magic packets. It’s available from Flathub .

    Cleo Menezes Jr. announces

    Aurea 1.6 has been released with the GNOME 48 runtime and now includes translations for Brazilian Portuguese, Turkish, Georgian, and Italian.

    Get Aurea on Flathub

    Phosh

    A pure wayland shell for mobile devices.

    Guido reports

    Phosh 0.46.0 is out:

    Phosh now allows to set a lockscreen wallpaper, it automatically closes status pages when closing the top panel and shows a spinner when updating the list of Wi-Fi networks in quick settings. There’s better cutout/notch support for devices with e.g. a camera in the indicator area and one can now also tweak the maximum haptic feedback strength (and disable it completely).

    There’s more, see the full details at here

    That’s all for this week!

    See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!

    • chevron_right

      Michael Meeks: 2025-04-02 Wednesday

      news.movim.eu / PlanetGnome • 2 April

    • Up early, enjoyed some KubeCon keynotes.
    • Published the next strip: the state of the roads - quality and usage (or re-purposing) of software.
    • Quite a startling scale of conference. Caught up with GregKH & Griffin, wandered the show floor meeting new people and trying to understand things.
    • Quick lunch with Jono, final hall walking, and trains home, poked at Chris' work to improve canvas rendering performance on the way here and there.
    • Home, dinner, band-practice with H. in the evening.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-04-02.html

    • chevron_right

      Michael Meeks: 2025-04-01 Tuesday

      news.movim.eu / PlanetGnome • 1 April

    • Up early, dropped to the station early by J. Off into London for Kubecon - after various train failure and extra hacking time - evenutally arrived.
    • Met up with Joshua Lock. Enjoyed a series of lightning talks; very digestible - despite my rather superficial K8s understanding; lots of new FLOSS brands and apparently complicated things for managing complexity. Been a while since I've seen things like Kueue as a brand.
    • Got a bit more hacking done, caught up with Mirko Boehm, out to the House of Kube party from PlatCo - who kindly fed and watered lots of hackery types, with some ear-drum banging noises too.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-04-01.html

    • chevron_right

      This Week in GNOME: #193 Image Loading

      news.movim.eu / PlanetGnome • 28 March • 4 minutes

    Update on what happened across the GNOME project in the week from March 21 to March 28.

    GNOME Core Apps and Libraries

    Glycin

    Sandboxed and extendable image loading and editing.

    Sophie 🏳️‍🌈 🏳️‍⚧️ (she/her) reports

    Glycin, the newish image loading and editing library, now supports specifying the memory format for image data an API user needs. If glycin is used with GTK, this has always been taken care of automatically. However, for other use cases, it’s now possible to specify a limited set of formats the API user supports. Support for loading image data from a GInputStream or GFile instead of GFile has also landed.

    These features are important to adopt glycin in other areas in the quest to replace GdkPixbuf to make image loading more safe and enable more features like HDR image support and support for more image formats.

    You can financially support my work or drop by and submit a code contribution.

    GNOME Development Tools

    Sysprof

    A profiling tool that helps in finding the functions in which a program uses most of its time.

    Georges Stavracas (feaneron) announces

    Sysprof is now able to filter samples by marks. This allows for statistically relevant data on what’s running when a specific mark is ongoing, and as a consequence, allows for better data analysis. You can read more here .

    GNOME Builder

    IDE for writing GNOME-based software.

    Nokse says

    This week Arduino support for GNOME Builder has been merged , providing integration with arduino-cli to compile and upload sketches to Arduino compatible boards. The new feature will be available in Builder Nightly and includes a graphical interface for managing libraries and platforms and selecting compilation/upload options. It also provides a template to start a new Arduino project. Note that you need to have arduino-cli installed to use this feature. If you encounter any issues, please go ahead and file them.

    GNOME Circle Apps and Libraries

    Brage Fuglseth (he/him) says

    This week Bustle was accepted into GNOME Circle. Bustle lets you visualize and analyze D-Bus activity with detailed sequence diagrams. Congratulations!

    Warp

    Fast and secure file transfer.

    Fina announces

    Warp 0.9 was released with support for directly sending files via “Open With…” from Files. QR code scanning has also seen improvements, by utilizing the new QR code feature in Camera.

    Eyedropper

    Pick and format colors.

    FineFindus reports

    Eyedropper 2.1.0 has been released, featuring

    • RGB decimal notation
    • support for global shortcuts
    • a new way to directly enter colors, without picking them first

    Download the new version on Flathub .

    Third Party Projects

    Bilal Elmoussaoui says

    I have released a new version of oo7-cli , with the possibility to interact with the sandboxed applications keyrings or any keyring file on your system.

    oo7-cli --app-id com.belmoussaoui.Authenticator list
    

    The CLI also features a new CLI argument for attempting to repair a broken keyring (always backup your keyring file before).

    JumpLink says

    TypeScript type definitions for GNOME Shell 48 released

    The TypeScript type definitions for GNOME Shell 48 have been updated!
    This release brings improved TypeScript support for writing GNOME Shell extensions.

    Based on the latest version of ts-for-gir :
    v4.0.0-beta.23

    Project page:
    gjsify/gnome-shell

    Note: This release was published shortly after the TWIG deadline,
    so it will appear in next week’s edition.

    Capypara reports

    Introducing Field Monitor , a remote-desktop client focused on accessing virtual machines.

    It has first-class support for adding Proxmox or QEMU/KVM hypervisors but it can also connect to any server implementing one of the SPICE, RDP or VNC protocols.

    It can also open RDP or Virt Viewer files.

    This is the first release and it might still be a little rough around the edges in some parts, so any and all feedback is more than welcome :).

    Field Monitor is powered by RDW , a set of remote-desktop widgets for GTK 4. I want to thank Marc-André Lureau, the author, since without them this app would not be possible!

    Sebastian Wiesner reports

    Picture Of The Day is a new app to get a picture of the day as your daily wallpaper, from NASA Astronomy Picture of the Day , Bing , Wikimedia , or Simon Stålenhag artwork .

    Preview images, pick your favorite source, enable automatic updates, and enjoy a fresh wallpaper every day.

    Available on Flathub .

    Fractal

    Matrix messaging app for GNOME written in Rust.

    Kévin Commaille reports

    It’s the beginning of bee season! 🌸🌺🌼 🐝 B like beta! Here’s Fractal 11.beta:

    • New shortcuts Ctrl + Page Up and Ctrl + Page Down go to the previous/next room in the list
    • The media cache will now be periodically cleaned up
    • The page that lists user sessions has been overhauled, with details moved to subpages, for a less cluttered feel, and paving the way to a new feature!
    • A couple of small cosmetic changes have landed as well

    As usual, this release includes other improvements, fixes and new translations thanks to all our contributors, and our upstream projects.

    It is available to install via Flathub Beta, see the instructions in our README .

    As the version implies, there might be a slight risk of regressions, but it should be mostly stable. If all goes well the next step is the release candidate!

    If you have a little bit of time on your hands, you can try to fix one of our newcomers issues . Anyone can make Fractal better!

    Events

    Kristi Progri reports

    We’re excited to announce that registrations for GUADEC are now open! https://events.gnome.org/event/259/registrations/

    If you are planning to attend our event (in-person or online) now it’s the time to get your ticket!

    That’s all for this week!

    See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!