22 Dec 2025

feedPlanet GNOME

Asman Malika: Everybody Struggles

There's a quiet assumption that once you're accepted into a program, an internship, or a new opportunity, things are supposed to click. That confidence should come automatically. That the struggle somehow ends at the door.

It doesn't.

Lately, my struggle has been feeling like I should already know more than I do.

I'm an intern working with a large codebase that was unfamiliar at first. On the surface, everything looked final, I read the documentation, followed discussions, and tried to understand the flow. But when I began contributing, I realized that understanding a codebase and working inside it are two very different things. Functions referenced other functions I had not seen. Libraries behaved in ways I didn't fully understand yet. I spent hours chasing what seemed like a simple issue, only to realize I misunderstood something basic.

What makes this harder isn't just the technical difficulty, it's the voice in my head. The one that says, "Everyone else gets this faster." The one that whispers, "You're behind." The one that asks, "What if I disappoint the people who believed in me?"

That voice is convincing. Especially when you're surrounded by smart people who ask sharp questions and navigate complex topics with ease. It's easy to compare your confusion to their clarity and conclude that the problem is you.

But here's what I'm slowly learning: struggling is not a sign of failure. It's a sign of being in the right place.Every time I get stuck, I'm forced to read more carefully. Every time I ask a question, I learn something I wouldn't have learned alone. Every mistake shows me how the system actually works, not how I assumed it worked. The struggle is uncomfortable, yes, but it's also doing real work on me.

I'm also learning the difference between struggling silently and struggling with support. When I finally ask for help, the response is rarely judgment. More often, it's reassurance: "Yeah, that part is confusing." Or, "I struggled with that too." Moments like that remind me that nobody arrives fully formed.

Everybody struggles. Even the people who look confident. Even the people whose code you admire. The difference isn't who struggles and who doesn't, it's who keeps going despite it.

So if you're in a place where things feel hard, where progress feels slow, where doubt shows up uninvited: you're not alone. This is part of learning. This is part of growing. And this, too, counts as progress.

22 Dec 2025 8:48pm GMT

Jussi Pakkanen: An uncomfortable but necessary discussion about the Debian bug tracker

Note: this post represents my personal opinions as a Debian maintainer of a single package (Meson). It is not my intention to throw anyone involved in the service under a bus, but some things about it are not good and need to be spoken aloud (in my opinion anyway, other people may disagree and that is fine).

There was a post called Configuring a mail transfert [sic] agent to interact with the Debian bug tracker on Planet Debian. It contained the following statement:

using an email client to create or modify bug reports is not a bad idea per se

Indeed it is not. However, using an email client as the only way of modifying bugs (which is how the Debian bug tracker works) is not only a bad idea, it is terrible idea. To me managing bugs is so awful that it is actively pushing me away from contributing to Debian. The bug statuses on Meson are not kept up to date because I prefer that to having to deal with the bug tracker. I suspect I am not alone in this. In any case it is a major hurdle for new developers and might even cause some people to drop out entirely [1].

Why is it like this?

The Debian bug tracker was originally implemented in 1993 or thereabouts. Pretty much everything IT related was different back then. Manipulating things via email actually made sense at the time. Sadly, the world changed completely but volunteers working on the bug tracker did not have the resources to update it [2]. The end result is a classical legacy system: one that works and does the thing it needs to do but which no new developer wants to touch.

Notable updates to the system would require major resources, which the project does not have.

FWICT there have been attempts to migrate the tracker to e.g. Bugzilla or Gitlab, but none of those has come even close to succeeding.

Why is the UX bad?

There is no web UI for manipulating bug data. Instead you write an email in a custom format, send that to a specific email address and wait for things to happen.

The main problem here is not the format as such, it is the fact that the user has to do the work of the computer:

I suspect most Debian developers who spend a lot of time on this have written their own custom scripts for their use cases. But having hundreds of ersatz tools for common tasks seems suboptimal.

As an extra cherry on the cake, the bug tracker will send you an email every! single! time! you edit or comment on any bug. Not only does the service waste your time by forcing you to write syntactically correct batch processing commands by hand, it also wastes it by forcing you to keep deleting spam [3].

How does security on the system work?

It doesn't. The email interface is 100% open. Anyone can send edit any bug in any way just by sending a suitably crafted email to the control address [3]. If a 4chan script kiddie would want to screw up the entire Debian bug repository, they could do so fairly easily.

There is an actual term for this approach: security through obscurity. The fact that the main bug tracker of the OS that runs the world does not have strict authentication in place does not fill me with warm fuzzies.

What would be a way forward?

A one-shot conversion to a different bug tracker is out of the question. Instead the situation could be improved incrementally, for example:

  1. Create a new web service that parses the existing bug data and displays it in a "rich" format.
  2. Update the UI so that registered users can change the state of the bug (close, duplicate, etc).
  3. Make the UI send a suitably formatted control email to the backend.
  4. Bless the new web service as an official way of editing bugs (hosted under debian.org and all that)
  5. Edit the backend service so it only accepts emails from the web UI and registered Debian developers and maintainers
  6. Change the backend to something else or improve it for the new UI [optional].

Steps 1 to 3 can be done by a single person or a small team. Since you (probably) don't have access to the backend service, you need to parse the bug state from the current tracker's status page (example here). That is a bit gnarly, but should be doable. If someone is looking for a personal project for the holiday season, this is something to consider.

Steps 4 to 6 would take months or years of full time work. Given that this approach was first suggested almost exactly 25 years ago, it is unlikely that resources for it would materialize out of thin air any time soon.

[1] My speculation.

[2] Also my speculation.

[3] You could use email filtering rules but that is again extra work for every user. A better option is not spamming (one thank-you email for new contributors is fine, more than that is not).

[4] Last time I checked at least. I have personally manipulated all sorts of bugs via email even before I was a Debian maintainer. No registration. No checks. Not even GPG signing.

22 Dec 2025 3:58pm GMT

21 Dec 2025

feedPlanet GNOME

Marcus Lundblad: Xmas & New Year's Maps


