07 Sep 2026

feedPlanet KDE | English

Replacing startplasma with shell scripts or dinit (Part 1)

I'm getting old (though, not as old as the image below), and I miss the good old days when using Linux was more difficult, but when every system in a Linux desktop session was simple.

Excalibur (1981)
Excalibur (1981)

This was before polkit, systemd, … Even before DBus and PulseAudio. All of these systems are cool and all, but I sometimes miss the simplicity of "everything can be a shell script".

I've been playing around with something that made me investigate how the Plasma session is started, and if I can replicate it without significant issues with a simple shell script or something else.

It turns out it is not that difficult of a process, just a bit convoluted.

Your chosen display manager starts startplasma. A DBus session is created and startplasmacompositor (and kwin_wayland) is started. Then plasma_session starts. And it starts kded6 and ksmserver. There are a few other things that are started as well (like kactivitymanagerd), but they are started automagically by DBus when another component tries to use their DBus API.

Moving to a shell script

In the old days, there was just a simple shell script called startkde which set the environment variables and started all the needed processes for a working KDE (and later Plasma) session. It wasn't pretty, it wasn't efficient, but it did what it needed to.

Se I decided to try to reimplement a rudimentary version of that script for the new Plasma.

These are the basic environment variables you'd want set before running a Plasma session (or other UI applications):

# XDG
export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=KDE
export XDG_SESSION_DESKTOP=KDE

# Qt
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_WAYLAND_RECONNECT=1

# KDE
export DESKTOP_SESSION=plasma
export KDE_FULL_SESSION=true
export KDE_SESSION_VERSION=6

I placed this into a seaprate script called env.sh as it is useful for testing to be able to initialize the same environment in a shell outside of startkde.

Apart from these, if you have some custom installation paths for Qt or KDE things, you should also set PATH, XDG_DATA_DIRS, XDG_CONFIG_DIRS, QT_PLUGIN_PATH, QML2_IMPORT_PATH and QT_QUICK_CONTROLS_STYLE_PATH.

If you have any custom environment variables defined in ~/.config/plasma-workspace/env, you should add them here as well (or source all the files from that directory).

For the main script, just source env.sh, run dbus-update-activation-environment --all and start all the session components mentioned above:

source env.sh
dbus-update-activation-environment --all
kwin_wayland --drm &
KWIN_PID=$!
sleep 1

export WAYLAND_DISPLAY=wayland-0
kactivitymanagerd &
ksmserver &
kded6 &
plasmashell &
krunner &
# other things you want started along with Plasma

wait $KWIN_PID

The sleep 1 is evil and there are better ways to check if wayland-0 became available, but this is a quick and dirty script after all. And the original startkde script also had some sleeps in it.

The only thing remaining is to create a session file that your display manager can use, and you're good to go (/usr/share/wayland-session/shellscript-based-startplasma.desktop)):

...
Exec=dbus-run-session -- /path/to/the/script.sh
...

This seems to work without important issues, it just skips the splash screen which I can live without (wow, ksplashqml is 15 years old…).

I didn't test it for too long, as I quickly replaced this shell script with a dinit-based setup, but more on that in the next post.

I'm going to Akademy 2026

07 Sep 2026 8:10am GMT

Photos: a proposed replacement for Gwenview

Gwenview has been KDE's flagship image viewer for over 25 years. It works, it's feature-packed, and it's been modernized repeatedly. Gwenview has served generations of KDE users faithfully and well.

So… why build a replacement?

Well, over the years Gwenview has fallen behind in some areas that can't easily be retrofitted without rewriting half of it anyway - like better performance with large image libraries, GPU acceleration, mobile-friendliness, and the kind of enjoyably hackable QtQuick UI that would make it easier to modernize and engage a new generation of contributors.

Either by way of illustration or as a result of the above, community contributions of features, bug fixes, and UI improvements to Gwenview have dried up in recent years. It would appear that Gwenview's technical architecture has reached the limit of what people are willing to do with it.

Something new

Meet Photos (originally named "Koko"):

Actually I lied: Photos is not a new app. Its first release was five years ago, after extended development dating at least back to 2017. But it was always somewhat niche, because it began as a mobile app and couldn't match Gwenview in raw functionality and desktop-friendliness.

