• Pl chevron_right

      This Week in GNOME: #259 Color Management

      news.movim.eu / PlanetGnome • 9 hours ago • 12 minutes

    Update on what happened across the GNOME project in the week from July 17 to July 24.

    GNOME Core Apps and Libraries

    Image Viewer (Loupe)

    Browse through images and inspect their metadata.

    Sophie (she/her) says

    Image Viewer (Loupe) now shows color management information for an image if available. This is either the description of the embedded ICC profile or a summary of the used CICP .

    Sophie’s work is funded by the GNOME Fellowship program. You can support the fellowship program via a donation .

    7d87f01f2831b26ecacb39d9ed0b61979eebb5a82080682535444021248_loupe-color-info.CcPGgDQB_ZHqfdH.webp

    Glycin

    Sandboxed and extendable image loading and editing.

    Sophie (she/her) reports

    When creating new images, glycin now supports automatically converting the provided texture memory format to a format supported by the targeted image format. This feature can be controlled via Creator::set_transform_memory_format . As a result, glycin is now aware of the supported memory formats for all image formats. This information is now available via ImageEditorConfig::creator_memory_formats .

    Metadata support has been extended by also loading XMP (Extensible Metadata Platform) data for GIF, TIFF, and WebP images.

    Sophie’s work is funded by the GNOME Fellowship program. You can support the fellowship program via a donation .

    GNOME Shell

    Core system user interface for things like launching apps, switching windows, system search, and more.

    Zelda Ahmed 🏳️‍⚧️ 🐀💙💜🩷 announces

    After 6 months and many hard rebases, GNOME Shell has taken the first step to make the screenshot selection UI more accessible to disabled users, by implementing keyboard navigation to resizing and moving the screenshot selection rectangle. The navigation works similar to resizing and moving windows in Mutter using the keyboard, including holding Alt to move the selection, and holding Shift or Control moves/resize the selection rectangle more/less than the default, and a new shortcut on the R key to reset the selection area.

    This work makes it easy to get the exact area you want to screenshot as easy as possible. Next up is getting the area selection status to be reportable by our screen reader.

    This would not have been possible without Hari Rana and Lukáš Tyrychtr testing and Florian Müllner’s reviewing and answering my questions here at GUADEC, and all the people who have sponsored me financially. Thank you to all of you for helping!

    Python Bindings (PyGObject)

    Python language bindings for GNOME platform libraries.

    Arjan reports

    PyGObject 3.57.0 has been released. It’s the first development release (it’s not available on PyPI) in the current GNOME release cycle.

    The main achievements are:

    • Simplification of the marshaller code
    • We’re now using GObject-linter to keep our code clean(er)
    • On Windows, in most cases libraries can now be automatically found, and do not require applications to call os.add_dll_directory() .

    All changes can be found in the Changelog.

    This release can be downloaded from Gitlab and the GNOME download server . If you use PyGObject in your project, please give it a spin and see if everything works as expected.

    GNOME Circle Apps and Libraries

    Brage Fuglseth (he/him) announces

    This week Tally by Victoria Lacroix was accepted into GNOME Circle. Tally lets you keep, categorize, and organize a list of tally counters. Congratulations!

    084e874f6359fee241bc45cb38603f67988f77132078515038536073216_tally-banner.DgRdbzVb_12IQw2.webp

    Sepehr Rasouli announces

    Sudoku v1.8.0 is out!

    After a couple of months of development, this update adds automatic pencil mark placement (Shift + P), a mistake limit, the option to disable popovers, and many other fixes and improvements.

    Try the latest version on Flathub , and contributions are always welcome on GitHub !

    QftYEvoSRcfHiLGJMfNyQNxJ_image.DTAh3OlD_Z27FPff.webp

    ujHNYdJweaTNASXzJAmblkEN_image.Dnx-yX2d_hNPm7.webp

    pWYQICNLbhoxfJsIFMvGoPjT_image.D96geQTw_29vRDt.webp

    Shortwave

    Internet radio player with over 30000 stations.

    Felix reports

    I’m working on porting Shortwave to Windows and macOS, so you’ll be able to use your favorite radio player everywhere, no matter which operating system you use. But porting an application to a new platform is much more than getting it to build.

    To make it feel at home on each platform, it also needs to integrate properly with the platform itself. That means using platform-specific APIs for things like media controls, so playback can be controlled with the keyboard media keys or through the system media controls. This week I implemented support for the macOS “Now Playing” and Windows “SystemMediaTransportControls” APIs.

    Stay tuned for more updates!

    cc43ec76d9311170292664b505535a908ba0a3b32080732064646168576_image.Cxjq8QRl_1tFLqz.webp

    7a26c2065ddabbe3ed7d37a4369fbce80e65055b2080731501980286976_image.CH00Pjdr_Z1jbSL8.webp

    Third Party Projects

    Robert Wolff says

    I am happy to present to you Censor , the PDF document redaction tool for GNOME. It allows you to draw black rectangles and permanently remove text and images below them. It does not rasterize the censored documents and saves them in their original quality.

    After past releases extensively improved security of redaction , release v0.9.0 with the title “Preparing for the blackout” concentrates on draft and UI features. You can now save drafted redactions to the PDF document or export them to a JSON file, which may serve as a template for future redaction sessions. Censor’s welcome screen was revised with “Open…” pill button and drop-file support. Its keyboard shortcuts dialog was migrated to Adwaita classes. On top of that, you may now censor in fullscreen mode.

    Find Censor on Flathub , its source at Codeberg , and translations at Codeberg Translate !

    Tanay Bhomia says

    Whisp: New Slate mode, Official Nix packaging support.

    Whisp, the minimalist gesture-driven scratchpad, has been updated to version 1.3.8! This release focuses on creating a completely distraction-free environment and improving declarative system support.

    Here is what’s new:

    Slate Mode: Users can now press Alt+S to instantly hide all UI elements and header bars, turning Whisp into a perfectly clean, floating text area on the desktop. NixOS Support: Whisp now includes an official Nix Flake and a Home Manager module for native, declarative installations. Smarter Expansions: The line-sorting text expansions (::sort_lines_alpha, etc.) are now section-aware. Markdown headings are strictly anchored in place, ensuring your lists are sorted without breaking the structure of your note. Rewrote the internal configuration architecture to cleanly separate static preferences from volatile application state, ensuring flawless execution on read-only file systems.

    Download : https://flathub.org/apps/io.github.tanaybhomia.Whisp Donate : https://tanaybhomia.github.io/Whisp/donate.html

    Nathan Perlman announces

    Rewaita v1.1.4 is now available! After 3 months, the tool for customizing Adwaita and GNOME Shell has gotten an update.

    Firstly, GTK4, Firefox CSS and GNOME Shell theming got general improvements where there should be more consistency; the ‘tint wallpaper’ algorithm has also been improved so that the results will be faster and more precise. Some new additional customization options are also available, and GDM is now also supported. Accent colors should be visually the color you have selected as opposed to sometimes just being wrong. Lastly, I’ve added CLI interactions so you can add Rewaita into your scripts if you would like.

    Sadly, integrated adw-gtk3 support has been canned due to causing too many issues. There are still ways to set it up which I will have available on the Github repository.

    You can download this release on Flathub or the AUR . Thanks, and I can’t wait to see your creations on r/GNOME and r/Unixporn!

    Anton Isaiev reports

    RustConn is a connection manager for SSH, RDP, VNC, SPICE, Telnet, and Zero Trust sessions built with GTK4/libadwaita.

    The 0.19.x cycle brings an embedded web browser, MPTCP, and compatibility fixes.

    Embedded Web Browser (WebKitGTK 6.0). Web protocol connections now render inside RustConn tabs. Per-connection persistent sessions, credential autofill, JavaScript toggle, custom user agent, zoom persistence, split view support, navigation toolbar. Gated behind the web-embedded feature (default on Linux).

    Multipath TCP. Per-connection toggle for SSH, embedded RDP and VNC. Seamless mobility between Wi-Fi and Ethernet without dropping sessions. Falls back to regular TCP when the kernel lacks MPTCP support.

    FreeRDP 3.26+ compatibility. All connection parameters now go into an ephemeral args file (the only thing on the command line is /args-from:file:). Also hides hostname and username from /proc//cmdline.

    Other changes:

    • Option to hide the Welcome tab at startup
    • VPN connect/disconnect no longer kills healthy SSH sessions (probes sockets first)
    • Fixed SSH MPTCP using a non-existent OpenSSH option (now uses mptcpize run)
    • Fixed RDP clipboard syncing even when disabled in connection settings
    • RDP certificate mismatch shows a dialog instead of silently failing
    • Improved SSH password auto-fill reliability with a polling timer

    Full changelog: https://github.com/totoshko88/RustConn/blob/main/CHANGELOG.md Homepage: https://github.com/totoshko88/RustConn Flathub: https://flathub.org/apps/io.github.totoshko88.RustConn

    iZUUUCGApyBkzhSuZjWFZldB_%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F.CxpjGghi_1BFD5d.webp

    Fractal

    Matrix messaging app for GNOME written in Rust.

    Kévin Commaille announces

    A regression in Fractal 14 meant that display names could not be changed in account settings anymore for some servers. Fractal 14.1 was just released to address this issue. Thanks to Jack S. for discovering it soon after the 14 release!

    This version is available right now on Flathub .

    If you want to help us avoid regressions like that in the future, you could use Fractal Nightly . You could even get rid of our remaining bugs yourself!

    Shell Extensions

    Arnis (kem-a) says

    Kiwi Menu adds compact, macOS-inspired quick menu that keeps your most common session actions like sleep, restart, shut down, lock, and log out one click away. It is aimed at people moving from macOS who want that familiar Apple-menu workflow on GNOME, without a big configuration surface or getting in the way of the desktop you already use.

    The latest releases v1.6.4 now adds many new small features and polish:

    • Force Quit Applications - a macOS-style dialog listing running apps with live CPU and memory usage, so you can quickly kill a broken app.
    • About This PC - a standalone window showing your hardware details alongside the GNOME Shell version.
    • Custom menu item - with custom icon and keyboard shortcut.
    • Configurable keyboard shortcuts - bind the custom item and other actions with proper keyboard shortcuts.
    • Wider, better-spaced menu with added symbolic icons.

    Install it from GNOME Extensions or get it from GitHub . Pairs nicely with Kiwi (is not Apple) .

    ghHTcvsDrZryTCkilQesZEPu_ScreenshotFrom2026-07-21edited-3.CpbvjK5a_Z1HJJmV.webp

    Christian W reports

    GNOME’s multi-monitor wallpaper support has always felt strangely limited: one background across every display, with no real control over each monitor. So I built Wallshuffle.

    It lets you:

    • Set a different wallpaper on every monitor and workspace
    • Shuffle wallpapers automatically on a configurable timer (nice to run through your holiday pictures for example)
    • Assign specific static images to individual displays
    • Choose a separate rendering mode per monitor: Zoom, Fit, Centre, Fill, Tile, Span or Stretch
    • Load wallpapers from a local folder or several online image sources
    • Use one matching image across all monitors when you prefer consistency, you can scale it across also
    • You can define specific wallpapers per workspace also
    • It supports GNOME Shell 46 through 50.

    I built it because I wanted my multi-monitor setup to feel like one intentionally designed workspace rather than several screens sharing the same oversized background.

    Install it here: https://extensions.gnome.org/extension/10449/wallshuffle/

    Source code here: https://github.com/cwittenberg/wallshuffle

    It’s still fairly new, so feedback is especially welcome from people with unusual monitor layouts or specific usecases.

    VxZaMgYJiIsJWTgtTRxFRAeY_ScreenshotFrom2026-07-2409-11-45(1).2gHzaL1I_Zhgzdm.webp

    zIkHTRsVsbfgKzOCBfFeuAvM_output_iphone_1.875x.BBg9uxBi_2iSp7n.webp

    Arnis (kem-a) reports

    Kiwi Menu adds compact, macOS-inspired quick menu that keeps your most common session actions like sleep, restart, shut down, lock, and log out one click away. It is aimed at people moving from macOS who want that familiar Apple-menu workflow on GNOME, without a big configuration surface or getting in the way of the desktop you already use.

    The latest releases v1.6.4 now adds many new small features and polish:

    • Force Quit Applications - a macOS-style dialog listing running apps with live CPU and memory usage, so you can quickly kill a broken app.
    • About This PC - a standalone window showing your hardware details alongside the GNOME Shell version.
    • Custom menu item - with custom icon and keyboard shortcut.
    • Configurable keyboard shortcuts - bind the custom item and other actions with proper keyboard shortcuts.
    • Wider, better-spaced menu with added symbolic icons.

    Install it from GNOME Extensions or get it from GitHub . Pairs nicely with Kiwi (is not Apple) .

    Miscellaneous

    GNOME OS

    The GNOME operating system, development and testing platform

    Bilal Elmoussaoui reports

    oo7 0.7.0-alpha is out!

    oo7-daemon is getting closer to being production ready, with various fixes and improvements following its inclusion in GNOME OS. This release also introduces git-credential-oo7, a new git credential helper and a replacement for git-credential-libsecret.

    For more details, see https://github.com/linux-credentials/oo7/releases/tag/0.7.0.alpha .

    Damned Lies

    The internal application to manage localization of GNOME & friends modules

    Guillaume Bernard says

    GUADEC 2026 was a good opportunity to improve Damned Lies, our localization platform!

    Many changes were released since last week; most of them were inspired by conversations I had with other attendees and a few from the BoF that was organized on Sunday morning. Thank you all for taking this time to talk about internationalization and how we could make GNOME more accessible to non-English speaking people.

    Damned Lies received many new user experience improvements!

    • If you maintain a module, on the welcome page, you now see the list of modules you maintain. It will surely save you a few clicks.
    • It is now possible to download all the PO files for a given domain − so, all the translations, in all the languages, in a single archive.
    • Maintainers and coordinators of modules and teams are now always displayed. Dormant users were previously not shown, making it difficult to know who to contact.
    • Archived modules are no longer displayed with the active ones in the module list. They are now greyed out at the very bottom of the page.

    But also, I took time to implement a few new features that will help us prioritize translations and maintain consistency on Damned Lies!

    • We now detect archived repositories on GitLab, GitHub and Forgejo forges. Whenever a repository is archived on the forge, it becomes automatically archived on Damned Lies. This will save the time of translators who sometimes translated modules that were archived without our knowledge.
    • At GUADEC, some translators asked me for a way to know the priorities when translating. I added a priority flag on categories you see in a release so that you know now what to work on first. The priority categories will be soon set by the i18n and ready for GNOME 51!

    Also, it received some fixes:

    • The refresh of partial PO files was broken for some modules because of a bug that is now fixed.
    • We use custom ITS files (from polkit , shared-mime-info , appstream ) that we have tweaked to refine the xgettext extractions. Now, on startup, Damned Lies ensures these files are up-to-date prior to any new extraction. You might notice in a few modules that new strings appeared, mainly developer names.
    • When the committer is the only author, the committer is no longer mentioned in the commit message. - The internationalization team will no longer receive notifications for frozen but already archived releases; it sometimes caused us extra maintenance, receiving freeze break notifications for very old releases, especially when ITS files changed.

    309fb3903505e233dc28b3f8ad802ab5abbd1ff62079954015243730944_Captured%C3%A9crandu2026-07-2217-34-40.D7SffMzg_ZvUDIl.webp

    319883074f36aeffbed451451d2d265715a33e052079953998021918720_Captured%C3%A9crandu2026-07-2217-35-08.B8zHCRQD_Z1fFi6l.webp

    611defee03be6f8b90d97ac90178602283b855432079953981454417920_Captured%C3%A9crandu2026-07-2217-36-04.DaVfzf0m_Zq74Un.webp

    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!

    • Pl chevron_right

      Laureen Caliman: Intern Experience at GUADEC

      news.movim.eu / PlanetGnome • 13 hours ago • 3 minutes

    I would first like to mention and thank everyone for being so welcoming and open-minded to the interns and for the non-interns who also attended GUADEC for the first time. I hope to become a familiar face to everyone.

    The GNOME Foundation clearly goes out of their way to gather as many people as can attend to update the platform on updates and projects occurring within the ecosystem. This conference was hosted at the Facultade de Informática at the Universidade da Coruña, in A Coruña, Spain. Both me, and my fiancé, Michael Calabrese, received the GNOME travel grant, which chiefly covered our expenses of travel and accommodations.

    Conference

    All of the talks were informative and interesting to attend, however a couple that stood out to me were:

    One Daemon to Rule Them All: Cross-Desktop Credential Management with OO7

    OO7 is a Rust implementation of the Freedesktop Secret Service. It aims to replace the older GNOME Keyring and KWallet, with an actively maintained secret storage service that uses a unified API to precisely select credentials. The current keyring and wallet method stores all one’s information is stored in one single place, making it limiting when attempting to switch between different desktop environments. Instead, OO7 uses libsecret to encrypt individual pieces of information rather than an entire keyring. This allows specific credentials to be unlocked, while others stay locked.

    State of GNOME OS

    This talk highlighted recent improvements made to GNOME Operating System, particularly over the image-based development/system. Instead of updating packages one by one, you can get what was built and tested in a single update. One interesting thing about GNOME OS is its migration to mobile phones. This talk covered expanding hardware support and improving the testing in order to strengthen the migration and support to a span of devices.

    Intern Lightning Talks

    I had a talk myself too. Interns were given the opportunity to talk about their project and progress at that point in time. The intern lightning talk can be found here .

    GSOC

    Felipe Borges mentioned during an outreach and internship meeting that the intended purpose of Outreachy and Google Summer of Code (interning at GNOME in general) is to not only improve your current skills in programming, but to train you to become a maintainer for that repository your project is correlated with.

    I met my other mentor, Federico Mena Quintero, in person at the conference. Quintero welcomed me very openly, and offered to help me review my code and offer his perspective towards improving and the constraints of the vocab-crossword project. Quintero guided me towards writing unit tests for the existing backend functions that I wrote. All are welcome to look at what the progress on my project looks like, and review or comments are welcome towards any detail. This is the Gitlab MR that hosts the current backend.

    Outside of the Conference

    It is no doubt that the chosen city was wonderful. There was delicious seafood, traditional Spanish and Galician food, beautiful architecture, beaches, and lovely weather. The coordinators of GUADEC planned a dinner event that all attendees were welcome to. I went and had a great time listening to the stories and projects of members I hadn’t yet personally met. Members also individually coordinated get-togethers on the GUADEC Matrix channel, allowing for multiple options of gathering together at social events based on personal taste.

    Of course, the Spain vs. Argentina game was playing on one of the days of the conference, so I had to go! Like most European city centers, A Coruña set up a large screen in their main plaza to host a public viewing of the game. It was a very unique experience to chant with Spaniards, watch people pop champagne in excitement or groan loudly when distressed, and feel surrounded by the local culture.

    I would like to thank the GNOME Foundation for this overall experience and for giving me a shot as an intern, and Google Summer of Code for offering thorough and exceptional mentorship in open-source.

    More photos about our experience is linked to this Flikr .

    • Pl chevron_right

      Christian Hergert: ffi_call_plan caching for GLib

      news.movim.eu / PlanetGnome • 14 hours ago

    About a month ago Anthony Green added a novel “call plan” to libffi . This allows one to cache the hard work of determining what to do once and skip all of that work in subsequent calls. You can read more of the details on their article about it .

    The best case for me was about a 25% reduction in amortized overhead for GClosure invocation. In some less ideal situations it was still about a 10% reduction. Not bad!

    A merge request for GLib is here , though it will likely require some build system triage since it requires the newest libffi for CI to unblock it.

    I also patched libffi to add frame-pointers so I can unwind across ffi boundaries from the Linux perf unwinder. Very handy if you want, you know, to profile your system in a useful manner. And repeated testing here showed about the same (or shockingly less) overhead than the counter-parts. Modern CPU sure are interesting beasts.

    • Pl chevron_right

      Jiri Eischmann: How AI Is Changing Open Source

      news.movim.eu / PlanetGnome • 1 day ago • 11 minutes

    AI entered software development at full speed this year, and it is significantly impacting open-source projects as well. In this article, I discuss several trends I have recently observed in open source in connection with AI, and how these trends are changing the world of open-source software.

    This article was originally published on my Czech blog , but it received such an overhelming response that I decided to translate it into English and publish it here as well.

    Project Inflation

    One of the trends that AI brings in general is an explosion of content. Search results are filled with generated websites, and social networks are inundated with generated images and videos. Source code is no exception. Today, GitHub is drowning in an ever-increasing number of repositories.

    However, it is not as if a larger number of high-quality projects are being created. On the contrary, these are projects where you have no idea whether you can rely on them or not. In the past, if you stumbled upon a more extensive project with thousands of lines of code, there was a certain assumption that if someone went to the trouble of creating something like that, they would have some knowledge of the problem, a personal connection to their creation, and some willingness to maintain it going forward.

    You can no longer rely on this at all. Today, you can generate a project with several thousand lines of code in a matter of moments. It could be complete nonsense or even something dangerous; it could be something functional that someone generated for their own immediate needs and posted to GitHub, but with no interest in turning it into an open-source project. Because a repository with code doesn’t make an open-source project. The difference between a piece of code on GitHub and an open-source project is that an open-source project solves problems and use cases for its users, not just the author’s one-off need. And most authors of such quick-and-dirty code simply aren’t interested in doing that.

    This is clearly visible in projects like MeshCore , for instance. There are dozens of forks of everything imaginable. Missing a feature in the official MeshCore firmware? You just fork it, vibe-code the missing piece, and dump it on GitHub as MeshCore-UltimateEdition . The problem is that it was created with minimal effort, the author usually has no relationship to it, gets bored after a month, and it becomes abandonware before it even has a chance to age.

    About ten years ago, people started saying that the concept of Linux repositories had run its course. In the 2000s, they were practically the only source of Linux software. If a project didn’t make it into distribution repositories, it had a problem. But then the number of open-source projects grew at such a rate that distributions couldn’t keep up. Users had to start getting their software elsewhere, and software authors learned to do without distributions. Just a few years ago, the “everything I need, I find in Debian” approach seemed definitively dead.

    However, it is possible that curated software sources – like Linux distribution repositories – will make a comeback. The open-source software world is becoming so chaotic that users will once again start appreciating sources containing curated software that someone has vetted for them and that they can rely on six months down the road.

    Review Overwhelm

    Another trend that AI has triggered in open source is ‘review overwhelm’. Previously, writing code acted as a natural filter because it required a non-trivial amount of effort and time investment. That is now gone, making code creation fast and easy. But someone still has to review this code before it goes into serious production. The review processes that worked in open-source projects for years are now at their capacity limits.

    In GNOME 50, support for Google Drive was removed because nobody had been maintaining it for a long time. Users were naturally unhappy about it, and eventually, one user stepped up, re-added the support, and submitted it upstream to the gvfs project .

    A colleague responsible for maintaining that project lamented that it was a change involving 4,000 lines of code. Even though it seems to work at a basic level, it was clearly generated using AI. He will still have to go through it line by line to verify that it actually works as intended and meets the code quality standards required to commit to maintaining it long-term.

    Most of the effort has thus shifted from code creation to code review, which is typical for AI. The problem in open source, however, is that developers experienced enough to review and merge code were already a bottleneck before AI. Now, the problem has deepened significantly. And in the example above, my colleague can count himself lucky that the contributor is responsive and has shown long-term interest in the issue.

    Today, that is more of a rare exception. Common contributions consist of someone wildly vibe-coding something without any deeper interest or understanding of the subject, and throwing it over the wall to the maintainers.

    I have a fairly recent experience with this in Meshy . Someone submitted a pull request with 9,000 lines of changed code, which was supposed to add support for macOS. I spent an hour one evening doing a very quick review, and even during that short time, I ran into numerous issues: the code was blatantly AI-generated, several thousand lines were just completely useless replacements of single quotes with double quotes, parts of the code unrelated to the problem were modified, and it overwrote all the changes I had made in the main branch over the last few weeks.

    The author never responded to my comments and I never heard from him again. My takeaway was that even that one hour was too big of a time investment for contributions like that, and next time I will reject them much faster.

    Some projects are responding to this situation by tightening basic contribution requirements. For example, Flathub’s decision to reject AI-generated apps caused quite a stir. Many people criticized it as shooting themselves in the foot, but you have to look at their reality.

    Flathub currently hosts several thousand apps, with more added every day. Only three people handle the reviews. Although their review process is highly automated, they do it very thoroughly, and a lot of manual input is still required. It’s clear their goal isn’t just to spot the worst slop, but to maintain a relatively high standard of code hygiene. In the last six months, I submitted two apps to Flathub, and the review process ultimately contributed to improving the quality of the apps themselves.

    However, this has now clashed with the reality of people submitting completely vibe-coded apps without a shred of personal effort. The ticket template for requesting inclusion asks a few questions, including a requirement to upload a short video showing how the app works. It really isn’t demanding, and anyone can put it together in 15 minutes. Yet even that is too much effort for creators of AI slop.

    Instead of fulfilling these minimal requirements, some labeled it an attack on Linux’s freedom and immediately vibe-coded an alternative to Flathub that was supposed to be open to everyone. Unsurprisingly, it barely lasted a month.

    Not only do open-source maintainers lack the capacity to satisfy this demand for code review, but they are also losing the motivation to do it. Often, it would be faster for them to write the feature themselves, but the review process was historically how they cultivated new long-term contributors and potential successors. When someone sends you a vibe-coded contribution that cost them zero effort and which they likely don’t even understand, how do you expect to mentor them into a contributor who will help the project in the long run?

    Open-source software was never just about the end result; it was also about the process – where contributors build a relationship with the project and grow into someone who will eventually pass that on to others. This stands in sharp contrast to the world of AI, where it’s all about the result. As fast as possible, with as little effort as possible.

    Declining Motivation to Publish Code

    In the 1990s, Francis Fukuyama declared democracy and liberal economics to be the ultimate victors in the arrangement of the world order. Today, as democracy erodes globally and the existing economic order crumbles, that looks like a prematurely bold statement to say the least. Similarly, just a few years ago, impressed by the developments of the last few decades, some hailed open source as the ultimate winner among software development models. Are we about to face a sobering reality check similar to Fukuyama’s thesis?

    Lately, I’ve been observing a subtle, yet present trend of stepping back from open-source development. One argument against open development I hear concerns the aforementioned review overload. For some projects, the costs associated with being overwhelmed by AI slop can outweigh the benefits of useful community contributions. They might still publish the source code for transparency’s sake, but they transform from an open-development project into an open-source, closed-development project. And those who don’t care as much about transparency may close off the source code entirely.

    Another argument against making source code public is the fear of license circumvention. Today’s LLMs train on source code regardless of its license and can then easily generate a similar solution that you can publish under whatever license you choose.

    This isn’t an issue for permissive licenses, as the author has already accepted that anyone can do practically whatever they want with the code. However, AI poses a direct threat to copyleft licenses like the GNU GPL. Authors usually choose these to ensure their work remains open forever and that anyone who uses it shares their improvements back with the community. If an LLM trains on a project you’ve worked on for years and then generates a very similar solution published under a proprietary license, it effectively bypasses this principle.

    Take MeshCore again as an example: the protocol itself and the firmware are open-source, but the clients are closed. Recently, it came to light in the community that a core team member secretly applied for the MeshCore trademark and started vibe-coding his own closed-source solutions based on the available code. MeshCore founder Scott Powell cited this as something that reaffirmed his decision to keep the client source code private. Specifically, he wrote:

    So, I see open source, in the age of AI, as offering up your blood, sweat and tears for others to rip-off, but in innumerable ways.

    We may disagree with Powell’s perspective, but it represents a legitimate stance that I see more and more often around me. I see lifelong open-source advocates – people who used to publish every last helper script because they wanted to share – who now keep those things to themselves, offering them to others only upon request. They have reasons similar to Powell’s.

    Open source also grew out of the need to share. Writing code was hard; maintaining it was even harder. Why should everyone implement the same thing independently? Let’s join forces in an open-source project, write a shared library, and everyone can benefit from the results. The infrastructure powering the Internet today was built on this foundation. But AI is suppressing this need.

    For instance, I encounter opinions that WordPress is dead because “I can just easily generate my own CMS.” In my view, that severely underestimates what an open-source project actually provides. It is so much more than just writing code, and this strategy of swapping a dependency on an open-source project for a dependency on an LLM might not pay off in the long run.

    Nevertheless, the reliance on shared open-source components has indeed decreased to some extent. AI might not replace everything, but why depend on a large external library when you don’t even need 10% of its functionality, if AI can quickly rip off that 10% for you after learning from the original library? And once you have your own implementation, why would you contribute improvements back to a shared open-source project?

    The final argument against publishing source code that I’ve been hearing lately is security. Granted, I’ve heard this argument throughout the two decades I’ve been involved in open source, but it has never been this loud. For years, critics have claimed that open source is insecure because it allows attackers to study the code and hunt for vulnerabilities. In response, open-source advocates argue that security through obscurity is not real security and that open-source software is safer because “given enough eyeballs, all bugs are shallow.”

    Today, however, open-source projects are literally flooded with security vulnerability reports generated by AI. The volume is so unprecedented that it is genuinely easy to fall into the trap of believing closed code is safer. It’s interesting to note that while news headlines cover how many bugs AI has found , they rarely mention how many security bugs AI has fixed . Fixing them still requires a deep understanding of the codebase and is still done by human programmers. And just like reviewing pull requests, it is overwhelming their capacity.

    In this case, though, I believe it’s just a temporary trend. Open-source projects will eventually wade through these security reports, the general security of maintained open-source software will improve, and the ecosystem will benefit in the end. As for the other trends mentioned in this article, it’s hard to say. I’m not quite as unconditionally optimistic there.

    • Pl chevron_right

      Michael Meeks: 2026-07-23 Thursday

      news.movim.eu / PlanetGnome • 1 day ago

    • Tech. planning call, sync with Caolan, lunch with J. Pleased to be mentioned in the Irish Parliament - go Ireland!
    • Really pleased to see Collabora Online 26.04 released for customer use: the foundation of another year of development and improvement. Thanks to our partners for supporting our press release , and for our customers and partners for funding much of the awesome team that create a slew of fun new features alongside the community.
    • Pl chevron_right

      Felipe Borges: On Planet GNOME and personal opinions

      news.movim.eu / PlanetGnome • 1 day ago

    Putting on my Planet GNOME editor hat for a quick PSA!

    Planet GNOME is a convenient aggregator for personal blogs by members of our community. While all content must follow our Code of Conduct , the views expressed in these posts are solely those of the individual authors.

    They don’t represent or reflect the opinions of the GNOME Project as an entity or community.

    To help highlight this, we’ve added a “Voices of the community” tagline to the website header. It links directly to our “Add feed” section, which also emphasizes that Planet collects the latest posts from personal blogs.

    Enjoy the personal insights and variety of perspectives!

    • Pl chevron_right

      Michael Calabrese: GUADEC 2026

      news.movim.eu / PlanetGnome • 2 days ago • 4 minutes

    When Felipe first emailed us about the GUADEC 2026 travel grant, we were thrilled to learn that we were going to have the opportunity to attend the conference in person.

    This was my first GUADEC, and it was a pleasure to meet the GNOME community and put faces to names. The conference was held in A Coruña, Spain, which turned out to be an amazing city with great food, friendly people, and beautiful views along the coast.

    GUADEC 2026 A Coruña

    Community

    The first thing I would like to mention was how patient and open the community was to both my fiancée Laureen and me. We knew going into the conference that we were much more junior than many of the developers attending, but everyone was incredibly approachable.

    I received a great deal of help debugging issues in my local development environment, as well as guidance on some of the more difficult parts of my GSoC project.

    GUADEC 2026 Dinner A Coruña

    Talks

    The talks were very informative and I took way too many notes to include them all here without turning this into a novel. That said, I wanted to write a short summary of a couple of talks that I found interesting:

    Varlink for System Components

    Sebastian Wick gave a talk about modernizing the system component stack. His proposed idea for allowing more memory safety and zero cost abstractions was to write components in Rust, however this introduces the issue of introspection. For asynchronous functionality, Tokio and Glib both have main loops, and moving data between the loops can introduce a lot of overhead. GObject bindings can also make Rust's memory safety essentially moot.

    Sebastian spoke about potentially not using GObject in some cases, and instead exposing more functionality over IPC using Varlink. Varlink is language agnostic, and services could be consumed from many languages without requiring GObject bindings. This process also would be very simple, allowing signals to occur as JSON strings that are easily observable. This would require some new crates to replace Glib functionality, and some more complicated functionality like file thrashing and sftp could be particularly difficult.

    It is early, the ecosystem is still being built, but Sebastian argued that usage patterns will evolve and getting involved now will help shape the future of GNOME and Rust.

    Using GTK in C++ with Peel

    Sergey Bugaev hosted a workshop on using GTK from C++ with Peel. Peel is a library that allows you to use GTK in C++ to make GTK applications and widgets. Sergey made a simple widget that can draw using stylus input, and he walked us through the process of creating a simple application using Peel. The workshop was very informative.

    I really regret not coding his example myself, I wish a recording of the lecture had been taken. That said, his repo can be found at https://gitlab.gnome.org/bugaevc/peel and his readme has instructions for usage and a basic code example.

    Debugging with Tracy

    Ivan Molodetskikh gave a talk that seemed really handy to me about using Tracy to profile performance for Mutter, GNOME shell, and applications. I had never heard of Tracy before this talk, however the capabilities seemed very handy. Tracy visualizes "zones" on a timeline, allowing you to see exactly where execution time is being spent across threads. The Tracy zones must nest correctly, where parent zones cannot end before their child zones. It can also show where threads are waiting. This allows for a very clear visualization of where time is being spent in the application, and can help identify bottlenecks or bugs.

    The major downside to Tracy is that it requires a lot of setup, and the application must be compiled with the Tracy client library. Ivan gave a fairly in-depth breakdown of how to add Tracy profiling to an application, and I will go back to the recording of his talk to actually implement it in the future.

    Technical Take Aways for My Project

    • Sergey Bugaev helped me get the GIR generation for my C API working correctly. We also improved the FFI by exposing PitiviTimelineRuler directly in the public header rather than accepting a generic GtkWidget* and performing a runtime type check. This makes the API more type-safe and simplifies the Rust implementation. The GIR generation currently works after calling gtk::init() from pitivi_timeline_ruler_get_type() , but Sergey pointed out that this approach will likely fail in CI because the generated scanner shouldn't require GTK to be initialized this way. I'm still trying to build a solid mental model of how GIR generation and introspection work, so if anyone has experience with bindings, I'd love to hear your thoughts.

    • Federico also spent some time reviewing my project with me. He suggested refactoring PitiviTimelineRuler so all of the mutable drawing state lives inside a single RefCell rather than several individual ones, I think the result would look something like this:

    #[derive(Default)]
    struct DrawingState {
        cache: BTreeMap<...>,
        font: Option<...>,
        handler_id: Option<...>,
    }
    
    #[derive(Properties)]
    #[properties(wrapper_type = super::MyWidget)]
    pub struct MyWidget {
    
        #[property(get, set)]
        zoom_level: Cell<u64>,
    
        state: RefCell<DrawingState>,
    }
    

    Thanks to GNOME Foundation

    I want to give a special thanks to the GNOME Foundation for granting us the travel grant to attend GUADEC 2026. It was a wonderful experience and I look forward to attending future conferences in person!

    • Pl chevron_right

      Michael Meeks: 2026-07-22 Wednesday

      news.movim.eu / PlanetGnome • 2 days ago

    • Up early, sync with Stephan, Pranam, Laser, all-hands call, snatched lunch, Collabora quarterly mgmt meeting.
    • Published the next strip: An interview with Maurice: digging into organizations
    • Pleased to see FLOSS Weekly Episode 879: Collabora published - great to chat with Jonathan.
    • More quarterly management meeting until late. Poked at a potential child setup thread delay in COOL at the same time. J. cleared shed and garage in the evening for final sealing coat.
    • Pl chevron_right

      Sam Thursfield: 22nd July 2026

      news.movim.eu / PlanetGnome • 2 days ago • 3 minutes

    I got funding from my employer to attend the GNOME conference, and one of the requirements is that I write a “conference report” mail with a summary of what I got out of it.

    I’m going to share that email here, with a bit of extra context. If you’re reading my blog — you’re either quite involved in GNOME, or maybe you know me personally and don’t have much of a clue why I go on about gnomes all the time. This email was written for an audience which is largely software engineers, many with an interest in open source and many using GNOME to do their work, but relatively few who are actively developing desktop software or participating as volunteers in big open source projects.



    I’m just back from the GNOME project’s annual meetup. This year it was in A Coruña (near my adopted home town Santiago), where the University has a functioning Linux user group ( GPUL ) and 5 members did an amazing job as the local organizing team.

    The conference is open to GNOME users and anyone interested in open computer interfaces, but it tends towards *intra-project* communication since its the one time that everyone in GNOME gets into a single place.

    Given that, the talk I’m going to recommend is part 2 of the GNOME Foundation AGM:
    https://www.youtube.com/live/Q4O7dhreLDU?si=eGxbIIq3TkVtuty1&t=6739

    If you’ve been in the software world more than 5 minutes you’ll know that high quality code doesn’t go on trees, and if you’ve been involved in any kind of community-led initiative you’ll know that volunteers do not just appear out of nowhere either. GNOME provides a nice interface to use your computer, but also an independent legal entity that is funded and managed by its members, with membership open to anyone who participates actively in the project, and a Board of Directors elected democratically from the membership.

    This part of the AGM was mainly presented by Allan Day, he is primarily a UI designer working at Red Hat but has also dedicated a lot of energy to the non-profit Foundation during a series of quite turbulent years, and for the last year was acting as President of the foundation.

    Some highlights from the presentation if you don’t want to watch the whole thing:

    • There are now nearly 1,000 recurring monthly donations from individuals via the “Friends of GNOME” program.
    • This allows running a year-long “Fellowship” initiative which will fund the work of two long-time volunteer contributors .
    • The Foundation has successfully cut expenses in the last 2 years, including reducing the number of paid staff, and balanced its budget in the short term.
    • Many of the people currently running the Foundation are overworked and dealing with burnout.
    • There needs to be an active effort to maintain and increase the number of monthly donors for the project to survive.

    This kind of management work might seem dry, but its really an essential part of any project with more than a handful of members, and I think Allan’s intuitions as a designer meant that the presentation was a lot more informative and accessible to outsiders than your average AGM.

    Of course, GUADEC is also a good place to find a subset of the Freedesktop SDK community. I did a lightning talk about my mission to allow swapping out the shell & utilities in Freedesktop SDK:
    <https://www.youtube.com/live/Q4O7dhreLDU?si=DFHAFHJxnG8j7SLh&t=26403> . And we landed this branch in time for FDSDK 26.08, which is good news for those of us building operating systems with FDSDK and BuildStream.

    There is plenty more to watch in the videos if you’re interested in open source desktop and mobile software… including some talks by Abderrahim and some workshops run by Javier, but I’ll leave them to highlight what happened in those 😉

    Thanks as always to Codethink for sponsoring us to attend.