It's that time of year again in (Norther Hemisphere) winter when year's drawing to an end. Which means it's time for the traditional Christmas Maps blogpost.

Sometimes you hear claims about Santa Claus living at the North Pole (though in Rovaniemi, Finland, I bet they would disagree…). Turns out there's a North Pole near Fairbanks, Alaska as well:


😄

OK, enough smalltalk… now on to what's happened since the last update (for the GNOME 49 release in September).

Sidebar Redesign

Our old design when it comes to showing information about places has revolved around the trusted old "popover" menu design which has served us pretty well. But it also had it's drawbacks.

For one it was never a good fit on small screen sizes (such as on phones). Therefore we had our own "home-made" place bar design with a separate dialog opening up when clicking the bar to reveal full details.

After some discussions and thinking about this, I decided to try out a new approach utilizing the MultiLayout component from libadwaita which gives the option to get an adaptive "auxillary view" widget which works as a sidebar on desktop, and a bottom sheet on mobile.

Now the routeplanner and place information views have both been consolidated to both reside in this new widget.

Clicking the route button will now open the sidebar showing the routeplanner, or the bottom sheet depending on the mode.

And clicking a place icon on the map, or selecting a search result will open the place information, also showing in the sidebar, or bottom sheet.

Route planner showing in sidebar in desktop mode


Routeplanner showing in bottom sheet in mobile/narrow mode


Routeplanner showing public transit itineraries in bottom sheet


Showing place information in sidebar in desktop mode


Showing place information in bottom sheet in mobile mode


Redesigning Public Transit Itinerary Rendering

The displaying of public transit itineraries has also seen some overhaul.

First I did a bit of redesign of the rows representing journey legs, taking some queues from the Adwaita ExpanderRow style. Improving a bit compared to the old style which had been carried over from GTK 3.

List of journey legs, with the arrow indicating possibilty to expand to reveal more information


List of journey legs, with one leg "expanded" to show intermediate stops made by a train


Improving further on this Jalen Ng contributed a merge request implementing an improvement to the overview list utilizing Adwaita WrapBoxes to show more complete information the different steps of each presented itinerary option in the overview when searching for travel options with public transit.

Showing list of transit itineraries each consisting of multiple journey legs


Jalen also started a redesign of rendering of itineraries (this merge request is still being worked on).

Redesign of transit itinerary display. Showing each leg as a "track segment" using the line's color


Hide Your Location

We also added the option to hide the marker showing your own location. One use for this e.g. if you want to make screenshots without revealing your exact location.

Menu to toggle showing your location marker


And that's not All…

On top of this some other things. James Westman added support global-state expressions to libshumate's vector tile implementation. This should allow us to e.g. refactor the implementation of light and dark styles and language support in our map style without "recompiling" the stylesheet at runtime.

James also fixed a bug sometimes causing the application to freeze when dragging the window between screens when a route is being displayed.

This fix has been backported to the 49.3 and 48.8 releases which has been tagged today as an early holiday gift.

And that's all for now, merry holidays, and happy new year!

21 Dec 2025 10:56pm GMT

Aryan Kaushik: Introducing Open Forms

Introducing Open Forms!

The problem

Ever been to a conference where you set up a booth or attempt to get quick feedback by running around the ground and felt the awesome feeling of -

Meme showcasing wifi fails when using forms

While setting up the Ubuntu booth, we saw an issue: The Wifi on the Linux tablet was not working.