So over the past year, Techpaladin Software (full disclosure: I'm the CEO) has sponsored a bunch of development with the explicit goal of bringing Photos to parity with Gwenview as a first-class desktop app. Oliver's recent blog post contains lots of interesting details about the process.

Techpaladin folks will continue to contribute maintenance for a while, but our hope is that we've managed to bootstrap the app to the point where the KDE community can generally take over for further feature and UI development on the desktop side. Therefore…

Give it a try!

I'd like to invite users to try using Photos, and invite distros to consider replacing Gwenview with it - either soon, or in the future.

I'm sure it won't be perfect. Gwenview has had an extra 15 or so years in the metaphorical oven. But at this point Photos has pretty much all of the relevant features, plus some added goodies:

So give it a try! The current 26.08 release is pretty good, and the upcoming 26.12 release will add a few more improvements.

If you find any bugs, sources of UI awkwardness, or missing features compared to Gwenview that you actually need and care about, feel free to report them on the Bugzilla page. And changes can be contributed via merge request on Photos' invent.kde.org page.

Let us know what you think! And if you like it, consider helping out with development or bug triaging. It takes a village to raise a child maintain an app. 🙂

07 Sep 2026 4:53am GMT

Harmonicon Weekly Update: any harp, any file

This is a weekly update, which means I did a week of things and now I'm going to tell you about them, and I should say up front that most of the week went on two problems that sound small when you write them down. You had to own the exact harmonica a chart was written for. And the chart had to be in my file format, the one I invented, the one nobody else has ever written anything in.

The one harmonica you own

Here's the thing about harmonicas. A diatonic is built in one key. Not tuned to one key, built in it, the reeds are physically cut for it, and if the chart says C and the harp in your pocket says G then you can't play that chart. Not badly, not with effort. You sit there and nothing you do produces the note.

And people learning have one harmonica. One. Whichever one turned up. So the situation where you open my game, pick a song, and discover it wasn't written for the only instrument you own isn't an edge case, it's Tuesday.

There are two honest answers to this and they go in opposite directions. You keep the tab and let the music move: same holes, same breath, different key. Or you keep the music and let the tab move: same tune, different holes. Both are defensible, I couldn't pick, so I built both and put them on a little screen that turns up after you choose a song.

That screen also tells you the damage. Something like "5 need a bend · 2 need an overblow · 9 can't be played". The nine is the number I built the screen for. If swapping your harp in quietly eats a fifth of the melody, I'd rather say it out loud and let you decide than hand you a chart with holes in it and let you assume you're the problem.

The test that went looking for one thing

The remapping code has a property test on it. It walks twelve source keys against twelve target keys, both harmonica families, every hole, both breath directions, in both of those modes I just described, and for every single combination it checks that anything the code calls playable is a pitch that harmonica can physically produce.

That check is the entire reason the test exists. If it fails, my game is sitting there listening for a note you cannot make, and then marking you down for not making it, and you'd have no way of knowing which of you was broken.

It told me I was wrong three times, and each time the code was right, which is why I wrote a test instead of trusting myself. A G harp is pitched below C, not above, so G4 sits on hole 4 and not hole 1. A#4 isn't on an F harp at all, and I had to go find a Bb before I could test the case I actually wanted. And transposing a chart onto its own harmonica isn't the no-op I'd assumed, because hole 3 blow and hole 2 draw are both G4 on a C harp, so resolving by pitch alone was quietly rewriting one into the other and telling me it had done nothing.

But that's not the interesting part.

The interesting part is that the same test, which I wrote to check transposition, sat down and told me about a bug that has nothing to do with transposition at all. The set of notes my scorer will accept from your microphone was built out of blow reeds, draw reeds and bends. Not overblows. Not overdraws. On a C harp, seven of the eight over-pitches simply were not in that set, which means any chart asking for an overblow could never be scored. Ever. Not once. And nothing on screen would have told you why.

Nobody hit it because none of the charts I ship use one. It was going to sit there until somebody wrote something advanced, and then it was going to look like a microphone problem, and they'd have spent an evening buying a better microphone.

Later in the week I found the same kind of thing pointing the other way. My table of how far each hole bends had every hole capped at a semitone and a half, which is just wrong. A bend pulls a reed toward the other reed in the same hole, so how far you can go is however much room is between them. Three full semitones on hole 3, which is the note you buy a harmonica in order to play. Nothing at all on holes 5 and 7. The table says that now, and there's a test comparing it against the physical layout, because two descriptions of one physical fact will come apart eventually and I'd rather find out from CI.

Somebody else's files

Harmonicon reads Guitar Pro now, gp3 through gp7, and MuseScore, and MusicXML, and MIDI. Drop one in a song folder and it gets found and converted and played.

Parsing them was the easy half. The hard half is that a tab file is a whole band. Bass, comp, melody, usually drums, and I have to work out which of those you meant. So every track gets converted on its own and fitted to its own harmonica, because the right harp for a melody is almost never the right harp for a bass line, and then you get a list telling you what you'd actually be able to play. "Track 1 - 6 notes, 0% playable. Track 2 - 100%."

If a track is called Harmonica it wins automatically, and I learned two exceptions to that by breaking things. A bass line called Harmonica handed me a chart with no playable notes in it at all, so being named right no longer beats being playable. And drum tracks now report zero notes on purpose, because their frets are drum kit indices, and if you read those as pitches you get a part that looks entirely reasonable, wins the picker, and then plays nothing whatsoever resembling the song.

The word "harp" on its own is deliberately not in my list of names to look for. It matches an orchestral harp. A harp part converted to harmonica is precisely the unplayable soup the list exists to prevent, and the arithmetic isn't close: missing a track called Harp costs you one click, matching a real one costs you a chart nobody alive can play.

All seven of them sit behind one trait in a new crate, so the next format is a module and a match arm. It cost more than I wanted. That crate went from 5 dependencies to 94, almost all of it zip and everything zip drags along behind it. I wrote the tradeoff down and slept on it before deciding, which I mention because I nearly didn't, and the thing that decided it was that zip is what MuseScore and the newer Guitar Pro containers genuinely need - so it buys three formats rather than propping up one.

Which of my detectors can hear a chord

Chord scoring has been in there for ages. It wants every pitch of the chord present at the same time, which is a reasonable thing to want. What I had never once checked is whether the pitch detectors can actually deliver it.

So I measured, on a real chord out of a real chart. FFT, which is the default, hears both notes. NMF hears both notes. YIN, pYIN and MPM hear neither.

And the three that fail don't fail quietly. pYIN and MPM both report an F4, confidently, a note which is not in the signal, which simply happens to sit between the two notes that are. So it isn't a chord going unscored. It's a wrong note strolling into the scorer with its hands in its pockets.

None of which was visible from inside the game. Choosing pYIN in the options made every chord in every chart unhittable and told you nothing. The picker says "pYIN - single notes only" now, and if the song you loaded has chords your detector can't hear, a banner says so.

While I was in there: unplugging your microphone in the middle of a song used to leave the game convinced it was still connected. Your notes just stopped scoring, forever, silently. Which is the exact failure I'd built a warning overlay for the week before, reachable by the more likely route the entire time, and I'd like it on the record that I found this myself before anybody else did.

Three hundred gigabytes

Now this next part isn't about the game at all and you can skip it, except that it ate two days, so.

My build directory had reached 300 gigabytes.

Two separate reasons, both boring, both mine. A debug binary was 2.41 GB, of which about ninety percent was debug information for dependencies I have never once stepped into. And cargo doesn't delete the old ones. So there were ninety-nine files of over a gigabyte each, sitting there, going back to August, every one of them a complete binary from some build I'd long since stopped caring about.

A few profile settings and a sweep later a debug binary is 287 MB, and a clean build plus the entire test suite leaves the whole tree at 7.1 GB.

While I was in the mood I also found the version number written in four different places that disagreed with each other, which meant the version the game showed you in Help / About was one that no release has ever actually carried. One script bumps all four now, and CI fails in about three seconds if the tag and the manifest disagree, rather than after four platform builds have finished uploading.

So: you can play a chart on the harmonica you own, or on the one it was written for, and either way it'll tell you what that's going to cost you before you start. And you can hand it a Guitar Pro file, and it'll work out which part of the band you meant.

1306 tests passing. Still 0.0.x, still early, still on GitHub.

07 Sep 2026 12:00am GMT

05 Sep 2026

feedPlanet KDE | English

State of the Map 2026

Last week I attended this year's State of the Map (SotM) in Paris, France, OpenStreetMap's annual conference. This was actually my first time making it to SotM since I started working with OSM data for KDE Itinerary eight years or so ago.

Group photo of 500+ SotM 2026 conference attendees.
SotM 2026 group photo (source)

All links to talks below go the their abstracts, video recordings are still being added to the OSM FR Peertube instance at the time of writing.

Public Transport

On Saturday I had the chance to present Transitous, right after Felix's and Robin's talk about MOTIS, the routing engine we use in Transitous.

Transitous also got mentioned in a couple of other talks, including Cartes announcing integration with Transitous and CoMaps announcing work towards that as well. Overall we got very positive feedback for Transitous.

SotM being in Paris also meant there were a number of participants and presentations from SNCF and wider French public transport ecosystem. This also once again demonstrated why we need things like the Open Transport Community Conference, unsurprisingly a lot of challenges in this field exist in all countries and more international exchange could avoid some duplicated efforts.

Outside of the conference program there were also a few discussions on how to move specific topics in Transitous forward, such as integration with Citybikes or improving GTFS data deduplication and measuring GTFS feed overlap.

Indoor Mapping

SotM allowed me to meet a few people in real life that I had only encountered online in the quarterly online OSM indoor meetup so far. The work Antoine is doing on train stations or Gwenaëlle is doing on accessibility and universities isn't "just" mapping, it's also pushing modelling and tagging schemes in OSM forward.

I also got a chance to talk to the team from Sozialhelden about their ongoing work on elevator status data (realtime disruptions and planned maintenance times), and how we could move forward with matching that to OSM data. That's a prerequisite for integrating elevator status data into Transitous, an eagerly awaited feature there given the huge impact this has on wheelchair routing.

A rather different but also important topic was QA tooling for indoor mapping. For OSM in general there's not only a number tools but also quite some research on e.g. reachability or completeness metrics. For indoor spaces this is still largely uncovered, so it was good to see lightning talks in the scientific track on that.

Yet another topic that came up was the documentation, training and onboarding story for indoor mapping. Even some very experienced OSM mappers see indoor mapping apparently as hard and unapproachable, something easy to lose sight of when stuck deep in modelling and tagging issues.

Dynamic OSM

Since the discussions at the FOSSGIS conference and the discoveries presented at Grazer Linuxtage earlier this year the momentum around dynamic (traffic) data keeps building, there was a packed BoF session on this at SotM as well.

There's a very broad interest in this, besides the usual suspects like the FOSS routing engines and map/navigation apps there were a number of national agencies present and indicating their support for an open solution, as well as firefighters unhappy with Google routing them around accidents while actually needing to go towards them.

There's currently three approaches being developed:

Those aren't necessarily competing, but complement each other. OpenEventDatabase shows that there's usecases for this way beyond traffic data, OSM-RT looks like an elegant and efficient way to distribute and combine dynamic data feeds from different sources into applications, and both crowd-sourcing and integrating existing official data probably needs a more domain-specific view as adopted by the OSM Road Closure database.

One concrete outcome of the BoF session is that there's no a Matrix channel for coordinating work around dynamic OSM data, as this probably only has a chance of gaining critical mass and going anywhere if we manage to align all this. That remains hugely ambitous of course, but seeing how eager people and organizations seem to be to break free of the monopolies in this area, this might actually work out.

KDE Integration

There's also a few outcomes that immediately benefit users of various KDE apps:

And more

All of this is barely scratching the surface of SotM, the topics and the community are far broader than this. Seeing talks on how software and data from the OSM community is essential for emergency services, or helped during the response to the recent earthquakes in Venezuela show how much real-world impact what we do can have.

Hearing the head of the French National Geographic Institute (IGN) very explicitly state in his closing remarks that (digital) sovereignty can only be achieved by openness and collaboration rather than by closing down and adding borders was also encouraging, many public agencies have yet to understand that.

SotM was my start into the conference season, two other major events for me follow in quick succession now, KDE Akademy in Graz, Austria in just two weeks, and the Open Transport Community Conference early October in Bern, Switzerland.

I'm going to KDE Akademy 2026 banner

05 Sep 2026 6:45am GMT

04 Sep 2026

feedPlanet KDE | English

This Week in Plasma: So Many Ways to Click and Scroll

Welcome to a new issue of This Week in Plasma!

Some of the last Plasma 6.8 features landed this week, and there's a whole bunch of great stuff! Let's jump right in:

Notable new features

Plasma 6.8

Plasma now features a built-in "dwell clicker" feature! This is an accessibility tool that automatically clicks whenever the pointer is moved somewhere and then left alone for a moment - and what constitutes a "moment" is configurable, of course. It works really well. You can learn a bit more about it on Sebastian's blog. (Sebastian Sauer, KDE Bugzilla #521391)

Speaking of pointers and clicking… the feature to scroll by holding down the middle mouse button and moving the pointer now has a new optional triggering mode: you can press the middle mouse button to enter and exit this scrolling mode, without having to hold it down. This makes it bit closer to the "Autoscroll" feature on Windows. (Uriel Fontan, KDE Bugzilla #495617)

Plasma's ever-growing list of alternate calendar layouts now includes the Bikram Sambat calendar used in Nepal and parts of India. (Satya Prakash Dahal, KDE Bugzilla #500298)

Bikram Sambat calendar in the Digital Clock widget

There's now a new remote desktop mode that locks the remote computer's physical screens upon connection, and shows a newly-created virtual screen to the user who is connecting. (David Edmundson, krdp MR #230)

“Exclusive mode” for remote desktop connections wherein the remote machine’s screens are locked during a remote desktop session, and the connecting machine sees a virtual display

Screen readers can now ask KWin what window is under the pointer. (Nicolas Fella, kwin MR #9825)

Union styles now appear on System Settings' Application Styles page! This will make it easier to use and test them, and you can also import them from files, too. (Arjen Hiemstra, plasma-workspace MR #6970)

System Settings’s Application Style page showing the “Breeze (Union)” style

Notable UI improvements

Plasma 6.8

You can now disable a screen or other output only when this is actually supported. (David Edmundson, kscreen MR #512)

The mouse keys acceleration spinbox no longer claims it's showing milliseconds, because it isn't! (Nicolas Fella, plasma-desktop MR #2854)

When you resize the Display Configuration widget, the buttons within it resize smoothly, not jerkily. (Michal Malinowski, kscreen MR #513)

The off-by-default feature to show tooltip thumbnails when clicking on a grouped Task Manager Task (kind of like how Windows does it) now works in a more natural-feeling way. (Christoph Wolk, KDE Bugzilla #484206)

KDE Gear 26.12.0

The expander arrow for notifications in KDE Connect's widget now points in the correct direction in all states, including when using a right-to-left language. (Ely Golden and Nate Graham, KDE Bugzilla #524889)

Notable bug fixes

Plasma 6.6.7

Fixed an issue that could make the Maliit on-screen keyboard crash at seemingly-random times. (Sebastian Müller, kwin MR #9818)

If a Plasma Vault with the "Go offline while this vault is open" feature is left open when the system shuts down, networking is now restored on the next login as expected. (Just Karol, KDE Bugzilla #457680)

Clicking on a link in a notification no longer also invokes the notification's default action. (Kai Uwe Broulik, plasma-workspace MR #7003)

Plasma 6.7.5

Fixed a somewhat common way that KDE's background daemon could crash when connecting to a Wi-Fi network or creating a hotspot. (Mickaël Thomas, KDE Bugzilla #522489)

Fixed a somewhat common way that Plasma could crash while shutting down or restarting when there was a Weather Report widget in the panel. (Bohdan Onofriichuk, KDE Bugzilla #524929)

Discover no longer fails to check for updates on operating systems that integrate the fwupd firmware updater system into Discover, but where its background process quits early while Discover is still running. (Tobias Fella, KDE Bugzilla #521682)

Task Manager tasks' progress bars now work as expected when using a right-to-left language. (Christoph Wolk, KDE Bugzilla #524112)

Fixed a recent regression in Discover that made it show a banner about updates requiring a restart for too many types of updates. (Aleix Pol Gonzalez, discover MR #1404)

Fixed a bug that made scrolling through Alt+Tab items with a mouse wheel only work in one direction. (Vlad Zahorodnii, KDE Bugzilla #522229)

Apps that resize their windows immediately after launching are now still positioned correctly according to the "Centered" window placement mode. (Vlad Zahorodnii, KDE Bugzilla #525036)

Fixed some visual glitches in the Eye On Screen effect. (Sudip Datta, KDE Bugzilla #481100)

Fixed the Apply and Help buttons in the Clipboard settings window not working always, or at all, respectively. (Tomáš Hnyk, KDE Bugzilla #485460 and plasma-workspace MR #6992)

Plasma 6.8

Apps or the user can no longer crash KWin by sending malformed shortcut assignment requests over D-Bus. (Vlad Zahorodnii, KDE Bugzilla #524700)

On System Settings' Power Management page, the spinboxes used to configure charge limits now work properly when you type numbers into them. (Christoph Wolk, KDE Bugzilla #505071)

Notable in performance & technical

Plasma 6.7.5

Changing your system languages now sends the same data correctly to Flatpak apps, so they can more reliably display the languages you asked for. (Harald Sitter, plasma-workspace MR #6883)

Plasma 6.8

Screen recordings made by Spectacle and any other app using the KPipeWire library are now higher in quality. (Sergey Katunin, kpipwire MR #278)

Reduced the amount of VRAM that Plasma's Breeze theme requires by optimizing some of its SVG assets. (Méven Car, libplasma MR #1567)

How you can help

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.

Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team!

Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. 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 out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.

To get a new Plasma feature or a bug fix mentioned here

Push a commit to the relevant merge request on invent.kde.org.

04 Sep 2026 6:17pm GMT

Web Review, Week 2026-36

Back from vacations and I did some catch up late at night… So expect a larger selection than usual. Let's go for my web review for the week 2026-36.


WEBMASTER@ a manifesto for everyone

Tags: tech, web, internet, culture, history

A very uplifting essay in my opinion. Starts with a historical perspective on the webmaster role to then evolve into a manifesto about creation on the web.

https://brennan.day/webmaster-a-manifesto-for-everyone/


There's no such thing as Just a Tool

Tags: tech, tools, philosophy, framework, design

Indeed, it's high time our industry leaves the "it's just a tool" rhetoric behind. This claim is a way for us to not take our responsibilities in the design of the tools we make.

https://deadsimpletech.com/blog/no-such-thing-as-just-a-tool


Normalized Fascism in Open Source: $12 Million Given to DHH

Tags: tech, foss, politics

There's no "apolitical" projects. Claiming the contrary is just trying to hide your agenda. While our engineer culture keeps falling for it, really bad actors are benefiting from it…

https://brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/


Meta's $17 Billion Settlement is a Bad Deal for Teens and All Social Media Users

Tags: tech, facebook, social-media, law, surveillance

This is not indeed the win you'd expect. More surveillance coming pushed by the settlement…

https://www.eff.org/deeplinks/2026/09/metas-17-billion-settlement-bad-deal-teens-and-all-social-media-users


The actual epistemic crisis

Tags: tech, ai, machine-learning, gpt, fake, fake-news, knowledge, politics

Very important opinion piece from Cory Doctorow again. The trend was clear of an epistemic crisis brewing and generative AI basically put it on steroids. This is a real blow to our civilisation.

https://pluralistic.net/2026/08/20/epistemic-void/#expert-agencies


The people vs the AI overlords

Tags: tech, ai, machine-learning, copilot, politics

Clearly there's a political project behind the design of those tools. Clearly our industry is lacking enough class consciousness to push back against the "AI overlords" agenda.

https://anarc.at/blog/2026-08-18-people-vs-ai-overlords/


We Tracked a Shipment of Rare Books. It Ended at an Amazon AI Training Facility

Tags: tech, ai, machine-learning, gpt, ethics, book, knowledge

This truly makes me sad… The level of cynicism required to destroy rare books is just beyond me. All this to squeeze the last human made tokens available with no real gain in sight.

https://www.404media.co/we-tracked-a-shipment-of-rare-books-it-ended-at-an-amazon-ai-training-facility/


AI Software Development - What Does The Data Say?

Tags: tech, ai, machine-learning, copilot, engineering

The executive summary is good. This is also a nice source of reference papers and studies on the topic. It shows quite well why the work is moving to the harnesses rather than the models. Indeed models probably won't improve much in terms of reliability. It all points once again towards a needed shift of people attention from the shiny toys and towards team practice instead.

https://codemanship.wordpress.com/2026/08/12/ai-software-development-what-does-the-data-say/


There Is Still No Silver Bullet

Tags: tech, ai, machine-learning, copilot, productivity, engineering, craftsmanship

Very good opinion piece going back to Naur's and Brook's important papers about software production. It's a sobering take on how LLM can't bring the promised productivity gains. This is not saying it can't bring productivity gains of course but it'll never be as dramatic as what the current hype cycle pushes people to believe.

https://cekrem.github.io/posts/there-is-still-no-silver-bullet/


Copyrightability of LLM-generated code: Can we license "vibe code" into Free Software?

Tags: tech, ai, machine-learning, copilot, copyright, law, foss

Clearly the situation of copyright around LLM uses is complex. It's easy to fall into code which can't be copyrighted if there's not enough human input to produce the work (and keep in mind that "prompting" is likely not enough input). This also raises questions about potential copyright violations. Looks like following the guidelines of the SFC for contributing to Free Software projects is getting especially important.

https://fsfe.org/news/2026/news-20260825-01.html


And then the men with guns tell you to do it anyway

Tags: tech, security, privacy, politics

Or a reminder that no system can be made to be completely safe and secure. When the political pressure or violence gets in the equation it's hard to not simply falter and satisfy the demands.

https://shkspr.mobi/blog/2026/08/and-then-the-men-with-guns-tell-you-to-do-it-anyway/


hk - Git Hook Manager

Tags: tech, git, tools, linting

Might turn into a nice way to manage your git hooks.

https://hk.jdx.dev/


Easy Sandboxing on Linux with Bubblewrap

Tags: tech, linux containers, flatpak, security, sandbox

A nice and simple approach to sandbox a command. Of course with the system integration it's a bit porous bit it might be a good base for quite a few uses.

https://bxt.rs/blog/easy-sandboxing-on-linux-with-bubblewrap/


Hister: Your Own Search Engine

Tags: tech, search, self-hosting

Looks like an interesting personal indexing system for your own files and slice of the web.

https://hister.org/


Monitoring SystemD services with Healthchecks.io

Tags: tech, systemd, monitoring

Neat trick to monitor systemd services.

https://passbe.com/2022/healthchecks-io-systemd-checks/


Python sets and dictionaries can have quadratic-time performance

Tags: tech, python, performance, algorithm, cpu, memory, complexity

Too often people mistake the algorithmic complexity theory for the real performances you would get. This can't be further from the truth. The memory layout trumps all. As usual you need to measure.

https://lemire.me/blog/2026/09/03/python-sets-and-dictionaries-can-have-quadratic-time-performance/


Rewriting in Rust: Performance, Failures, 2026 Reality Check

Tags: tech, rust, porting, rewrite, safety

Unsurprisingly it's not all unicorns and rainbows. This piece tries to highlight the right questions to ask yourself before aiming for a rewrite.

https://blog.jetbrains.com/rust/2026/08/10/rewriting-in-rust/


Rust concurrency vs Go concurrency: stackless vs stackfull coroutines

Tags: tech, go, rust, asynchronous, coroutine

Comparison of two concurrency models. This is a light read which shows quite well the differences.

https://kerkour.com/rust-vs-go-concurrency


Concurrency vs. Throughput: why more parallelism can make databases slower

Tags: tech, multithreading, databases, performance

When more concurrency might not help. Illustration with the case of database queries.

https://planetscale.com/blog/concurrency-vs-throughput-vitess-mysql


SQLite for Everything

Tags: tech, databases, sqlite, architecture, funny

Another love letter to SQLite. It's meant to be funny but comes with plenty of good arguments and ideas as well.

https://joecode.com/2026-08-19-sqlite3/


The Browser's Main Thread Is Expensive

Tags: tech, web, frontend, browser, performance

A reminder that web frontend work isn't as easy as it sounds. It brings quite some caveats and his difficult to do well. Otherwise you wonder why things stutter or render badly.

https://kciter.so/posts/the-expensive-main-thread/en/


Ambient CSS - a physics-based lighting system for CSS

Tags: tech, css, graphics, physics

Really nice tricks you can pull with CSS nowadays. The result is fairly nice visually.

https://ambientcss.vercel.app/


HTML Can Do That

Tags: tech, html, javascript

More proofs that HTML is more and more capable by itself.

https://chrisburnell.com/html-can-do-that/#example-until-found


Solving copyright & licensing information in client-side JavaScript, CSS and similar

Tags: tech, web, frontend, javascript, licensing, foss, law

Finally a sensible approach to communicate license compliance for client side content delivered via a browser. It's not too much of a bother so let's hope it gets picked up.

https://matija.suklje.name/solving-copyright-licensing-information-in-client-side-javascript-css-and-similar-agreeing-on-a-useful-solution


Software That Must Not Be Wrong: Property Tests for a Pediatric Dosing Calculator

Tags: tech, property-based-testing, tests, rust, type-systems

Interesting case where you want to property test but without a specific property base test tool. Indeed, if you need to be exhaustive and the input space is small enough this is the better decision. This article also comes with interesting point on Rust type system but that's less central to the main point.

https://rust-blog.github.io/post/favi-child-property-tests/


Let's not call it "tech debt," it's just "mess"

Tags: tech, technical-debt, complexity, maintenance, craftsmanship

A good piece showing some of the problems with how the term technical debt is widely misused. There's a problem with the metaphor itself, you rarely have the information level needed to call it debt.

https://www.simplermachines.com/lets-not-call-it-tech-debt-its-just-mess/


Guilt-Driven Development

Tags: tech, quality, engineering, craftsmanship

I like this article somehow. Indeed I'd like to see more guilt in the people shipping bugs in production (myself included probably). Also I'm very much aligned with the proposed approach to tame issues: thinking, types, tests, and telemetry.

https://markuseliasson.se/article/guilt-driven-development


Reviewing code is a skill

Tags: tech, engineering, codereview, learning, knowledge

Excellent piece about code reviews. But it goes further than that and shows how our skills could improve. By tackling this question it does a good job showing we don't know where the ceiling is in terms of skills in our craft.

https://typesanitizer.com/blog/code-review.html


Coachability++

Tags: tech, coaching, management, mentoring

Interesting slide deck about coaching in tech circles. Clearly provides good inspiration both for coaches or if you're the one requesting to be coached.

https://cate.blog/2021/02/22/coachability/


The Expertise Trap

Tags: expertise, problem-solving, cognition, bias

This is an easy trap to fall into unfortunately. Be mindful of your own biases. They might increase as you gain more expertise in a field unfortunately.

https://www.congruentchange.com/the-expertise-trap/


Has America Crossed the Asshole Threshold?

Tags: history, politics, mathematics

Don't be fooled by the click-bait title. It's a good piece looking at history and game theory. It gives some lessons about how civilizations collapse… or not.

https://thegrimhistorian.substack.com/p/has-america-crossed-the-asshole-threshold?ref=DenseDiscovery-404


Meet the 2026 Ig Nobel Prize winners

Tags: science, funny

Another good crop of Ig Nobel this year! I'm not sure which one is my favorite.

https://arstechnica.com/science/2026/09/meet-the-2026-ig-nobel-prize-winners/



Bye for now!

04 Sep 2026 11:46am GMT

Bug triaging help needed

For many years now, I and others have been working on getting plasmashell's open bug reports as accurate and actionable as possible.

We've made tremendous progress, driving down the number of unconfirmed bug reports to its lowest levels in over a decade, and mostly keeping it there:

In case you're worried about the "confirmed" count rising, it includes almost 800 feature requests. The actual number of known and confirmed bugs is about 1,100, and is not consistently rising. Also, the big spike was from a mass move of bug reports into plasmashell to make it easier to centrally track shell bugs over time.

Right now we're at a point where we're down to about 160 unconfirmed reports, and we need your help to get that down as close to 0 as possible.

Why do we need your help?

Because most of the remaining unconfirmed bugs are really hard to reproduce and confirm. They can only be understood or reproduced by someone with specialized hardware, uncommon software, specialized configurations, specific VPN setups, domain-specific knowledge, and so on. Others were reported in a state where the author doesn't know how to reproduce the issue and none of us has been able to, either.

The addition of your valuable eyeballs and brains can help figure out what the heck is going on in these reports!

How to help

Go to https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&list_id=3586535&order=changeddate%20DESC%2Cdupecount%20DESC%2Cshort_desc%2Cproduct%2Clongdescs.count%20DESC%2Cbug_id%20DESC&product=plasmashell&query_format=advanced, and…

What it takes

  1. Use the latest released version of Plasma. that's 6.7.4 as of the time of writing. A distro that uses git master versions of things is even better.
  2. Use a distro that ships KDE software as "vanilla" as possible, with a minimum of distro-specific customizations. Either as your daily driver, or in a VM. Arch Linux and KDE Linux are good options here, and Fedora KDE is okay too. Highly opinionated distros can still work, but are not as ideal for bug triage.
  3. Read through and understand https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.
  4. Be nice. You'll be a part of KDE's public face!

And that's it! Bug triaging help is really appreciated here.

I would absolutely love it if we could get the number of UNCONFIRMED plasmashell bugs down to 0, and then keep them that way by pouncing on every single new one as it comes in.

You can help make that possible! Thanks, everyone.

04 Sep 2026 12:30am GMT

03 Sep 2026

feedPlanet KDE | English

Week 12 + Week 13: Everything merged, Final GSoC blog

Hello everyone!

My Google Summer of Code project Font Subsetting in Poppler has technically been completed with this MR getting merged.

Poppler now supports Font Subsetting and a new release is going to be out soon. Although the work has been rigorously tested for regressions on a lot of PDF files, I am still quite nervous :D

Here's a demo video I made for font subsetting:

Experience

Overall, GSoC was a very enriching experience. I learnt many things I didn't know before such as PDF internals, some C++ and CMake features and sharpened my debugging skills using GDB.
But it was also a very tough experience, there were a lot of times when I thought I was going to fail.

I'll also be attending Akademy in Graz so I hope to meet and learn from a lot of contributors from there!

Gratitude

I am grateful to god for providing me with such an opportunity.

I would like to thank my mentor Albert Astals Cid for mentoring me throughout GSoC.
Huge thanks to the people from the Poppler community, Sune Vuorela, Lucas Baudin and everyone for helping me with my technical doubts in the Matrix IRC.
Thanks to the KDE mentorship team and the board members for managing the GSoC program!

03 Sep 2026 8:15pm GMT

SPDX Cryptographic Algorithm List: summer 2026 update

This summer the SPDX Cryptography Group agreed on how to describe algorithm parameters, tightened its contribution and release processes, and opened the discussion on post-quantum cryptography. Where this report comes from This is an update of the work we do at the SPDX Cryptography Group. SPDX stands for Software Package Data Exchange. Our group is … Continue reading SPDX Cryptographic Algorithm List: summer 2026 update

03 Sep 2026 11:34am GMT

02 Sep 2026

feedPlanet KDE | English

Wayland pain points – Dwell Clicker

One known significant issue when going from X11 to Wayland was our KMouseTool being X11 only.

KMouseTool implements a Dwell Clicker that is an assistive technology designed for individuals who find traditional mouse clicking difficult, painful, or impossible due to conditions like paralysis, mobility issues, or repetitive strain injury (RSI). It allows users to perform left-clicks, right-clicks, double-clicks, and dragging entirely without pressing physical buttons by simply pausing the cursor on the screen for a specified duration.

In KDE Plasma 6.8 we will ship the just merged brand new Dwell Clicker implementation that works also on Wayland.

Here is how it looks in action:

Have feedback or questions? Head over to the KDE Discuss forum to share your thoughts with the team.

02 Sep 2026 3:31pm GMT

01 Sep 2026

feedPlanet KDE | English

Qt AI Assistant Retires As We Invest in Agentic Development Tools

The Way Developers Use AI Has Changed

When Qt AI Assistant was introduced, the state of the art in AI-powered software development was the single-turn prompt: select a block of code, ask for a test case, an explanation, or some boilerplate QML, and review the result.

01 Sep 2026 6:55am GMT

31 Aug 2026

feedPlanet KDE | English

This Month in KDE Linux: August 2026

Welcome to this edition of This Month in KDE Linux, dedicated to KDE's next-generation operating system.

Here's how KDE Linux evolved in August:

Data safety

A major data safety project reached a state of usability!

First, Hadi Chokr transformed users' home folders into Btrfs sub-volumes and turned on automatic Btrfs snapshots for all user files.

Then, Bharadwaj Raju integrated the new kio-snapshot system he's been working on and added support in Dolphin.

Now you can easily view and roll back to older versions of your files, even without an off-device backup:

Three snapshots of a file named “Family trip ideas.md” from different points in time

This doesn't replace a backup, of course! But it does amount to a sort of homedir-level undo feature that can keep your data safe from accidental deletions, or other destructive changes that are less catastrophic than a disk failure or having the device lost or stolen. And these snapshots will be useful to use as backup sources, so you're not trying to back up a moving target.

Another few layers in the data safety onion, shall we say!

CJKV input support by default

Nate Graham finished the project to make Chinese, Japanese, Korean, and Vietnamese text input work out of the box. Now everything needed to type in these languages is pre-installed, and all you have to do is turn it on.

QA & testing

Thomas Duckworth and Bhushan Shah continued to develop, refine, and maintain KDE Linux's automatic QA system, which continued to pay dividends this month. The system caught multiple complex integration issues introduced accidentally in commits made to KDE software - all of which are now fixed, so users of other operating systems will never have to experience them.

Security

Yago Raña Gayoso removed an unnecessary override that gave everyone in the wheel group default access to the Docker daemon's socket.

Nate Graham fixed an oversight that let blacklisted kernel modules into the unified kernel images.

Bugs fixed

Harald Sitter fixed an issue that could make updates fail right after the update was published, or when run on machines with weak CPUs or slow network connections.

Hadi Chokr fixed an issue with user-visible version numbers of KDE Linux builds not including the intended level of precision.

Documentation

Nate Graham added quick links to KDE Linux's official documentation right there in the launcher menu's "Help" section.

Kickoff widget’s “Help” category showing entries for “Documentation” and “Help & Support”

Nate Graham also documented how to free up disk space, added a dedicated "Help & Support" page to the website, and added a link to the project's news feed.

Philip Grant refined and documented a way to integrate KeePassXC with the Flatpak packaging of Firefox and Chromium (and their derivative browsers).

Julius Künzel fixed the styling of the standard Hugo alert bubbles, and Nate Graham ported the docs to use them.

Grab bag

Paul Brown added a neat feature to the set-up-systemd-extension tool that lets you create new extensions at different locations and with different names.

Hadi made the installer report its progress in a more granular way, so there's less waiting around and wondering if the installation process got stuck.

Bhushan Shah removed the "UEFI shell" entry from the bootloader menu, since it was useless for practically everyone, and now the menu is less cluttered.


How you can help

KDE Linux is making steady progress towards its Beta milestone, and is now 85% of the way there.

There's lots to do! If you're a fan of the project, please help out; there are many ways:

31 Aug 2026 9:15pm GMT

Kdenlive 26.08.0 released

We are happy to announce the summer release of Kdenlive 26.08. Continuing the efforts from the last version, the core team has been focusing mostly on stability - fixing bugs and crashes while also doing lot's under the hood improvements.

This release comes with 11 crash fixes as well as improvements to the undo/redo stack for compositions and sequence creation. Work has also been done to modernize the codebase in the Qml loader for Clips and Compositions.

The majority of the new, nifty and shiny additions and enhancements in this release were made by new contributors! This seems to have become a tradition in 2026, and we couldn't be happier about it.

Highlights

Timeline

Automatic Track Creation

Added functionality to automatically create audio tracks when adding a clip to the timeline in case there are not enough. Implemented by Vineet Tiwari.


Reorder Tracks

Added a long awaited ability to reorder tracks. Implemented by Vineet Tiwari.


Markers At Gaps

Added option to add markers at gaps between timeline clips. Implemented by Yash Bavadiya.


Playhead Snapping When Dragging

ALT + drag the time cursor (playhead) in the timeline ruler, it now snaps to nearby snap points like clip edges, guides, markers, and zone in/out. Implemented by Yash Bavadiya.


Copy Selection To New Sequence

It works similarly to "Create sequence from selection" except that it does not remove the clips from the original sequence and replace them with the new sequence clip. Implemented by Vineet Tiwari.


Clip Color Configuration

Added an option to configure colors for video, audio, title, image, and slideshow clip types.

Color Clip Configuration


Playhead/Mouse Zoom

Added a button in the Status Bar to toggle between zooming to the mouse cursor position or the playhead position. Implemented by the mrfantastic.


Multi-Clip Speed Changes

Added the ability to change the playback speed of multiple clips at once either by directly Ctrl + dragging in the timeline or by using the Clip Speed tool. Implemented by Vineet Tiwari.

Title Editor

Snapping

Added snapping in the Title Editor. Implemented by chocolateimage.


Rounded Corners

Rectangles now can have rounded corners. Also notice the draggable spinbox ability to change the radius. Implemented by chocolateimage.


Copy/Paste

Added the ability to copy and paste elements in the Titler. Implemented by chocolateimage.


Automatic Clip Replacement

Added option to automatically replace a title clip in the timeline with the new title clip being edited. Implemented by Eduardo Guedes.


Miscellaneous

Additive Soloing

Added the ability to do additive soloing in the audio mixer by shift clicking. Implemented by Patrick Williamson.


Adjustable Rotation Anchor

Added the ability to set the rotation anchor in the Transform effect. Implemented by Jean Baptiste Mardelle.


Other Noteworthy Changes

Give back to Kdenlive

Releases are possible thanks to donations by the community. Donate now!

Need help ?

As usual, you will find very useful tips in our documentation website. You can also get help and exchange your ideas in our Kdenlive users Matrix chat room.

Get involved

Kdenlive relies on its community, your help is always welcome. You can contribute by :

For the full changelog continue reading on kdenlive.org.

31 Aug 2026 6:05pm GMT

Qt Extension 1.16.0 for VS Code Released

We're excited to announce the release of version 1.16.0 of the Qt Extension for Visual Studio Code! This release brings:

31 Aug 2026 2:24pm GMT

Harmonicon: a rhythm game you play on a real harmonica

For once, something on this blog that isn't C++.

Harmonicon is a rhythm game for blues harmonica. Notes scroll toward a hit line and you play on an actual harmonica, into your microphone, and the game listens.

The idea

The harmonica is cheap, fits in a pocket, and it hides everything: the reeds are inside, your tongue and throat do most of the work, and nothing about the instrument tells you whether the note that just came out is the note you meant. You can practise a bend wrong for a month quite happily.

Let the instrument be the input. Harmonicon captures the microphone, runs pitch detection on it in real time, and scores what you actually played against the chart. Every note you score is a note you genuinely hit.

Playing a song

The 2D play mode: a lane per harmonica hole, with notation and a tab readout above

The default view is one lane per hole: ten for a diatonic, twelve for a chromatic, taken from whatever the chart was written for. Blue notes are blows, orange are draws, and the number on each is the hole you need. Above the lanes there's the phrase in standard notation and as harmonica tab, because those are the two ways harmonica players actually read music, and the panel on the right tells you which harp to pick up and which position you're playing in.

There's also a 3D view, which is the same game rendered around a harmonica model that moves with the beat.

The 3D play mode: notes travelling down toward an animated harmonica model

Getting away from charts

Charts are good for learning a song and bad for learning to play. The Jam Session mode drops the scoring entirely and gives you a rolling 12-bar blues to improvise over.

Jam Session: a 12-bar chord grid on the left, a live-tinted hole map on the right

The useful part is the hole map on the right. As the backing moves through the bars, each hole recolours: gold if it's a chord tone of the bar sounding right now, green if it's elsewhere in the blues scale, dim if it's going to sound wrong. You follow the colour instead of trying to recall theory at tempo, and the theory arrives later, on its own.

Lessons

The lessons list, grouped into units from fundamentals to jazz

There's a curriculum underneath all of this, grouped into units and gated by prerequisites - from getting one clean single note out of the thing, through bends and articulation, up to improvising over a blues. Some lessons are scored drills. A few aren't scoreable at all: tongue blocking sounds identical to puckering from the microphone's point of view, so that one is instruction you mark as done and the game trusts you.

Under the hood

Rust, with Bevy for the engine and cpal for audio capture. The interesting problem is the pitch detection, which is why there are five algorithms to chose from: FFT, YIN, pYIN, MPM and NMF.

Status

There's a lot in it - a bending trainer, an in-game song editor with MIDI import, adaptive difficulty, A-B looping, latency calibration, a spectrogram - but "early/experimental" is an honest label rather than modesty.

It's MIT licensed and the code is at github.com/tcanabrava/harmonicon. If you own a harmonica and a microphone, that's the entire hardware requirement.

31 Aug 2026 12:00am GMT

30 Aug 2026

feedPlanet KDE | English

KDE Connect redesign is ready for testing

And I think it's pretty nice

30 Aug 2026 12:00am GMT