call_end

    • 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!

    • chevron_right

      Christian Hergert: Fiber cancellation in libdex

      news.movim.eu / PlanetGnome • 27 March • 2 minutes

    With GNOME 48 I released libdex 0.10 on the march towards a 1.0. One of the major improved features there was around fiber cancellation.

    I’m not going to go into detail about the differences between threads and fibers as wikipedia or your local CS department can probably help you there. But what I will say is that combining __attribute__((cleanup)) (e.g. g_autoptr() ) with futures and fibers makes such a nicer experience when writing C.

    Thread cancellation is a rather non-portable part of the threading stack across platforms. Some POSIX platforms support it, some don’t. Having safe places to cancel can be a real challenge even if you are depending on a threading implementation that can do it.

    With fibers, we have a natural cancellation point due to the cooperative nature of scheduling. All (well behaved) fibers are either making progress or awaiting completion of a future. We use the natural await() points to implement cancellation. If everything that was awaiting the future of the fiber has been cancelled, then the fiber can naturally cancel too. The next time it awaits that will just happen and natural exit paths will occur.

    When you don’t want cancellation to propagate, you still use dex_future_disown() like always (as the fiber itself is a future).

    Just to give a quick example of how fibers and futures makes writing C code nicer, here is an excerpt from libfoundry that asynchronously implements the necessary phases to build/run your project with a specific tool, possibly on a non-local system. In the GNOME Builder IDE, this is a series of async callbacks that is extremely difficult to read/debug. But with Foundry using libdex, it’s just a few lines of code and every bit as non-blocking.

    From foundry-run-manager.c .

    g_autoptr(FoundryDeployStrategy) deploy_strategy = NULL;
    g_autoptr(FoundryBuildProgress) progress = NULL;
    g_autoptr(GSubprocess) subprocess = NULL;
    GError *error = NULL;
    
    if (!(deploy_strategy = dex_await_object (foundry_deploy_strategy_new (state->pipeline), &error)) ||
        !dex_await (foundry_deploy_strategy_deploy (deploy_strategy, state->build_pty_fd, state->cancellable), &error) ||
        !dex_await (foundry_deploy_strategy_prepare (deploy_strategy, state->launcher, state->pipeline, state->build_pty_fd, state->cancellable), &error) ||
        !dex_await (foundry_run_tool_prepare (state->run_tool, state->pipeline, state->command, state->launcher, state->run_pty_fd), &error) ||
        !(subprocess = foundry_process_launcher_spawn (state->launcher, &error)))
      return dex_future_new_for_error (error);
    

    At each dex_await*() function call the fiber is suspended and we return to the main loop for additional processing.

    In a better world we’d be able to do these without fibers and instead do stackless coroutines. But maybe with a little compiler help we can have that too.

    • wifi_tethering open_in_new

      This post is public

      blogs.gnome.org /chergert/2025/03/27/fiber-cancellation-in-libdex/

    • chevron_right

      GNOME Foundation News: GUADEC 2025 Registrations are Open!

      news.movim.eu / PlanetGnome • 27 March • 1 minute

    The GNOME Foundation is thrilled to share that registration for GUADEC 2025 is now open!

    GUADEC is the largest annual gathering of GNOME developers, contributors, and community members. This year we welcome everyone to join us in the beautiful city of Brescia, Italy from July 24 th to 29 th or online! For those who cannot join us in person, we will live-stream the event so you can attend or present remotely.

    To register, visit guadec.org and select whether you will attend in person or remotely.
    In-person attendees will notice a slight change on their registration form. This year we’ve added a section for “Registration Type” and provided 4 options for ticket fees. These costs go directly towards supporting the conference and helping us build a better GUADEC experience.
    We ask that in-person attendees select the option they are most comfortable with. If you have any questions, please don’t hesitate to reach out to us at guadec@gnome.org .

    Register for In-Person Attendance
    Register for Remote Attendance

    The Call for Participation is ongoing but once are talks are selected you will find speaker details and a full schedule on guadec.org . We will also be adding more information about social events, accommodations, and activities throughout Brescia soon!

    We are still looking for conference sponsors. If you or your company would like to become a GUADEC 2025 sponsor, please take a look at our sponsorship brochure and reach out to us at guadec@gnome.org .

    To stay up-to-date on conference news, be sure to follow us on Mastodon @gnome@floss.social .

    We look forward to seeing you in Brescia and online!

    • wifi_tethering open_in_new

      This post is public

      foundation.gnome.org /2025/03/27/guadec-2025-registration-is-open/

    • chevron_right

      GNOME Foundation News: GUADEC 2025 Registration is Open!

      news.movim.eu / PlanetGnome • 27 March • 1 minute

    The GNOME Foundation is thrilled to share that registration for GUADEC 2025 is now open!

    GUADEC is the largest annual gathering of GNOME developers, contributors, and community members. This year we welcome everyone to join us in the beautiful city of Brescia, Italy from July 24 th to 29 th or online! For those who cannot join us in person, we will live-stream the event so you can attend or present remotely.

    To register, visit guadec.org and select whether you will attend in person or remotely.
    In-person attendees will notice a slight change on their registration form. This year we’ve added a section for “Registration Type” and provided 4 options for ticket fees. These costs go directly towards supporting the conference and helping us build a better GUADEC experience.
    We ask that in-person attendees select the option they are most comfortable with. If you have any questions, please don’t hesitate to reach out to us at guadec@gnome.org .

    Register for In-Person Attendance
    Register for Remote Attendance

    The Call for Participation is ongoing but once are talks are selected you will find speaker details and a full schedule on guadec.org . We will also be adding more information about social events, accommodations, and activities throughout Brescia soon!

    We are still looking for conference sponsors. If you or your company would like to become a GUADEC 2025 sponsor, please take a look at our sponsorship brochure and reach out to us at guadec@gnome.org .

    To stay up-to-date on conference news, be sure to follow us on Mastodon @gnome@floss.social .

    We look forward to seeing you in Brescia and online!

    • wifi_tethering open_in_new

      This post is public

      foundation.gnome.org /2025/03/27/guadec-2025-registration-is-open/

    • chevron_right

      Robert Roth: GNOME Calculator updates

      news.movim.eu / PlanetGnome • 27 March • 3 minutes

    After a long time of low-maintenance (as in me being out of the picture and doing mostly releases and some trivial/not-so-trivial-but-quick fixes here and there) period for GNOME-Calculator, it's time to reveal what's happening behind the scenes.

    Long-story short, pretty late in the 48 cycle two contributors popped up to breathe some life into GNOME Calculator, so much, that I had a pretty hard time keeping track of the merge requests piling up. So most of the kudos for the below-mentioned features go to fcusr and Adrien Plazas , and I hope I will manage to list all of them, and it would be great to have folks using the Nightly Calculator (current development version from flatpak gnome-nightly repo)  to help spot issues/requests in time to be fixed for 49.

    So now the features:

    Conversion mode


    Based on several user requests and the work of fcusr , conversion UI was moved to a separate "mode". Important thing to note here, that conversions using keyboard-only are still possible (e.g. typing 1 kg in g yields the r
    esult) in any mode, Conversion view is just a UI/button/touch-friendly way of doing the conversions without typing, similarly to what we had previously in the advanced mode.

    UI cleanup, styling and touch improvements

    Both Adrien and fcusr worked on simplifying the UI-related code, dropping old/unnecessary styling, tweaking the looks of buttons, improving the access to toggles/switches to make Calculator easier to use with functions grouped, styled in a meaningful way.

    The interface was also "optimized" for smaller screens/touch devices, namely function buttons which up until now only entered the function name to save you some typing will work with some text selected to insert brackets around the selection and add the function.

    New functions and constants

    For anyone needing them, new functions have been added:

    • greatest common divisor ( e.g. using gcd (456;1584;40;60) yields 4 as a result)
    • least common multiple ( e.g. using lcm (456;1584;40;60) yields 150480 as a result)
    • combination (e.g. using ncr (9;5) yields 126 as a result)
    • permutation (e.g. using npr (9;5) yields 15120 as a result)
    • common constants are now available from the memory button (also used for accessing variables)

    Favorite currencies

    As the list of available currencies for conversion is already huge, scrolling through the currency list for selecting currencies in case you have multiple ones you are used to convert between (given that the last currencies you used should be persisted) is harder, currencies can  be marked as Favorites using the preferences section for Favorite currencies, and the selected ones will appear on top of the currency selector.

    GNOME exchange API

    Given that we are occasionally having issues with the exchange rate providers (site not being available, site not accepting our user-agent) rendering Calculator currency conversions broken (or even worse, in some cases freezing Calculator completely) the decision was taken to host our own exchange rate API, and with the help of the folks in the GNOME Infrastructure team we have a GNOME exchange API, which will be used for exchange rate retrieval.

    The relevant project is available at https://gitlab.gnome.org/Infrastructure/xchgr8s.

    For now, this is basically a static mirror of the providers used so far in Calculator (hence the URL change can be "backported" to any calculator version easily), which does fetch the exchange rates once a day from all providers, and commits them to the repository, from where it will be served via gitlab pages + GNOME reverse proxy + CDN.

    This way we have control over the format we provide, we can do any processing on the exchange rates fetched from the external sources, and we can update the currency providers in GNOME Calculator however we want as long as they use one of the formats provided by the exchange-API, be it an existing format or a completely new one added to exchange API.

    This was a first step towards fixing a 10-year old, GNOME bugzilla-reported bug still open, but I would say we're on the right track.

    That's all for now, keep up the good work.

    • chevron_right

      Robert Roth: GNOME Calculator updates

      news.movim.eu / PlanetGnome • 27 March • 3 minutes

    After a long time of low-maintenance (as in me being out of the picture and doing mostly releases and some trivial/not-so-trivial-but-quick fixes here and there) period for GNOME-Calculator, it's time to reveal what's happening behind the scenes.

    Long-story short, pretty late in the 48 cycle two contributors popped up to breathe some life into GNOME Calculator, so much, that I had a pretty hard time keeping track of the merge requests piling up. So most of the kudos for the below-mentioned features go to fcusr and Adrien Plazas , and I hope I will manage to list all of them, and it would be great to have folks using the Nightly Calculator (current development version from flatpak gnome-nightly repo)  to help spot issues/requests in time to be fixed for 49.

    So now the features:

    Conversion mode


    Based on several user requests and the work of fcusr , conversion UI was moved to a separate "mode". Important thing to note here, that conversions using keyboard-only are still possible (e.g. typing 1 kg in g yields the r
    esult) in any mode, Conversion view is just a UI/button/touch-friendly way of doing the conversions without typing, similarly to what we had previously in the advanced mode.

    UI cleanup, styling and touch improvements

    Both Adrien and fcusr worked on simplifying the UI-related code, dropping old/unnecessary styling, tweaking the looks of buttons, improving the access to toggles/switches to make Calculator easier to use with functions grouped, styled in a meaningful way.

    The interface was also "optimized" for smaller screens/touch devices, namely function buttons which up until now only entered the function name to save you some typing will work with some text selected to insert brackets around the selection and add the function.

    New functions and constants

    For anyone needing them, new functions have been added:

    • greatest common divisor ( e.g. using gcd (456;1584;40;60) yields 4 as a result)
    • least common multiple ( e.g. using lcm (456;1584;40;60) yields 150480 as a result)
    • combination (e.g. using ncr (9;5) yields 126 as a result)
    • permutation (e.g. using npr (9;5) yields 15120 as a result)
    • common constants are now available from the memory button (also used for accessing variables)

    Favorite currencies

    As the list of available currencies for conversion is already huge, scrolling through the currency list for selecting currencies in case you have multiple ones you are used to convert between (given that the last currencies you used should be persisted) is harder, currencies can  be marked as Favorites using the preferences section for Favorite currencies, and the selected ones will appear on top of the currency selector.

    GNOME exchange API

    Given that we are occasionally having issues with the exchange rate providers (site not being available, site not accepting our user-agent) rendering Calculator currency conversions broken (or even worse, in some cases freezing Calculator completely) the decision was taken to host our own exchange rate API, and with the help of the folks in the GNOME Infrastructure team we have a GNOME exchange API, which will be used for exchange rate retrieval.

    The relevant project is available at https://gitlab.gnome.org/Infrastructure/xchgr8s.

    For now, this is basically a static mirror of the providers used so far in Calculator (hence the URL change can be "backported" to any calculator version easily), which does fetch the exchange rates once a day from all providers, and commits them to the repository, from where it will be served via gitlab pages + GNOME reverse proxy + CDN.

    This way we have control over the format we provide, we can do any processing on the exchange rates fetched from the external sources, and we can update the currency providers in GNOME Calculator however we want as long as they use one of the formats provided by the exchange-API, be it an existing format or a completely new one added to exchange API.

    This was a first step towards fixing a 10-year old, GNOME bugzilla-reported bug still open, but I would say we're on the right track.

    That's all for now, keep up the good work.

    • chevron_right

      Georges Basile Stavracas Neto: A Sysprof enhancement

      news.movim.eu / PlanetGnome • 26 March

    I’ve blogged in the past about how WebKit on Linux integrates with Sysprof, and provides a number of marks on various metrics. At the time that was a pretty big leap in WebKit development since it gave use a number of new insights, and enabled various performance optimizations to land.

    But over time we started to notice some limitations in Sysprof. We now have tons of data being collected (yay!) but some types of data analysis were pretty difficult yet. In particular, it was difficult to answer questions like “why does render times increased after 3 seconds?” or “what is the CPU doing during layout?”

    In order to answer these questions, I’ve introduced a new feature in Sysprof: filtering by marks.

    • Screenshot of Sysprof's Marks view with the cursor hovering a mark, and the context menu with "Set as Filter" visible over the mark Select a mark to filter by in the Marks view
    • Screenshot of Sysprof's Time Profiler view showing filtered CPU samples Samples will be filtered by that mark

    Hopefully people can use this new feature to provide developers with more insightful profiling data! For example if you spot a slowdown in GNOME Shell, you open Sysprof, profile your whole system, and filter by the relevant Mutter marks to demonstrate what’s happening there.

    Here’s a fancier video (with music) demonstrating the new feature:

    Enjoy!

    • wifi_tethering open_in_new

      This post is public

      feaneron.com /2025/03/26/a-sysprof-enhancement/

    • chevron_right

      Georges Basile Stavracas Neto: A Sysprof enhancement

      news.movim.eu / PlanetGnome • 26 March

    I’ve blogged in the past about how WebKit on Linux integrates with Sysprof, and provides a number of marks on various metrics. At the time that was a pretty big leap in WebKit development since it gave use a number of new insights, and enabled various performance optimizations to land.

    But over time we started to notice some limitations in Sysprof. We now have tons of data being collected (yay!) but some types of data analysis were pretty difficult yet. In particular, it was difficult to answer questions like “why does render times increased after 3 seconds?” or “what is the CPU doing during layout?”

    In order to answer these questions, I’ve introduced a new feature in Sysprof: filtering by marks.

    • Screenshot of Sysprof's Marks view with the cursor hovering a mark, and the context menu with "Set as Filter" visible over the mark Select a mark to filter by in the Marks view
    • Screenshot of Sysprof's Time Profiler view showing filtered CPU samples Samples will be filtered by that mark

    Hopefully people can use this new feature to provide developers with more insightful profiling data! For example if you spot a slowdown in GNOME Shell, you open Sysprof, profile your whole system, and filter by the relevant Mutter marks to demonstrate what’s happening there.

    Here’s a fancier video (with music) demonstrating the new feature:

    Enjoy!

    • wifi_tethering open_in_new

      This post is public

      feaneron.com /2025/03/26/a-sysprof-enhancement/

    • chevron_right

      Michael Meeks: 2025-03-26 Wednesday

      news.movim.eu / PlanetGnome • 26 March

    • Crit-sit stand-up call, catch-up with Dave, last-stage interview.
    • Published the next strip: building for maintainability
    • Monthly all-hands call, sales call.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-03-26.html