After lots of effort, it started to work, but as soon as we log into the captive portal, the chip fails, and no Wi-Fi is detected. And the solution? A trusty old restart, just for the cycle to repeat. (Just to be clear, the wifi was great, but it didn't like that device)

Meme showing a person giving their a child a book on 'Wifi drivers on linux' as something to cry about

We eventually fixed that by providing a hotspot from mobile, but that locked the phone to the booth, or else it would disconnect.

Now, it may seem a one-off inconvenience, but at any conference, summit, or event, this pattern can be seen where one of the issues listed listed above occurs repeatedly.

So, I thought, there might be something to fix this. But no project existed without being reliant on Web :(

The solution

So, I built one, a native, local first, open source and non-answer-peeking form application.

With Open Forms, your data stays on your device, works without a network, and never depends on external services. This makes it reliable in chaotic, un-reliable, or privacy first environments.

Just provide it a JSON config (Yes, I know, trying to provide a GUI for it instead), select the CSV location and start collecting form inputs.

Open Forms opening page

No waiting for WiFi, no unnecessary battery drains, no timeouts, just simple open forms.

The application is pretty new (built over the weekend) and supports -

Open Forms inputs Open Forms inputs continued

Planned features

But, any software can be guided properly only by its users! So, If you've ever run into Wi-Fi issues while collecting data at events, I'd love for you to try Open Forms and share feedback, feature requests, bug reports, or even complaints.

The repository is at - Open Forms GitHub The latest release is packaged as a flatpak.

21 Dec 2025 12:00am GMT

20 Dec 2025

feedPlanet GNOME

Engagement Blog: GUADEC 2026 will be held in A Coruña, Spain

We are happy to announce that GUADEC 2026 will take place in A Coruña, Spain, from July 16th to 21st, 2026.
As in recent years, the conference will be organized as a hybrid event, giving participants the opportunity to join either in person or online.

The first three days, July 16th-18th, will be dedicated to talks, followed by BoF and workshop sessions on July 19th and 20th. The final day, July 21st, will be a self-organized free exploration day.

While the GUADEC team will share ideas and suggestions for this day, there will be no officially organized activities. The call for proposals and registration will open soon, and further updates will be shared on guadec.org in the coming weeks.

Organizations interested in sponsoring GUADEC 2026 are welcome to contact us at guadec@gnome.org.

About the city:
Hosted on Spain's Atlantic coast, A Coruña offers a memorable setting for the conference, from the iconic Tower of Hercules, the world's oldest Roman lighthouse still in use, to one of Europe's longest seaside promenades and the city's famous glass-fronted balconies that give it the nickname "City of Glass."

20 Dec 2025 4:09pm GMT

19 Dec 2025

feedPlanet GNOME

Allan Day: GNOME Foundation Update, 2025-12-19

Welcome to this, the final GNOME Foundation update of 2025! This is an especially large update - there's been a huge amount happening recently, and it's also been three weeks since the last update. I hope you'll agree that, with this final update of the year, there's plenty to celebrate, as well as look forward to in the year ahead.

GNOME.Asia 2025!

Last week we had a very successful GNOME.Asia 2025 conference in Tokyo, Japan. Having been busy providing organizational support in the run up to the event, Kristi flew out to help the local team on the ground. The Foundation also provided travel sponsorship for 11 attendees, with help from the Travel Committee. I've heard that it was a great event with good attendance. For those who didn't attend I'm hoping that we'll have a more detailed report soon.

GNOME.Asia is an amazing success story. It's incredible to think that this event has been running for 17 years now, reaching out to communities and new audiences all over Asia. Huge thanks to the local organizing team for making this year's edition a success.

Also, thanks to our donors! GNOME.Asia receives funding from the Foundation in order to continue operating, and this event is therefore only possible due to the financial support that the GNOME Foundation receives.

Fundraiser

The GNOME Foundation had its first fundraising campaign in a long time this month. You can read the announcement here, and Cassidy wrote a great followup post. The campaign was relatively small in scope and was intended as a trial balloon for bigger efforts in the future, but it still did some good and resulted in an increase in donations. Huge thanks to the newly formed fundraising committee for working on this.

Those of us at the GNOME Foundation are deeply appreciative of each and every donation we receive, and are working hard to ensure that every dollar is put to good use. The funds we're receiving are making a real difference, allowing us to do things like increase the community travel budget for the current financial year, and plan new support programs that we would like to launch in the coming year.

Audit preparation

The GNOME Foundation is scheduled to have its first audit in early 2026. This is a routine event triggered by our relatively high income in the previous financial year, and there is currently a lot of activity happening in preparation. This includes new and revised policies that are currently in draft, a lot of work to improve the organization of our records, plus filling in a lot of forms that have been sent to us by the auditors. The written submissions for the auditors is due by mid-February so this is going to be a high priority for us until then.

I'm personally looking on the audit as a great opportunity to improve our processes and documentation, and the audit process is already feeding into other internal improvements that are underway.

Digital Wellbeing

The parental controls work that Philip, Ignacy and Sam have been working on is in the very very final stages now. I'm pleased to report that some of the last few elements of the screen time limits feature have been merged in the past few weeks, and the final remaining changes are currently in the merge queue. This is a vital feature for children and their carers, so it's excellent to see it being added to GNOME. Congratulations to the team on completing this project on time and on budget!

FOSDEM 2026 preparations

FOSDEM will happen in Brussels at the end of January, and the Foundation has a number of activities scheduled to happen around it. There will be a booth, which director Maria Majadas is in the process of organizing. There will also be one of our biannual Advisory Board meetings, for which we've booked the room and confirmed attendance. The Board is also planning to have a short hackfest prior to the conference, giving us an opportunity to meet face-to-face.

More things!

In addition to those larger items, there's good list of other notable events from the last three weeks:

That's it for another GNOME Foundation update, and also for 2025! I'm personally very happy with the Foundation's recent progress and achievements, and I'm looking forward to this work bearing fruit in 2026. Thanks for reading and for your interest, and please feel free to ask questions in the comments.

I'll be taking a break for a couple of weeks over Christmas and New Year, so the next update will likely be on January 9th.

19 Dec 2025 5:10pm GMT

This Week in GNOME: #229 Good Rhythm

Update on what happened across the GNOME project in the week from December 12 to December 19.

Third Party Projects

revisto reports

Drum Machine: Add Your Own Sounds!

Drum Machine 2.0.0 brought custom samples, you're no longer limited to the default sounds. Drag and drop your own audio files and they show up as new drum parts. You can reorder them by dragging, and each one can be mapped to a specific MIDI note so when you export to MIDI, it's clear which sound is which note.

The latest release adds a Reset to Defaults option that restores everything back to factory settings. The old Reset button is now called Clear and just clears the pattern while keeping your custom samples.

https://flathub.org/apps/io.github.revisto.drum-machine

https://github.com/Revisto/drum-machine

Gir.Core

Gir.Core is a project which aims to provide C# bindings for different GObject based libraries.

Marcel Tiede says

The final version of GirCore 0.7.0 got released. There are more APIs generated, bugs got fixed, dotnet 10 support was added, GdkWin32 bindings were added and more. See the release for an overview of all changes.

Shell Extensions

Mahyar Darvishi reports

Yet Another Radio, the GNOME extension for streaming internet radio directly from your panel, has been updated with a range of QoL improvements, including:

  • Search thousands of stations via the Radio Browser network API
  • Favorites system for quick access to your preferred stations
  • Song metadata display showing album art, artist, title, and bitrate
  • Media key support for play/pause/stop controls from your keyboard
  • Volume control integrated directly in the panel menu
  • Import/Export functionality for sharing station lists across devices
  • Custom station support for adding your own radio URLs manually

The extension also features localization support. If you are interested, you can checkout the Github Repo.

You can get it from GNOME Extensions website

GNOME Foundation

Allan Day announces

Another GNOME Foundation update is available, covering highlights from the last three weeks. It's a particularly full update, covering the recent GNOME.Asia summit, audit preparation, digital wellbeing progress, and much more.

Digital Wellbeing Project

Ignacy Kuchciński (ignapk) reports

As part of the Digital Wellbeing project, sponsored by the GNOME Foundation, there is an initiative to redesign the Parental Controls to bring it on par with modern GNOME apps and implement new features such as Screen Time monitoring, Bedtime Schedule and Web Filtering.

Recently the 'time is almost up' notification inside child session has been implemented and merged in GNOME Shell, while preventing children from unlocking after their bedtime and allowing parents to extend their screen time are being polished up. You can track the progress at their merge requests at !3980 and 3999 respectively.

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!

19 Dec 2025 12:00am GMT

17 Dec 2025

feedPlanet GNOME

Andy Wingo: in which our protagonist dreams of laurels

I had a dream the other evening, in which I was at a large event full of hackers-funny, that this is the extent of my dreams at the moment; as a parent of three young kids, I don't get out much-and, there, I was to receive an award and give a speech. (I know, I am a ridiculous man, even when sleeping.) The award was something about free software; it had the trappings of victory, but the vibe among attendees was numbness and bitter loss. Palantir had a booth; they use free software, and isn't that just great?

My talk was to be about Guile, I think: something technical, something interesting, but, I suspected, something inadequate: in its place and time it would be a delight to go deep on mechanism but the moment seemed to call for something else.

These days are funny. We won, objectively, in the sense of the goals we set in the beginning; most software is available to its users under a free license: Firefox, Chromium, Android, Linux, all the programming languages, you know the list. So why aren't we happy?

When I reflect back on what inspired me about free software 25 years ago, it was much more political than technical. The idea that we should be able to modify our own means of production and share those modifications was a part of a political project of mutual care: we should be empowered to affect the systems that surround us, to the extent that they affect us.

To give you an idea of the milieu, picture me in 1999. I left my home to study abroad on another continent. When I would go to internet cafés I would do my email and read slashdot and freshmeat as one did back then, but also I would often read Z magazine, Noam Chomsky and Michael Albert and Michael Parenti and Arundhati Roy and Zapatistas and all. I remember reading El País the day after "we" shut down the World Trade Organization meeting in Seattle, seeing front-page pictures of pink-haired kids being beat up by the cops and wishing I were there with them. For me, free software fit with all of this: the notion that a better world was possible, and we could build it together.

I won't lie and say that the ideals were everything. I think much of my motivation to program is selfish: I like to learn, to find out, to do. But back then I felt the social component more strongly. Among my cohort, though, I think we now do free software because we did free software; the motive sedimented into mechanism. These are the spoils of victory: free is the default. But defaults lack a sense of urgency, of the political.

Nowadays the commons that we built is the feedlot of large language models, and increasingly also its waste pond. The software we make is free, but the system in which it is made is not; Linux Magazine 1, Z magazine 0.

All of this makes me think that free software as a cause has run its course. We were the vanguard, and we won. Our dreams of 25 years ago are today's table stakes. Specifically for my copyleft comrades, it seems that the role of copyright as a societal lever has much less purchase; taken to its conclusion, we might find ourselves siding with Disney and OpenAI against Google.

If I had to choose an idea from the 90s to keep, I would take "another world is possible" over the four freedoms. For me, software freedom is a strategy within a broader humanist project of liberation. It was clever, in that it could motivate people from a variety of backgrounds in a way that was on the whole positive for the humanist project. It inspired me as a meaningful way in which I could work towards a world of people caring for each other. In that spirit, I would like to invite my comrades to reflect on their own hierarchy of principles; too often I see people arguing the fine points of "is this software free" according to a specific definition without appreciating the ends to which the software freedom definition is a means.

Anyway, it turns out that I did win something, the Award for the Advancement of Free Software, for my work on Guile over the years. My work on Guile has waxed and waned, and in these last few years of parenthood it has been rather the latter, but I am proud of some of the technical hacks; and it has been with a heart-warming, wondrous delight that I have been a spectator to the rise of Guix, a complete operating system built on Guile. Apart from its quite compelling technical contributions, I just love that Guix is a community of people working together to build a shared project. I am going to the Guix days in a month or so and in past years it has been such a pleasure to see so many people there, working to make possible another world.

In my dream, instead of talking about Guile, I gave a rousing and compelling impromptu invective against Palantir and their ilk. I thought it quite articulate; I was asleep. In these waking hours, some days later, I don't know what I did say, but I think I know what I would like to have said: that if we take the means of free software to be the ends, then we will find ourselves arguing our enemies are our friends. Saying that it's OK if some software we build on is made by people who facilitate ICE raids. People who build spy software for controlling domestic populations. People who work for empire.

What I would like to say is that free software is a strategy. As a community of people that share some kind of liberatory principles of which free software has been a part, let use free software as best we can, among many other strategies. If it fits, great. If you find yourself on the same side of an argument as Palantir, it's time to back up and try something else.

17 Dec 2025 10:42pm GMT

Sam Thursfield: Status update, 17/12/2025

Welcome to mid-December! Where I am this month is a pretty cold affair… at night it's 2 or 3 degrees above freezing. Maybe you're in a tropical place and the nights are 30 degrees warmer. Or maybe you're somewhere that drops down to 20 or 30 below freezing. The world is a big place! (Or maybe you're in one of those 10 remaining countries that use fahrenheit to measure temperature.. if so, I'm sorry for you ; -)

I didn't do much in the world of open source this month besides reviewing a few patches.

I am still using GNOME and Fedora every day for my work… at zero cost! If I'd paid for Microsoft Windows I'd be down almost 200€. So I made a few one off donations split between:

Thanks to Hari's blog post for reminding us how important it is to donate.

Who did I miss that is contributing to making excellent desktop software in difficult times?

(I know that regular donations are more helpful… I have a few dozen of those already, listed here. The list can always change : -).


17 Dec 2025 7:01pm GMT

Matthew Garrett: How did IRC ping timeouts end up in a lawsuit?

I recently won a lawsuit against Roy and Rianne Schestowitz, the authors and publishers of the Techrights and Tuxmachines websites. The short version of events is that they were subject to an online harassment campaign, which they incorrectly blamed me for. They responded with a large number of defamatory online posts about me, which the judge described as unsubstantiated character assassination and consequently awarded me significant damages. That's not what this post is about, as such. It's about the sole meaningful claim made that tied me to the abuse.

In the defendants' defence and counterclaim[1], 15.27 asserts in part The facts linking the Claimant to the sock puppet accounts include, on the IRC network: simultaneous dropped connections to the mjg59_ and elusive_woman accounts. This is so unlikely to be coincidental that the natural inference is that the same person posted under both names. "elusive_woman" here is an account linked to the harassment, and "mjg59_" is me. This is actually a surprisingly interesting claim to make, and it's worth going into in some more detail.

The event in question occurred on the 28th of April, 2023. You can see a line reading *elusive_woman has quit (Ping timeout: 2m30s), followed by one reading *mjg59_ has quit (Ping timeout: 2m30s). The timestamp listed for the first is 09:52, and for the second 09:53. Is that actually simultaneous? We can actually gain some more information - if you hover over the timestamp links on the right hand side you can see that the link is actually accurate to the second even if that's not displayed. The first event took place at 09:52:52, and the second at 09:53:03. That's 11 seconds apart, which is clearly not simultaneous, but maybe it's close enough. Figuring out more requires knowing what a "ping timeout" actually means here.

The IRC server in question is running Ergo (link to source code), and the relevant function is handleIdleTimeout(). The logic here is fairly simple - track the time since activity was last seen from the client. If that time is longer than DefaultIdleTimeout (which defaults to 90 seconds) and a ping hasn't been sent yet, send a ping to the client. If a ping has been sent and the timeout is greater than DefaultTotalTimeout (which defaults to 150 seconds), disconnect the client with a "Ping timeout" message. There's no special logic for handling the ping reply - a pong simply counts as any other client activity and resets the "last activity" value and timeout.

What does this mean? Well, for a start, two clients running on the same system will only have simultaneous ping timeouts if their last activity was simultaneous. Let's imagine a machine with two clients, A and B. A sends a message at 02:22:59. B sends a message 2 seconds later, at 02:23:01. The idle timeout for A will fire at 02:24:29, and for B at 02:24:31. A ping is sent for A at 02:24:29 and is responded to immediately - the idle timeout for A is now reset to 02:25:59, 90 seconds later. The machine hosting A and B has its network cable pulled out at 02:24:30. The ping to B is sent at 02:24:31, but receives no reply. A minute later, at 02:25:31, B quits with a "Ping timeout" message. A ping is sent to A at 02:25:59, but receives no reply. A minute later, at 02:26:59, A quits with a "Ping timeout" message. Despite both clients having their network interrupted simultaneously, the ping timeouts occur 88 seconds apart.

So, two clients disconnecting with ping timeouts 11 seconds apart is not incompatible with the network connection being interrupted simultaneously - depending on activity, simultaneous network interruption may result in disconnections up to 90 seconds apart. But another way of looking at this is that network interruptions may occur up to 90 seconds apart and generate simultaneous disconnections[2]. Without additional information it's impossible to determine which is the case.

This already casts doubt over the assertion that the disconnection was simultaneous, but if this is unusual enough it's still potentially significant. Unfortunately for the Schestowitzes, even looking just at the elusive_woman account, there were several cases where elusive_woman and another user had a ping timeout within 90 seconds of each other - including one case where elusive_woman and schestowitz[TR] disconnect 40 seconds apart. By the Schestowitzes argument, it's also a natural inference that elusive_woman and schestowitz[TR] (one of Roy Schestowitz's accounts) are the same person.

We didn't actually need to make this argument, though. In England it's necessary to file a witness statement describing the evidence that you're going to present in advance of the actual court hearing. Despite being warned of the consequences on multiple occasions the Schestowitzes never provided any witness statements, and as a result weren't allowed to provide any evidence in court, which made for a fairly foregone conclusion.

[1] As well as defending themselves against my claim, the Schestowitzes made a counterclaim on the basis that I had engaged in a campaign of harassment against them. This counterclaim failed.

[2] Client A and client B both send messages at 02:22:59. A falls off the network at 02:23:00, has a ping sent at 02:24:29, and has a ping timeout at 02:25:29. B falls off the network at 02:24:28, has a ping sent at 02:24:29, and has a ping timeout at 02:25:29. Simultaneous disconnects despite over a minute of difference in the network interruption.

comment count unavailable comments

17 Dec 2025 1:17pm GMT

Gedit Technology blog: Mid-December News

Misc news for the past month about the gedit text editor, mid-December edition! (Some sections are a bit technical).

(By the way, the "mid-month" news is especially useful for December/January, when one thinks about it ;-) ).

gedit now refuses to load very large files

It was part of the common-bugs, and it is now fixed! New versions of gedit will refuse to load very large files or content read from stdin.

The limit is configurable with the GSettings key: org.gnome.gedit.preferences.editor max-file-size

By default the limit is set to 200 MB. The setting is not exposed in the Preferences dialog (there are a few other such settings).

There are technically two cases:

It is planned to improve this and offer to load the content truncated.

Windows improvements

I've fixed some compilation warnings and unit tests failures on MS Windows, and done some packaging work, including contributing to MINGW-packages (part of MSYS2).

Other work in libgedit-gtksourceview

Various work on the completion framework, including some code simplifications.

Plus what can be called "gardening tasks": various code maintenance stuff.

gspell CI for tarballs

AsciiWolf and Jordan Petridis have contributed to gspell to add CI for tarballs. Thanks to them!

17 Dec 2025 10:00am GMT

16 Dec 2025

feedPlanet GNOME

Jussi Pakkanen: An Appeal from the United Federation of Dictators, Despots, Evil Emperors and Tyrants

Truly, we are living in a new Golden Age for all those sharing our passion in subjugating all of human race under a single iron fist.

And to think that mere few decades ago we thought that our way of life was heading to the dung heap of humanity. Education, international cooperation and other such scourges of democracy and civilization seemed to have taken an unescapable stranglehold on our core values and, by extension, our future. But then, our savior appeared from nowhere in the form of His Holiness Steve Jobs. The vision and tireless unpaid overworking of his minions gave birth to the Squircle of Self-Subjugation and the world has never been the same since. May the glory of your achievements, oh Steve the Seer, shine forevermore throughout the four rounded corners of our planet!

Now, to be sure, many among our ranks were very sceptical of the product at first glance. Giving people the power to access all the information in the world wherever they may be seemed like the final blow to our cause. Yet, it became our greatest triumph. It did not take long to see that people who had formerly acted on injustices they perceived in the world switched to clicking on the thumbs up button on a Facebook post advocating some change and then promptly forgetting about it. Even this would have been master level brainwashing, but nowadays the unwashed masses do not feel the need to do even that. Instead they are watching an unending stream of five second nonsense videos that leave them incapable of thinking rationally. This is just like ye good olde roman times of Panem et circenses, except that bread does not need to be given out. People will buy it themselves at outrageous prices and then claim that giving out free bread to the starving supports terrorism. These spontaneous acts of hatred are what makes a tyrant's heart run aflutter with joy.

But that was only the beginning. Just as Steve gave us legs so we could run, Sam Altman gave us wings to take flight. His unsurpassed vision can not be praised highly enough. While the rest of us were trying to destroy democracy using the tried tools of our trade: war, forgery, drug trafficking, genocide, abolishing free speech (up to and including parody and satire), he went further than any of us could even dream of. He sought to destroy reality itself. Thus far he has been succeeding on every front and we salute him, for reality is highly problematic for us in the despot business. Reality affects people in weird ways. It warps them. It makes them want to do things they think are correct and to fix things they deem unjust instead of obeying our orders without questioning them. Because of this, reality must go.

And indeed it has. An ever growing number of people are now incapable of making any decisions on their own. Instead they ask a machine, a higher authority, what to do and follow the given advice to the letter. Even if it conflicts with the reality they see with their own eyes. The thing we had already deemed impossible is now routine. The knock-on effects of this generative AI technology should not be dismissed either. There are currently tens of millions of people working as our allies across all layers of western society to bring it crashing down. Rather than doing work, they just use generative AI to pretend to work. This gives them two unbeatable advantages. A) They don't have do anything, but instead can spend more time getting their ego stroked in social bubble media. B) They keep getting paid as if they were still working. True, these kinds of people have always existed, but, with a single swift stroke of Sam's silk-clad sophisticatorix, the do-not-give-a-shitters are now the majority. Those who care will either collapse under load or quit out of frustration. The collapse of democratic institutions is guaranteed. The only negative side is a lack of accomplishment: it was all too easy.

Unfortunately institutions can be rebuilt. Fortunately that has already been prevented. The use of AI to cheat has spread through the entire schooling system like wildfire. Teaching the next generation to avoid doing any work, taking responsibility or questioning authority is the most important thing we, the destroyers of free thinking, individuality and people's sense of self-worth, can do. For the first time since the invention of basic education, this issue is now in good hands. There are even people who seriously, and loudly, hold the opinion that school should be fundamentally altered. Instead of propagating knowledge or thinking, it should only train children to use ChatGPT. To this we say an unequivocal yes! The future shall have no revolutions, only blind obedience.

Alas, all is not well in this, our new utopia. In recent times many of us have noticed a marked decrease in our servants' work ethics. Whether it be incorrectly cooked eggs at breakfast to poorly cleaned offices, the lack of quality and finesse is palpable. What is even the point of manufacturing a massive statue of yourself on the capital's main square if the gilding is flaking off it during the inauguration ceremony? Or to build the world's biggest eight lane highway bridge only to have it collapse before a single car has crossed it as nobody actually cared to do the load bearing computations properly? The only way to get people to do anything nowadays is to threaten them with a firing squad. This toxic work environment brings about severe psychological stress. Contrary to common belief, tyrants are human too. Having to threaten ten different people with execution before lunch is exhaustive and may even cause mental health issues for the caring Great Leader. This is, of course, as unacceptable as it is inhumane.

Thus we come to the core of this declaration. While we feel that social media, AI, cell phones and other technological tools of totalitarianism are useful and mandatory for the modern dictator, their use has spread too far. They destroy too many of the things we hold dear. There are things too important to be left to the whims of plebs who neither care nor understand what they are supposed to be doing. Thus we will be specifying a list of occupations and tasks where the use of these tools shall be prohibited and we encourage all totalitarian countries to do the same. As dictatorships are not, by definition, under free market pressure to maximize profit regardless of consequences, we have the luxury of being able to invest sensibly. That is how we win. Of course we would prefer not to have to resort to these measures, but given the current geopolitical situation, it is necessary.

Finally, to not end on a downer, we would like to extend our thanks to our business partners. As you know, bending the entire humankind to the ground for an iron boot stomp on their face forever is not something you can do on your own. It is a team effort. We extend our most heartfelt gratitude to all our allies. Thank you Tim Cook, Mark Zuckerberg, Peter Thiel, Sundar Pichai, Jeff Bezos, Satya Nadella and all the rest. You are our Most Valuable Players. Without you, this would not have been possible. None of you were asked to do this. You stood up voluntarily and chose to take control of the ignorant masses, as any good despot should. Generations upon generations of children shall be marched to pay tribute to your portraits every morning of every month of every year. Which probably is, if we may be so bold as to speculate, the thing you wanted all along.

Yours sincerely in enslavement,

16 Dec 2025 7:49pm GMT

Bradley M. Kuhn: I Lived a Similar Trauma Rob Reiner's Family Faces & Shame on Trump

I posted the following on my Fediverse (via Mastodon) account. I'm reposting the whole seven posts here as written there, but I hope folks will take a look at that thread as folks are engaging in conversation over there that might be worth reading if what I have to say interests you. (The remainder of the post is the same that can be found in the Fediverse posts linked throughout.)

I suppose Fediverse isn't the place people are discussing Rob Reiner. But after 36 hours of deliberating whether to say anything, I feel compelled. This thread will be long,but I start w/ most important part:

It's an "open secret" in the FOSS community that in March 2017 my brother murdered our mother. About 3k ppl/year in USA have this experience, so it's a statistical reality that someone else in FOSS experienced similar. If so, you're welcome in my PMs to discuss if you need support… (1/7)

… Traumatic loss due to murder is different than losing your grandparent/parent of age-related ailments (& is even different than losing a young person to a disease like cancer). The "a fellow family member did it" brings permanent surrealism to your daily life. Nothing good in your life that comes later is ever all that good. I know from direct experience this is what Rob Reiner's family now faces. It's chaos; it divides families forever: dysfunctional family takes on a new "expert" level… (2/7)

…as one example: my family was immediately divided about punishment. Some of my mother's relatives wanted prosecution to seek death penalty. I knew that my brother was mentally ill enough that jail or prison *would* get him killed in a prison dispute eventually,so I met clandestinely w/my brother's public defender (during funeral planning!) to get him moved to a criminal mental health facility instead of a regular prison. If they read this, it'll first time my family will find out I did that…(3/7)

…Trump's political rise (for me) links up: 5 weeks into Trump's 1ˢᵗ term, my brother murdered my mother. My (then 33yr-old) brother was severely mentally ill from birth - yet escalated to murder only then. IMO, it wasn't coincidence. My brother left voicemail approximately 5 hours before the murder stating his intent to murder & described an elaborate political delusion as the impetus. ∃ unintended & dangerous consequences of inflammatory political rhetoric on the mental ill!…(4/7)

…I'm compelled to speak publicly - for first time ≈10 yrs after the murder - precisely b/c of Trump's response.

Trump endorsed the idea that those who oppose him encourage their own murder from the mentally ill. Indeed, he said that those who oppose him are *themselves causing* mental illnesses in those around them, & that his political opponents should *expect* violence from their family members (who were apparently driven to mental illness from your opposition to Trump!)… (5/7)

…Trump's actual words:

Rob Reiner, tortured & struggling,but once…talented movie director & comedy star, has passed away, together w/ his wife…due to the anger he caused others through his massive, unyielding, & incurable affliction w/ a mind crippling disease known as TRUMP DERANGEMENT SYNDROME…He was known to have driven people CRAZY by his raging obsession of…Trump, w/ his obvious paranoia reaching new heights as [my] Administration surpassed all goals and expectations of greatness…

(6/7)

My family became ultra-pro-Trump after my mom's murder. My mom hated politics: she was annoyed *both* if I touted my social democratic politics & if my dad & his family stated their crypto-fascist views. Every death leaves a hole in a community's political fabric. 9+ years out, I'm ostracized from my family b/c I'm anti-Trump. Trump stated perhaps what my family felt but didn't say: those who don't support Trump are at fault when those who fail to support Trump are murdered. (7/7)

[ Finally, I want to also quote this one reply I also posted in the same thread: I ask everyone, now that I've stated this public, that I *know* you're going to want to search the Internet for it, & you will find a lot. Please, please, keep in mind that the Police Department & others basically lied to the public about some of the facts of the case. I seriously considered suing them for it, but ultimately it wasn't worth my time. But, please everyone ask me if you are curious about any of the truth of the details of the crime & its aftermath …

16 Dec 2025 10:01am GMT

Hari Rana: Please Fund My Continued Accessibility Work on GNOME!

Hey, I have been under distress lately due to personal circumstances that are outside my control. I cannot find a permanent job that allows me to function, I am not eligible for government benefits, my grant proposals to work on free and open-source projects got rejected, paid internships are quite difficult to find, especially when many of them prioritize new contributors. Essentially, I have no stable, monthly income that allows me to sustain myself.

Nowadays, I mostly volunteer to improve accessibility throughout GNOME apps, either by enhancing the user experience for people with disabilities, or enabling them to use them. I helped make most of GNOME Calendar accessible with a keyboard and screen reader, with additional ongoing effort involving merge requests !564 and !598 to make the month view accessible, all of which is an effort no company has ever contributed to, or would ever contribute to financially. These merge requests require literal thousands of hours for research, development, and testing, enough to sustain me for several years if I were employed.

I would really appreciate any kinds of donations, especially ones that happen periodically to increase my monthly income. These donations will allow me to sustain myself while allowing me to work on accessibility throughout GNOME, essentially 'crowdfunding' development without doing it on the behalf of the GNOME Foundation or another organization.

Donate on Liberapay

Support on Ko-fi

Sponsor on GitHub

16 Dec 2025 12:00am GMT

13 Dec 2025

feedPlanet GNOME

Sebastian Wick: Flatpak Pre-Installation Approaches

Together with my then-colleague Kalev Lember, I recently added support for pre-installing Flatpak applications. It sounds fancy, but it is conceptually very simple: Flatpak reads configuration files from several directories to determine which applications should be pre-installed. It then installs any missing applications and removes any that are no longer supposed to be pre-installed (with some small caveats).

For example, the following configuration tells Flatpak that the devel branch of the app org.test.Foo from remotes which serve the collection org.test.Collection, and the app org.test.Bar from any remote should be installed:

[Flatpak Preinstall org.test.Foo]
CollectionID=org.test.Collection
Branch=devel

[Flatpak Preinstall org.test.Bar]

By dropping in another confiuration file with a higher priority, pre-installation of the app org.test.Foo can be disabled:

[Flatpak Preinstall org.test.Foo]
Install=false

The installation procedure is the same as it is for the flatpak-install command. It supports installing from remotes and from side-load repositories, which is to say from a repository on a filesystem.

This simplicity also means that system integrators are responsible for assembling all the parts into a functioning system, and that there are a number of choices that need to be made for installation and upgrades.

The simplest way to approach this is to just ship a bunch of config files in /usr/share/flatpak/preinstall.d and config files for the remotes from which the apps are available. In the installation procedure, flatpak-preinstall is called and it will download the Flatpaks from the remotes over the network into /var/lib/flatpak. This works just fine, until someone needs one of those apps but doesn't have a suitable network connection.

The next way one could approach this is exactly the same way, but with a sideload repository on the installation medium which contains the apps that will get pre-installed. The flatpak-preinstall command needs to be pointed at this repository at install time, and the process which creates the installation medium needs to be adjusted to create this repository. The installation process now works without a network connection. System updates are usually downloaded over the network, just as new pre-installed applications will be.

It is also possible to simply skip flatpak-preinstall, and use flatpak-install to create a Flatpak installation containing the pre-installed apps which get shipped on the installation medium. This installation can then be copied over from the installation medium to /var/lib/flatpak in the installation process. It unfortunately also makes the installation process less flexible because it becomes impossible to dynamically build the configuration.

On modern, image-based operating systems, it might be tempting to just ship this Flatpak installation on the image because the flexibility is usually neither required nor wanted. This currently does not work for the simple reason that the default system installation is in /var/lib/flatpak, which is not in /usr which is the mount point of the image. If the default system installation was in the image, then it would be read-only because the image is read-only. This means we could not update or install anything new to the system installation. If we make it possible to have two different system installations - one in the image, and one in /var - then we could update and install new things, but the installation on the image would become useless over time because all the runtimes and apps will be in /var anyway as they get updated.

All of those issues mean that even for image-based operating systems, pre-installation via a sideload repository is not a bad idea for now. It is however also not perfect. The kind of "pure" installation medium which is simply an image now contains a sideload repository. It also means that a factory reset functionality is not possible because the image does not contain the pre-installed apps.

In the future, we will need to revisit these approaches to find a solution that works seamlessly with image-based operating systems and supports factory reset functionality. Until then, we can use the systems mentioned above to start rolling out pre-installed Flatpaks.

13 Dec 2025 6:17pm GMT

12 Dec 2025

feedPlanet GNOME

This Week in GNOME: #228 Midnight Edition

Update on what happened across the GNOME project in the weeks from November 28 to December 12.

Third Party Projects

Alexander Vanhee says

Bazaar 0.60 brought some pretty cool updates. Kolunmi implemented caching for most core data, allowing for way faster cold startups. We also made the experience around verification better. You can now see the badges next to most places where apps are shown, and added popovers to explain better what verification means. The filters have been upgraded to now work app wide, and we've ported the "We ♥ Games" section seen on the Flathub site. Check out Bazaar on Flathub

Hugo Olabera announces

Wike 3.2 has been released.

Among the biggest changes is the improved dark mode, which now uses Wikipedia's native dark skin. This improves the display of many elements in article view and also resolves several issues that occur when using this mode, such as article printing or page rendering failures in certain circumstances.

Additionally, a new option has been added to the article menu for pasting and opening Wikipedia links, and the shortcuts window has been migrated to the new LibAdwaita shortcuts dialog.

The release comes complete with the usual set of code improvements and translation updates. The Wike website has also been updated.

Wike 3.2.0 is now available on Flathub.

dabrain34 reports

🎉 New Release Announcement: GstPipelineStudio v0.4.0 🎉

It's a great pleasure to announce the release of GstPipelineStudio version 0.4.0! This release brings a refreshed user interface with a new logo, modernized dialogs, graph zoom support, recent files menu, and improved cross-platform builds with GStreamer 1.26 and GTK 4.16.

The flatpak version is coming soon …Stay tuned ! 🚀 Upgrade Now!

To get the latest version of GstPipelineStudio, visit the project's page and check out the Changelog for more details.

Happy streaming! 🎬📡

Haydn Trowell reports

Typesetter, the minimalist, local-first Typst editor, has been updated with a range of quality-of-life improvements, including:

  • A magnifier inspection tool by clicking and holding on the preview
  • A document statistics popup for checking word count and other metrics
  • Code completions with a Ctrl+Space keyboard shortcut
  • Hover tooltips in the editor
  • A code formatter for tidying Typst scripting syntax

You can get the latest version from Flathub and contribute on Codeberg.

Lock

Process data with GnuPG

Konstantin Tutsch reports

Lock v1.9.0 has been released!

This version contains overall quality improvements:

  • The new shortcuts dialog from Adwaita 1.8 is now fully implemented and functional to ensure a native GNOME experience
  • Iconography related to file processing has been reworked to improve intuitiveness

Available on Flathub >

Arnis (kem-a) reports

appimage-thumbnailer v2 got just released, now completely rewritten in C. It is a lightweight utility that seamlessly integrates AppImage thumbnailing into GNOME. It extracts icons directly from AppImages using efficient in-memory processing, ensuring very fast and accurate previews in Files and ensuring compatibility with freedesktop.org spec.

Get it on Github: https://github.com/kem-a/appimage-thumbnailer

Shell Extensions

Just Perfection says

A new rule has been added to the EGO Review Guidelines for AI-generated code.

We've added this rule because, over the past two months, we have been receiving many new extensions that use AI to create GNOME Shell extensions with large amounts of unnecessary code. In some cases, we are even receiving AI-generated replies when asking for explanations during the review process.

Some days, I review over 15,000 lines of extension code. Packages containing many issues and unnecessary code require a longer review time.

From now on, submissions with unnecessary code that indicate they are AI-generated will be rejected.

You can still use AI as a learning tool and don't forget to read the EGO Review Guidelines before sending new packages to the EGO.

Please don't hesitate to ask any questions related to extensions on the #extensions:gnome.org.

More on this in the blog post.

NiffirgkcaJ announces

Hey everyone, this week I've released the latest version of All-in-One Clipboard, a unified clipboard manager with these features:

  • Clipboard history for text, code, images, files, URLs, colors, and contacts
  • Emoji picker with skin tone selection
  • GIF search powered by Tenor/Imgur
  • Kaomoji picker (Japanese text emoticons)
  • Symbols picker (arrows, math, currency, etc.)
  • Recently Used tab for quick access
  • Pin items for quick access
  • Full keyboard navigation with customizable shortcuts ![](./All-in-One Clipboard Promotion.png)

Dmy3k reports

Adaptive Brightness extension now supports GNOME 49's new brightness slider behavior.

GNOME 49.2 introduced a behavioral change where the brightness slider adjusts user preference (bias) for automatic brightness rather than absolute brightness values. The extension now:

  • Leverages native gnome-shell feature allowing users to adjust brightness preference ad-hoc
  • Sets neutral bias upon start on GNOME 49.2+ for predictable auto-brightness control
  • Maintains backward compatibility with GNOME 46-49.1

On top of that extension gained simplified configuration view in prefs, and possibility to backup/restore configuration.

Internships

lbaudin reports

This week Malika started her Outreachy internship. She will be working on improving document signing in GNOME Document Viewer (Papers), here is her first blog post!

Events

Allan Day announces

GNOME.Asia 2025 starts tomorrow, 13 December, in Tokyo, Japan! The two day event has a fantastic schedule of talks and workshops. If you can't attend in person, the sessions can also be viewed remotely - just head over to the online registration to sign up.

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!

12 Dec 2025 12:00am GMT