Wednesday, 6 August 2025
Qt Tools for Android Studio version 4.1 is out! It can be downloaded from the JetBrains marketplace.

Qt Tools for Android Studio version 4.1 is out! It can be downloaded from the JetBrains marketplace.
The 46th annual TeX Users Group conference (TUG2025) took place in Kerala during July 18–20, 2025. I’ve attended and presented at a few of the past TUG conferences; but this time it is different as I was to present a paper and help to organize the conference. This is a personal, incomplete, (and potentially hazy around the edges) reflection of my experience organizing the event, which had participants from many parts of the Europe, the US and India.
The Indian TeX Users Group, lead by CVR, have conducted TUG conferences in 2002 and 2011. We, a group of about 18 volunteers, lead by him convened as soon as the conference plan was announced in September 2024, and started creating todo-lists, schedules and assigning responsible persons for each.
STMDocs campus has excellent conference facilities including large conference hall, audio/video systems, high-speed internet with fallback, redundant power supply etc. making it an ideal choice, as done in 2011. Yet, we prioritized the convenience of the speakers and delegates to avoid travel from and to the hotel in city — prior experience found it is best to locate the conference facility closer to the stay. We scouted for a few hotels with good conference facilities in Thiruvananthapuram city, and finalized the Hyatt Regency; even though we had to take greater responsibility and coordination as they had no prior experience organizing a conference with requirements similar to TUG. Travel and visit advisories were published on the conference web site as soon as details were available.
Projector, UPS, display connectors, microphones, WiFi access points and a lot of related hardware were procured. Conference materials such as t-shirt, mug, notepad, pen, tote bag etc. were arranged. Noted political cartoonist E.P. Unny graciously drew the beloved lion sketches for the conference.
Karl Berry, from the US, orchestrated mailing lists for coordination and communication. CVR, Shan and I assumed the responsibility of answering speaker & delegate emails. At the end of extended deadline for submitting presentations and prerecorded talks; Karl handed us over the archive of those to use with the audio/video system.
I traveled to Thiruvananthapuram a week ahead of the conference to be present in person for the final preparations. One of the important tasks for me was the setup the audio/video and live streaming for the workshop and conference. The audio/video team and volunteers in charge did a commendable job of setting up all the hardware and connectivity on 16th evening and we tested presentation, video playing, projector, audio in/out, prompt, clicker, microphones and live streaming. There was no prompt at the hotel, so we split the screen-out to two monitors placed on both side of the podium — this was much appreciated by the speakers later. In addition to the A/V team’s hardware and (primary) laptop, two laptops (running Fedora 42) were used: a hefty one to run the presentation & backup OBS setup; another for video conferencing remote speakers’ Q&A session. The laptop used for presentation had 4K screen resolution. Thanks to Wayland (specifically, Kwin), the connected HDMI out can be independently configured for 1080p resolution; but it failed to drive the monitors split further for prompt. Changing the laptop built-in display resolution also to 1080p fixed the issue (may changing from 120 Hz refresh rate to 60 Hz might have helped, but we didn’t fiddle any further).
Also met with Erik Nijenhuis in front of the hotel, who was hand-rolling a cigarette (which turned out to be quite in demand during and after the conference), to receive a copy of the book ‘The Stroke’ by Gerrit Noordzij he kindly bought for me — many thanks!
The ‘Tagging PDF for accessibility’ workshop was conducted on 17th July at STMDocs campus — the A/V systems & WiFi were setup and tested a couple of days prior. Delegates were picked up at the hotel in the morning and dropped off after the workshop. Registration of workshop attendees were done on the spot, and we collected speaker introductions to share with session chairs. Had interesting discussions with Frank Mittelbach and Boris Veytsman during lunch.
There was a reception at Hyatt on 17th evening, where almost everyone got registered, collected the conference material with program pre-print, t-shirt, mug, notepad & pen, a handwritten (by N. Bhattathiri) copy of Daiva Daśakam, and a copy of the LaTeX tutorial. All delegates introduced themselves — but I had to step out at the exact moment to get into a video call to prepare for live Q&A with Norman Gray from UK, who was presenting remotely on Saturday. There were two more remote speakers — Ross Moore from Australia and Martin J. Osborne from Canada — with whom I conducted the same exercise, despite at inconvenient times for them. Frank Mittelbach needed to use his own laptop for presentation; so we tested the A/V & streaming setup with that too. Doris Behrendt had a presentation with videos; its setup was also tested & arranged.
Tried to use a recent Macbook for the live video conference of remote speakers, but it failed miserably to detect the A/V splitter connected via USB to pick up the audio in and out. Resorting to my old laptop running Fedora 42; the devices were detected automagically and PipeWire (plus WirePlumber) made those instantly available for use.
With everything organized and tested for A/V & live streaming, I went back to get some sleep to wake early on the next day.
Woke up at 05:30, reached hotel by 07:00, and met with some attendees during breakfast. By 08:45, the live stream for day 1 started. Boris Veytsman, the outgoing vice-president of TUG opened TUG2025, handed over to the incoming vice-president and the session chair Erik Nijenhuis; who then introduced Rob Schrauwen to deliver the keynote titled ‘True but Irrelevant’ reflecting on the design of Elsevier XML DTD for archiving scientific articles. It was quite enlightening, especially when one of the designers of a system looks back at the strength, shortcomings, and impact of their design decisions; approached with humility and openness. Rob and I had a chat later, about the motto of validating documents and its parallel with IETF’s robustness principle.
You may see a second stream for day 1, this is entirely my fault as I accidentally stopped streaming during tea break; and started a new one. The group photo was taken after a few exercises in cat-herding.
All the talks on day 1 were very interesting: with many talks about tagging pdf project (that of Mittelbach, Fischer, & Moore); the state of CTAN by Braun — to which I had a suggestion for inactive package maintainer process to consider some Linux distributions’ procedures; Vrajarāja explained their use of XeTeX to typeset in multiple scripts; Hufflen’s experience in teaching LaTeX to students; Behrendt & Busse’s talk about use of LaTeX in CryptTool; and CVR’s talk about long running project of archiving Malayalam literary works in TEI XML format using TeX and friends. The session chairs, speakers and audience were all punctual and kept their allotted time in check; with many followup discussions happening during coffee break, which had ample time to feel the sessions not rushed.
Ross Moore’s talk was prerecorded. As the video played out, he joined via a video conference link. The audio in/out & video out (for projecting on screen and for live streaming) were connected to my laptop, and we could hear him through the audio system as well as the audience questions via microphone were relayed to him with no lag — this worked seamlessly (thanks to PipeWire). We had a small problem with pausing a video that locked up the computer running the presentation; but quickly recovered — after the conference, I diagnosed it to be a noveau driver issue (a GPU hang).
By the end of the day, Rahul & Abhilash were accustomed to driving the presentation and live streams, so I could hand over the rein and enjoy the talks. Decided to stay back at the hotel to avoid travel, and went to bed by 22:00 but sleep descended on this poor soul only by 04:30 or so; thanks to that cup of ristretto for breakfast!
First talk on the second day was mine with CVR, about the development of an OpenType font with built-in syntax highlighting for TeX documents. The idea has been called ‘mad’ and ‘crazy’ (which both of us enjoyed); but we’re merely standing on the shoulders of crazy giants (see H. Lotvonen’s prior art if evidence needed.)
Judging by the ensuing laughs and questions; it appears not everyone was asleep during my talk. Frank & Ulrike suggested not to colour the underscore glyph in math, instead properly colour LaTeX3 macro names (which can have underscore and colon in addition to letters) in the font.
The sessions on second day were also varied and interesting, in particular Novotný’s talk about static analysis of LaTeX3 macros; Vaishnavi’s fifteen-year long project of researching and encoding Tulu-Tigalari script in Unicode; bibliography processing talks separately by Gray and Osborne (both appeared on video conferencing for live Q&A which worked like a charm), etc.
I had interesting discussions with many participants during lunch and coffee breaks. Mentioned to Ben Davies from Overleaf that many résumés I get nowadays are done in LaTeX, even when the person has no knowledge of it — shows signs of TeX going mainstream, in some sense. Ben agreed that it would make sense to set the first/default project in Overleaf a résumé template. I did rehash my concern shared at TUG2023, about the no-error-stop mode in Overleaf leaves much to be desired, as often I encounter documents that do not compile — corroborated by Linas Stonys from VTeX.
In the evening, all of us walked (the monsoon rain was at respite) to the music and dance concert; both of which were fantastic cultural & audio-visual experience.
The morning session of final day had a few talks: Rishi lamented about eroding typographic beauty in publishing (which Rob concurred with, Vrajarāja earlier pointed out as the reason for choosing TeX, …); Doris on LaTeX village in CCC — and about ‘tuwat’ (to take action); followed by the TeX Users Group annual general body meeting presided by Boris as the first session post lunch; then on his approach to solve editorial review process of documents in TeX; and a couple more talks: Rahul’s presentation about pdf tagging used our opentype font for syntax highlighting (yay!); and the lexer developed by Overleaf team was interesting. On Veeraraghavan’s presentation about challenges faced by publishers, I had a comment about the recurrent statement that “LaTeX is complex” — LaTeX is not complex, but the scientific content is complex, and LaTeX is still the best tool to capture and represent such complex information.
For the final session, Narayana Bhattathiri gave us a calligraphy demonstration, in four scripts — Latin, Malayalam, Devanagari and Tamil; which was very well received judging by the applause. I was deputed to explain what he does; and also to translate for the Q&A session. He obliged the audience’s request of writing names: of themselves, or spouse or children, even a bär, or as Hàn Thế Thành wanted — Nhà khủng lồ (the house of dinosaurs, name for the family group); for the next half hour.
Nijenhuis was also giving away swags by Xerdi, and I made the difficult choice between a pen and a pendrive, opting for the latter.
The banquet followed; where in between enjoying delicious food I could find time to meet and speak with even more people and say good byes and ‘tot ziens’.
Later, I had some discussions with Frank about generating MathML using TeX.
A number of people during the conference shared their appreciation of how well the conference was organized, this was heartwarming. I would like to express thanks to many people involved, including the TeX Users Group, the sponsors (who made it fiscally possible to run the event and support many travels via bursary), STMDocs volunteers who handled many other responsibilities of organizing, the audio-video team (who were very thoughtful to place the headshot of speakers away from the presentation text), the unobtrusive hotel staff; and all the attendees, especially the speakers.
Thanks particularly to those who stayed at and/or visited the campus, for enjoying the spicy food, delicious fruits from the garden, and surviving the long techno-socio-eco-political discussions. Boris seems to have taken it to heart my request for a copy of the TeXbook signed by Don Knuth — I cannot express the joy & thanks in words!
The recorded videos were handed over to Norbert Preining, who graciously agreed to make the individual lectures available after processing. The total file size was ~720 GB; so I connected the external SSD to one of the servers and made it available to a virtual machine via USB-passthrough; then mounted and made it securely available for copying remotely.
Special note of thanks to CVR, and Karl Berry — who I suspect is actually a kubernetes cluster running hundreds of containers each doing a separate task (with apologies to a thousand gnomes), but there are reported sightings of him; so I sent personal thanks via people who have seen him in flesh — for leading and coordinating the conference organizing. Barbara Beeton and Karl copy-edited our article for the TUGboat conference proceedings, which is gratefully acknowledged. I had a lot of fun and a lot less stress participating in TUG2025 conference!
Tuesday, 5 August 2025. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.4.4.
Plasma 6.4 was released in June 2025 with many feature refinements and new modules to complete the desktop experience.
This release adds three weeks’ worth of new translations and fixes from KDE’s contributors. The bugfixes are typically small but important and include:
I write this in the wake of a personal attack against my work and a project that is near and dear to me. Instead of spreading vile rumors and hearsay, talk to me. I am not known to be ‘hard to talk to’ and am wide open for productive communication. I am disheartened and would like to share some thoughts of the importance of communication. Thanks for listening.
Open source development thrives on collaboration, shared knowledge, and mutual respect. Yet sometimes, the very passion that drives us to contribute can lead to misunderstandings and conflicts that harm both individuals and the projects we care about. As contributors, maintainers, and community members, we have a responsibility to foster environments where constructive dialogue flourishes.
At its core, open source is about people coming together to build something greater than what any individual could create alone. This collaborative spirit requires more than just technical skills—it demands emotional intelligence, empathy, and a commitment to treating one another with dignity and respect.
When disagreements arise—and they inevitably will—the manner in which we handle them defines the character of our community. Technical debates should focus on the merits of ideas, implementations, and approaches, not on personal attacks or character assassinations conducted behind closed doors.
One of the most damaging patterns in any community is when criticism travels through indirect channels while bypassing the person who could actually address the concerns. When we have legitimate technical disagreements or concerns about someone’s work, the constructive path forward is always direct, respectful communication.
Consider these approaches:
Open source contributors often juggle their community involvement with work, family, and personal challenges. Many are volunteers giving their time freely, while others may be going through difficult periods in their lives—job searching, dealing with health issues, or facing other personal struggles.
During these times, our response as a community matters enormously. A word of encouragement can sustain someone through tough periods, while harsh criticism delivered thoughtlessly can drive away valuable contributors permanently.
Strong open source communities are built on several key principles:
Transparency in Communication: Discussions about technical decisions should happen in public forums where all stakeholders can participate and learn from the discourse.
Constructive Feedback Culture: Criticism should be specific, actionable, and delivered with the intent to improve rather than to tear down.
Recognition of Contribution: Every contribution, whether it’s code, documentation, bug reports, or community support, has value and deserves acknowledgment.
Conflict Resolution Processes: Clear, fair procedures for handling disputes help prevent minor disagreements from escalating into community-damaging conflicts.
Many successful open source projects span decades, with contributors coming and going as their life circumstances change. The relationships we build and the culture we create today will determine whether these projects continue to attract and retain the diverse talent they need to thrive.
When we invest in treating each other well—even during disagreements—we’re investing in the long-term health of our projects and communities. We’re creating spaces where innovation can flourish because people feel safe to experiment, learn from mistakes, and grow together.
If you find yourself in conflict with another community member, consider these steps:
Open source has given us incredible tools, technologies, and opportunities. The least we can do in return is treat each other with the respect and kindness that makes these collaborative achievements possible.
Every contributor—whether they’re packaging software, writing documentation, fixing bugs, or supporting users—is helping to build something remarkable. Let’s make sure our communities are places where that work can continue to flourish, supported by constructive communication and mutual respect.
The next time you encounter work you disagree with, ask yourself: How can I make this better? How can I help this contributor grow? How can I model the kind of community interaction I want to see?
Our projects are only as strong as the communities that support them. Let’s build communities worthy of the amazing software we create together.
Tellico 4.1.3 is available, with a few fixes.
You click a link in your chat app, your browser with a hundred tabs comes to the front and opens that page. How hard can it be? Well, you probably know by now that Wayland, unlike X, doesn’t let one application force its idiot wishes on everyone else. In order for an application to bring its window to the front, it needs to make use of the XDG Activation protocol.
In essence, an application cannot take focus, it can only receive focus. In the example above, your chat app would request an XDG Activation token from the compositor. It then asks the system to open the given URL (typically launching the web browser) and sends along the token. The browser can then use this token to activate its window.
This token is just a magic string, it doesn’t matter how it gets from one application to another. Typically, a new application is launched with the XDG_ACTIVATION_TOKEN variable in its environment. When activating an existing one, an activation-token property is added to the platform_data dict sent via DBus. There’s also older protocols that weren’t designed with this in mind, such as Notifications, StatusNotifierItem (tray icons), or PolKit requests where we cannot change the existing method signatures. Here we instead added some way to set a token just before the actual call.
However, just because you have a token doesn’t mean you can raise your window! The compositor can invalidate your token at any time and reject your activation request. The idea is that the compositor gets enough information to decide whether the request is genuine or some application popping up a dialog in the middle of you typing something. A token request can include the surface that requests the activation, the input serial from the focus or mouse event that resulted in this request, and/or the application ID of the application that should be activated. While all of this is optional (and there can be valid reasons why you don’t have a particular piece of information at this time), the compositor is more likely to decline activation if the information is incomplete or doesn’t match what the requesting application provided.
A lot of places in Qt, KDE Frameworks, and other toolkits and applications have already been adjusted to this workflow and work seamlessly. For example, calling requestActivate on a QWindow will check if there is an XDG_ACTIVATION_TOKEN in the environment and use it, otherwise request one. Qt also does this automatically when the window opens to match the behavior of other platforms. Likewise, things like ApplicationLauncherJob and OpenUrlJob will automatically request a token before proceeding. On the other hand, KDBusService (for implementing single instance applications) automatically sets the corresponding environment variable when it received a token via DBus. Together this makes sure that most KDE applications just work out of the box.
You might be wondering: didn’t KWin-X11 have “focus stealing prevention”? It sure does. There’s a complicated set of heuristics based on _NET_WM_USER_TIME to judge whether the new window appeared as a result of explicit user interaction or is unsolicited. Remember how back in ye olde days, KWin’s focus stealing prevention would keep the Adobe Flash Player fullscreen window from showing ontop of the YouTube video you’re watching? Yeah, it’s not perfect. KWin can also only react on things that have already happened. For instance, when an application uses XSetInputFocus on a window from a different application, KWin will detect that and consider it a malicious request and restore previous focus but for a split second focus did change. If you want to know more, there’s a 200+ lines comment in activation.cpp in KWin’s git repo that explains it all. But then again the application could just do whatever it wants and bypass all of this.
Unfortunately, there’s still a few places that don’t do XDG Activation correctly. It didn’t matter much under X – in doubt we could just forceActiveWindow – but now we have to fix those scenarios properly! In order to test whether your application is well-behaved, use the latest git master branch of KWin and set “Focus Stealing Prevention” in Window Management settings to “Extreme”. This will make KWin activate a window if and only if it requests activation with a valid token.
Using this, over the past couple of days Xaver Hugl of KWin fame and I fixed a bunch of issues, including but not limited to:
Furthermore, the DBusRunner specification gained a SetActivationToken method which is called just before Run. Baloo (desktop search) runner now uses this to ensure opening files in an existing application window works. Likewise for the KClock runner bringing KClock to the front properly. I further improved the recent documents runner and places runner to send the file type to the OpenUrlJob so it doesn’t have to determine it again. This makes the job much quicker and avoids KRunner closing before the activation token is requested by the job. However, we have yet to find a proper solution for this in KRunner.
With all of this in place, we’ll likely switch on KWin’s focus stealing on Wayland at a low level and make it gradually stricter as applications are being fixed.
After adding the ability to drag and reposition the Selection Action Bar on the canvas last week, I spent this week improving that interaction. I tackled the issue where users could drag the toolbar completely off-screen, making it inaccessible. This week was all about keeping the toolbar within the canvas boundaries.
Side note: This week I also updated the UI to resemble the mockup concept provided from the community.
During testing I noticed that without boundaries, the draggable toolbar could end up hidden and inaccessible especially after window or sidebar resizing. This would make it frustrating for users because they would have to find the missing toolbar or toggle the feature off and back on just to relocate it. I wanted to make the toolbar's positioning restricted to canvas boundaries to keep the toolbar within users' vision.
Looking into the code, I found that the canvasWidget had a property QRect rect() which holds the dimensions of the canvas. We can use these values as the boundaries.
With canvasBounds defined, we can limit the drag operation to stay within the canvas dimensions. Based on the current canvas dimensions and during a drag event, we update the horizontal and vertical limits of the toolbar position with the use of qBound which provides an upper and lower boundary for a value. So if the coordinates of the toolbar were to go past the boundaries, qBound would return the defined upper or lower boundary value. On top of canvas boundaries, it is important to include the dimensions of the toolbar and buffer room in the calculation to make sure the UI elements are accessible.
// updated drag event with canvas boundaries
QPoint newPos = mouseEvent->pos() - d->dragStartOffset;
QRect canvasBounds = canvasWidget->rect();
int actionBarWidth = 125;
int actionBarHeight = 25;
int bufferSpace = 5;
newPos.setX(qBound(canvasBounds.left() + bufferSpace, newPos.x(), canvasBounds.right() - actionBarWidth - bufferSpace));
newPos.setY(qBound(canvasBounds.top() + bufferSpace, newPos.y(), canvasBounds.bottom() - actionBarHeight - bufferSpace));
d->dragRectPosition = newPos;
canvasWidget->update();
return true;
This week was focused on improving the user experience and accessibility of the Selection Action Bar. I learned about some great Qt tools, like the properties of QWidget and Qt helper functions like qBound to help solve my problem! In the coming final weeks, I'll continue adding action buttons based on the list provided by the community.
To anyone reading this, please feel free to reach out to me. I'm always open to suggestions and thoughts on how to improve as a developer and as a person.
Email: ross.erosales@gmail.com
Matrix: @rossr:matrix.org
Since the last update two months ago KDE Itinerary got support for manually added train and bus trips, a more flexible alternative connection search, a new departure details view and a better location search, among many other improvements.
Being able to manually enter train or bus trips rather than selecting them from timetable data has been often requested and is now finally available.
For all modes of transportation there’s now two modes, manually entered data where you can freely change departure and arrival locations and times, and schedule-backed data for trips added from public transport searches where you can change the departure and arrival stops only based on what’s actually in the schedule.
The latter is now also available for ferry trips.
The the various add and import actions have also been consolidated in a single menu on the trip page. Importing backups remains available on the My Data page.
The alternative connection search is no longer limited to just trains and busses either, it now can also be applied to ferry trips and flights. Likewise all modes of transportation in the result can be added that way, that is also ferries and flights.
Additionally, the alternative connection search now allows to select any transfer stop as the destination, unlike previously being limited to just the first or the last one.
There’s also an entirely new and much more detailed public transport departures view. You’ll find that behind the new context menu on locations in the details pages.
The departure list now automatically updates when looking at current departures. Also, you can select an individual entry to get a whole set of additional information where available:
Earlier this month we had the first Transitous Hack Weekend covering many topics relevant for Itinerary as well, ranging from making Transitous long-term sustainable over improving the data coverage and quality to expanding the routing capabilities.
There’s two important upcoming events:
Everything mentioned in this section also benefits KTrip.
Geocoding is the process that happens behind the location search for journey planning. That produced some confusing and undesired results in the past, and should noticeably improve with the 25.08 release.
MOTIS, Transitous and KPublicTransport gained support for geographic bias areas for geocoding queries. That’s used in the location search based on the selected country. With this you should now always have results from the right country at the top, while still not having a hard filter which can be inconvenient in border areas.
Improved automatic backend selection for geocoding. This should fix the issue that in some countries locations were only searched in a few small regions rather than the entire area. Italy and the US were affected by this for example.
The city, region and country a result is in are now display in more cases in a second line under the address or station name. This should further help to disambiguate results.
Access to public transport data still depends on over 70 operator services, besides Transitous. Many of those aren’t really meant for 3rd party use and thus have no proper change management, which means they can randomly change their URL, need a new custom certificate, need new or changed parameters or just disappear entirely.
Adapting to a lot of that is merely a matter of changing configuration files part of KPublicTransport, but so far it would take up to a month for those changes to reach users of release packages.
As this can severely impact the functionality we now have the infrastructure to update the KPublicTransport backend configuration files as well as supporting data such as the coverage information without waiting for the next software update.
This is meant to happen automatically eventually, while we are still testing this it’s available as a context action in the public transport backend configuration page.
Another new feature in MOTIS and Transitous are pickup and dropoff constraints. That is, a way to describe that you cannot board or cannot alight from a vehicle at a given stop. While that isn’t all that common, it can be quite important to know.
KPublicTransport also gained support for this, besides MOTIS also for OpenTripPlanner and Hafas backends. In the UI you can see this in a few places then:
All of this has been made possible thanks to your travel document donations!
Feedback and travel document samples are very much welcome, as are all other forms of contributions. Feel free to join us in the KDE Itinerary Matrix channel.
See also the recent posts on how you can add public transport data to Transitous and do OSM indoor mapping.
Welcome to a new issue of This Week in Plasma!
Every week we cover the highlights of what’s happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.
This week something was merged for Plasma 6.5 that a lot of people have been wanting for a long time: automatic day/night theme switching! And that's not all; we’ve got more visual customizability on offer too, plus a bunch more UI improvements and bug fixes. Check it all out here:
You can now have Plasma automatically switch to a different Global Theme at night! (Vlad Zahorodnii, link)
You can now choose which Global Themes are shown on System Settings’ Quick Settings page, and turn on automatic day/night switching from there, too! (Vlad Zahorodnii, link)
You can now choose to always see the light or dark variants of wallpapers that include both. Now there should be enough options for anyone: you can set dynamic wallpaper coloration to be based on the color scheme, based on the time of day, always light, or always dark. (David Redondo, link)
If you’re a person who prefers to drag things to your panel itself rather than to a Task Manager widget, those panel icons are now removable via their context menus. (Niccolò Venerandi, link)
On Wayland, files opened from KRunner in an already-running app now raise that app’s window as expected. (Kai Uwe Broulik, link)
On Wayland, the Orca screen reader now reads out changes to the Caps Lock state. (Nicolas Fella, link)
Moved System Settings’ Screen Edges pages into the Display & Monitor group, because it feels more natural to group it with screens than with the type of input device used to trigger its features. (Nate Graham, link)
If your system is set up for hibernation, you can now hibernate from the SDDM login screen. (Tobias Leupold, link)
Clicking “Connect” on a network in the Networks popup now closes any other open password fields for other networks, so there’s only one visible at a time. (Arnav Rawat, link)
Re-phrased the sorting/alignment options in Plasma’s desktop icon configuration window to make it clearer what they do. (Akseli Lahtinen, link)
Fixed a bug that could cause Plasma to freeze when spammed with many notifications containing images. (Paul Geerken, link)
Fixed a bug that could cause Plasma to crash while loading stuff. (Nicolas Fella, link)
Fixed a bug in Plasma’s desktop that prevented dragging-and-dropping things inside folders while the desktop was scrollable. (Akseli Lahtinen, link)
Fixed a bug that caused panel editing via drag-and-drop to break in hilarious/awful ways when using a right-to-left language like Arabic or Hebrew. (Niccolò Venerandi, link)
Fixed several bugs in Plasma’s desktop that would cause icons to shift around on their own due to changing the screen arrangement or having certain combinations of panel and desktop file alignment settings. (Akseli Lahtinen, link)
Fixed a bug in Discover that caused it to get confused about which version of a Flatpak app was considered unstable or outdated when the system has multiple Flatpak remotes set up. (Nicolas Fella, link)
Fixed two bugs involving renaming desktop files: one that made it impossible to rename symlinks to desktop files installed at the system level or generally without write permission, and another one that made rename jobs sometimes just kind of fail. (Akseli Lahtinen, link 1 and link 2)
Fixed a bug that prevented Plasma widget configuration windows from restoring their saved sizes as expected. (David Redondo, link)
Fixed a bug that caused you to have to leave System Settings’ Colors page and then go back to it after creating a copy of a color scheme, because it didn’t show up immediately. (Akseli Lahtinen, link)
Fixed two cases where Plasma could crash in Activities-related functionality. (Daniel Hast, link 1 and link 2)
Fixed a bug in the free space checker that would cause it to inappropriately try to mount unmounted network shares defined in /etc/fstab
, which could lead to hangs when there was no network connectivity. (Niccolò Venerandi, link)
Fixed a bug in System Settings’ Region & Language page that caused a visual glitch when using the system with a right-to-left language like Arabic or Hebrew. (Nate Graham, link)
Fixed a regression that made it impossible to drag files from Plasma’s desktop on one screen to another one. The fix for this also fixed some bugs in Dolphin, too. (Akseli Lahtinen, link 1 and link 2)
Fixed a Qt bug that caused KWin on X11 to sometimes consume excessive CPU resources when locking or turning off the screen. (Vlad Zahorodnii, link)
Fixed a bug that could cause the plasmawindowed
developer tool to crash when viewing the System Tray widget. (Chris Xiong, link)
KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.
You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either; many other opportunities exist!
You can also help us by making a donation! A monetary contribution of any size will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.
To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.
Let’s go for my web review for the week 2025-31.
Tags: tech, cloud, vendor-lockin, politics
A change in culture and political will is indeed necessary. The relationship between organisations and US cloud providers isn’t healthy.
https://berthub.eu/articles/posts/our-self-inflicted-cloud-crisis/
Tags: tech, self-hosting, criticism
There is some truth to this. Self-hosting isn’t for everyone just for the skills and compromises it requires. We need more widely available solutions without the corporate overlords.
https://www.drewlyton.com/story/the-future-is-not-self-hosted/
Tags: tech, foss, communication, xmpp, matrix
Very interesting stuff. This doesn’t give a very cheerful picture of the current state though. Can a XMPP revival be in the cards? That would be an interesting outcome.
https://wiki.alopex.li/ADiveIntoOpenChat
Tags: tech, xmpp, messaging, foss, self-hosting
It’s nice to see there are turn key solutions for hosting your own XMPP server nowadays. And the community behind this one even improve on the mobile applications.
https://neilzone.co.uk/2023/08/a-month-using-xmpp-using-snikket-for-every-call-and-chat/
Tags: tech, tools, syncing, realtime, collaborative
Looks like a nice tool for real-time collaboration on files.
https://ethersync.github.io/ethersync/
Tags: tech, linux, graphics, wayland
That’s a good point too often overlooked by people complaining at Wayland. It indeed enable form factors and uses cases that we couldn’t address with X11.
https://ordinary.cafe/@technobaboo/114935252929285259
Tags: tech, secrets, shell, tools
This is a nice trick for keeping your secrets safe while having them handy when needed.
https://ergaster.org/posts/2025/07/28-direnv-bitwarden-integration/
Tags: tech, shell, learning, funny
Neat little introduction to use your shell properly.
https://journal.bsd.cafe/2025/07/28/the-bard-and-the-shell/
Tags: tech, shell, scripting, documentation
This is really a neat trick. We should have more such self-documenting scripts indeed.
https://holdtherobot.com/blog/heredocs-can-make-your-bash-scripts-self-documenting/
Tags: tech, tools, command-line, learning, habits
This is indeed a nice way to setup some new habits on the command line.
https://www.judy.co.uk/blog/using-fortune-to-reinforce-habits/
Tags: tech, programming, design, type-systems, c++
This is still a valid approach. I regularly encounter cases where the type tag pattern would have been welcome.
https://www.ilikebigbits.com/2014_05_06_type_safe_handles.html
Tags: tech, c++, metaprogramming
This really unlocks interesting features in the C++ space.
https://www.reachablecode.com/2025/07/31/c26-reflections-adventures-compile-time-uml/
Tags: tech, shader, mathematics, graphics
Nice explanation on the options for anti-aliasing when rendering using SDFs
https://blog.pkh.me/p/44-perfecting-anti-aliasing-on-signed-distance-functions.html
Tags: tech, architecture, syncing
Good insight into why Dropbox rewrote its sync engine for desktop clients.
https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine
Tags: tech, syncing, compression
A follow up on the Dropbox sync engine rewrite, or why they introduced brotli compression.
https://dropbox.tech/infrastructure/-broccoli–syncing-faster-by-syncing-less
Tags: tech, programming, architecture, object-oriented, type-systems, history
A talk from Casey Muratori who is pushing his ideas on software architecture. This one is very interesting on the long history detour it does. Shows well how we keep rediscovering stuff which sometimes go back to the early times of computer science.
https://www.youtube.com/watch?v=wo84LFzx5nI
Tags: tech, tests, tdd, research
A nice little survey of what the academia already had to say about TDD a few years ago. Clearly the outcome seems mostly positive.
https://medium.com/@jitterted/looking-at-tdd-an-academic-survey-956a80545713
Tags: tech, design, architecture, xp, agile
It’s likely the best explanation of the YAGNI acronym I know. Explains quite well when it applies or not.
https://martinfowler.com/bliki/Yagni.html
Tags: tech, agile, project-management, kanban
Nice check list, there’s more to project life than churning out tickets.
Tags: tech, agile, business, criticism
Looks like another certification circus is about to begin…
https://ronjeffries.com/articles/-w025/y/y/
Tags: tech, agile, project-management, team
Don’t just blindly apply dailies. Make sure they really solve a problem in your team.
https://blog.jbrains.ca/permalink/your-daily-scrum-is-killing-your-team
Tags: tech, agile, project-management, change, habits
You have to be willing to experiment and adjust in order to truly be agile. Otherwise you indeed just do dailies and call yourself agile.
https://toolshed.com/2015/05/its-an-experiment.html
Tags: tech, agile, retrospective, tools
Neat tools to keep retrospective fresh. If people settle too much in habits they quickly become dull.
Tags: tech, programming, team, motivation, management
This is still a good framework to think about what motivate developers in a team. Not everyone is the same.
https://www.bennorthrop.com/Essays/2013/developer-motivation.php
Tags: management, hr
An oldie but still a good one. Yes, the people matter but even good people won’t strive in a badly designed system.
https://bobsutton.typepad.com/my_weblog/2006/08/crappy_people_v.html
Tags: physics
Quantum mechanics and the many world theory really are playing with your brain. Funnily enough I read an excellent novel recently based on this principle.
https://www.youtube.com/watch?v=7wK4peez9zE
Bye for now!