Skip to content

Wednesday, 31 December 2025

Here comes Kaidan 0.14.0! It includes some great new features and fixes!

Most of the work has been funded by NLnet via NGI Zero Entrust and NGI Zero Commons Fund with public money provided by the European Commission.

Advanced Media Sharing

It is now possible to select media to be shared while being offline. Once you are connected, all media is automatically uploaded. Even downloads can be enqueued to be started as soon as you are online. In addition, ongoing transfers are canceled on disconnecting and automatically restarted once connected again. Up- and downloads can be manually canceled and restarted as well.

Offline media sharing queue

Filtering XMPP Providers for Account Creation

Kaidan’s manual registration now allows to filter all XMPP providers by various properties. For example, you can choose whether only providers are shown that store their data in a specific country or whose service runs on renewable energy. That is possible because Kaidan uses the data from XMPP Providers.

Provider filtering

Highlighted Messages

Messages are now precisely highlighted on various actions. A border is displayed around a message if you open its context menu, search it, or jump to if from a reply. That makes it possible to quickly see the relevant message.

Highlighted message

XMPP URIs

If you received an XMPP URI such as xmpp:alice@example.org, you can paste it directly into the field for adding a new contact. There is no need to remove any characters that are required to be machine-readable. The same applies to XMPP group chat URIs.

Changelog

There are several other improvements. Have a look at the following changelog for more details.

Features:

  • Keep draft messages on top of pinned/unpinned chat list items (pehg)
  • Optimize thumbnail creation (fazevedo)
  • Display border around searched/referenced message instead of bar (melvo)
  • Display border around message if its context menu is shown (melvo)
  • Highlight message’s avatar if hovered (melvo)
  • Display provider chat (used for welcome messages and service announcements) as such (melvo)
  • Always display same name and proper avatar initials for notes chats (melvo)
  • Allow to cancel downloads/uploads (fazevedo)
  • Allow to restart canceled uploads (fazevedo)
  • Allow to resend failed message via context menu (melvo)
  • Retrieve support addresses from server instead of provider list (XEP-0157: Contact Addresses for XMPP Services, XEP-0128: Service Discovery Extensions) (melvo)
  • Allow adding contact by entering XMPP URI (including authentication of OMEMO 2 keys) (melvo)
  • Allow joining group chat by entering XMPP URI (melvo)
  • Add option for allowing SASL PLAIN (needed for servers using LDAP) to custom connection settings (melvo)
  • Add filtering options to choose provider for registration (melvo)
  • Cancel file transfers on disconnecting from server (fazevedo)
  • Add support for offline media sharing queue (fazevedo)
  • Restart downloads canceled on logout once logged in (melvo)
  • Remove all related data on message removal (such as reactions and media) (melvo)

Bugfixes:

  • Fix displaying message reaction details (melvo)
  • Fix adding unneeded separator on mention after new line (melvo)
  • Wrap hint for actions needing user to be connected to server (melvo)
  • Fix displaying icons on Windows (pehg)
  • Fix adding new line at cursor position (melvo)
  • Ensure that own encryption devices are not removed if notes chat is removed (melvo)

Notes:

  • Kaidan requires KIconThemes (for Windows) now
  • Kaidan requires Qt6GuiPrivate (for Qt 6.10 or above) now
  • Kaidan requires Qt 6.7 now
  • Kaidan requires QXmpp 1.13 now

Download

Or install Kaidan for your distribution:

Packaging status

Last week on Dec 26 we had the yearly family admin day and a day later 39C3 (the 39th Computer Chao Congress) started. I usually try to watch interesting talks about security, reverse engineering and hardware. Most if not all I wanted to join are available as recordings and I will add a list of the ones I enjoyed most.

While watching the talk about the End-of-10 campaign (I have met Joseph at Akademy 2024 in person) I was reminded at one spot to my job as family admin. When the presenters referred to the administration of a Linux system compared to a Windows one. I got reminded of chats with folks in my town who talked about “re-installing Windows” a few times during the year because something was broken. I don’t remember when I last re-installed one of the family computers.

Bringing Linux closer to the family already started many years ago. I started out using Linux already in the last millennium. My wife at the time used a Windows 2000 system. At some point (seems to be usual for Windows systems) I needed to install a fresh system. That was the time, when I installed OpenOffice and told my wife that this is the word processor to be used in the future. Of course, she asked why I hadn’t installed the MS Suite, but when you tell someone with legal training that we don’t have a license, that answers the question without further inquiry. So it was Windows 2000 with OpenOffice as word processro and spreadsheet program and Pegasus Mail as mail reader.

At some point the hard drive of this computer broke and I was lucky to be able to rescue the most important files off of it. Because I did not have a replacement drive at hand, I simply setup a TFTP bootable Linux system keeping all the files on the network drive on the Linux server in my house. This allowed me to use the same box but without a hard drive. So this hard drive crash in the early 2000s allowed me to introduce my wife to Linux.

When my kids got into the age to go to grammar school, they have seen me working on the computer during our summer vacation and also wanted to play with it. Since I did not have games with me, I installed KTouch, a typewriter trainer for learning to touch type for them. They had a lot of fun and actually learned how to touch type in the following weeks.

Later on, when they got their own computers, it was clear to install a Linux system, because they were already used to it. They liked writing stories of all kinds and used LibreOffice for it. I had a few arguments with teachers at their school why we don’t have the usual widespread tools. I remember one time though, when my daughter came home and reported, that they now have new white boards at school. Due to German bureaucracy, the hardware was financed but the money for application software licenses (beyond the operating system) was not included in the budget. So one of the teachers simply installed free software like the OpenOffice suite and the problem was solved. Well, only to some extent, because the other teachers did not know how to operate this software. This was the time, when my daughter – out of the sudden – gained a big advantage.

Later, she enrolled in university to study computer science and bought herself a new computer. A Samsung Book 2 with a pre-installed operating system (guess which one). She was playing around with it for some time when she came to me and said “Daddy, please install some real software on it. I can’t use it the way it is”. I had a bit of a hard time to find the right Linux distro which already supported it at the time but we got it working. And she was more than happy when we ported all the data from her old laptop over. Today, five years later, she is still using it after a few updates of the operating system. Oh, 3 months after she enrolled, she withdrew again to start a career as paramedic.

My mom on the other hand, uses Linux also for more than 15 years now. At one point, she told me that she needs a new computer and asked if I could provide support for it. I told her, that I would only provide support if we will install Linux on the computer. At first, she was a bit scared, but today she is happy that I can provide even remote support from the other end of the world and that things are simply working.

All in all, coming back to the End-of-10 campaign, I see that I am not affected by all of this. All – well most of all – of my family members are already using Linux for a long time. Of course I made sure to install KDE as the desktop environment and that they have KMyMoney to maintain their finances 😉

Thanks for reading until here. The post got longer than expected. And since I promised to leave links to the 39C3 talks (and one from 37C3 and 38C3 each which need to be watched in series) here they come:

37C3

38C3

39C3

All 39C3 recordings.

Tuesday, 30 December 2025

My initial post on Ni! OS gained more interest than I expected. Any time I jokingly do something, people react to it more than when I do something serious. :)

As a reminder, KDE Ni! OS is not a distribution, but a configuration for NixOS that aims at providing a ready-made immutable system for KDE users and developers with similar features to those of proper immutable KDE distributions.

If the Google search AI tells you it is a distribution, do not trust it:

Google thinks Ni! OS is a distribution
Google thinks Ni! OS is a distribution

Further, if the Google search AI tells you Ni! OS is a code name for KDE Linux, do not trust it:

Google thinks Ni! OS is a code name for KDE Linux
Google thinks Ni! OS is a code name for KDE Linux

Repository

The project got a repository at invent.kde.org which is currently in a very rough/bare state. Could be useful to existing NixOS users, but has a long way to go to become a proper resource on how to install and use Ni! OS.

NixOS has its own (quite cool, if you ask me) logo which doesn’t suite the comical image Ni! OS is trying to achieve.

For this reason, Ni! OS now has a proper custom logo – representing a – a shrubbery!one that looks nice, and not too expensive.

Ni! OS Logo
Ni! OS Logo

It is also meant to represent the way NixOS achieves immutability. Many packages are present on the system, but hidden from the plain sight as they belong to the previous system versions or are just hidden-from-the-user dependencies of other packages.

After my talk about TeX syntax-highlighting font at TUG2025 conference, then vice-president of TeX Users Group, Boris Veytsman approached me with a proposal to develop a Math counterpart for the beautiful Arsenal font designed by Andrij Shevchenko.

What followed was a deep dive into the TeXbook to learn about math font parameters, OpenType Math specification, and related documentation & resources. Fortunately, FontForge has really good support for editing Math tables; and the base font used (KpMath-Sans by Daniel Flippo) already had all the critical parameters set (which needed slight adjustments). I started the development of Arsenal Math by integrating the glyphs for Latin letters, Arabic numerals, some symbols etc. and with proper scaling & stem thickness corrections, for regular, bold, italic and bolditalic variants, plus math calligraphic letters. In addition, a lot of Math kerning (known as ‘cut-ins’ in OpenType parlance) was added to improve the spacing.

Fig. 1: Arsenal Math specimen, contributed by CVR.

Being an OpenType font — XeTeX, LuaTeX or some Unicode math typesetting engine (e.g. MS Word) is required to use Arsenal Math. Boris did testing and provided many feedback, and Vaishnavy Murthy graciously reviewed the glyph changes I made. The CTAN admins were quite helpful to get the font accepted into the repository. There is a style file and fontspec file supplied with the fonts to make the usage easy. The sources are available at RIT fonts repository.

Boris also donated funding for the project, but he had already paid me many folds by mailing The TeXbook autographed by Donald Knuth for me, so I requested the LaTeX devfund team to use funding for another project. Karl Berry suggested to write an article about the development process, which is published in the issue 46:3 of the TUGboat journal, and has a lot more technical details.

Fig. 2: The TeXbook autographed by Don Knuth for me.

The learning experience of Math typesetting internals, and contributing to the TeX ecosystem has been a fulfilling spare-time work for me in 2025. Many thanks to all those involved!

Monday, 29 December 2025

We achieved significant milestones during 2025 on the Ocean design system for Plasma. Here is a video recap of all of the things that happened.

Sunday, 28 December 2025

It’s been a few years since I did an end-of-year “highlights in KDE” post, but hopefully better late than never! 2025 was a big year for KDE — bigger than me or any of us individually.

My focus these days tends to be on Plasma, so that’s mostly what I’ll be mentioning on the technical side. And as such, everything here is just what I personally noticed, got involved with, or got excited about. Much more was always happening! Additional KDE news is available at https://planet.kde.org.

The Wayland transition nears completion

Real picture-in-picture support!

For several years, Plasma has been transitioning to the newer Wayland display server protocol, and away from the older X11 one. 2025 is when it got real: we announced a formal end to Plasma’s X11 session in early 2027.

To make this transition as seamless as possible for as many people as possible, the people involved with the Plasma shell and especially KWin did a herculean amount of work on improving Wayland support on topics as varied as the following:

  • Accessibility
  • Drawing tablets
  • HDR
  • Color management
  • P010 video color
  • Overlay planes
  • XRandr emulation
  • Screen mirroring
  • Custom screen modes
  • Implemented support for a large number of protocols, including xdg-toplevel-tag, xdg_toplevel_icon, ext_idle_notifier, color_representation, fifo, xx_pip, pointer_warp, and single_pixel_buffer
  • Pre-authorization for portal-based permissions
  • Clipboard and USB portals

Thanks to this and earlier work, most FOSS operating systems (also known as “distributions” or “distros”) that ship Plasma are defaulting to the its Wayland session these days — including big ones like Arch Linux, Debian, and Fedora KDE. Kubuntu is planning to for the next LTS as well. As a result, our (opt-in) telemetry numbers show that 79% of Plasma 6 users are already on Wayland. I expect this number to increase once SteamOS and the next Kubuntu LTS version default to Wayland. So you see, it really is driven by distros!

Now, Plasma’s Wayland support isn’t perfect yet (any more than its X11 support was perfect). In particular, the two remaining major sources of complaints are window position restoring and headless RDP. We’re aware and working on solutions! I can’t make any promises about outcomes, but I can promise effort on these topics.

This admittedly somewhat messy and plodding transition has taken years, and consumed a lot of resources in the process. I’m looking forward to having it in the rearview mirror, and 2026 promises to be the year that enables this to happen! Expect a lot of Wayland work in 2026 to make us ready for the end of the Plasma X11 session in 2027.

Plasma continues to mature and improve

In addition to what I mentioned in the Wayland section, Plasma gained a whole ton of user-facing features and improvements! Among them are:

  • Rounded bottom window corners
  • Day/night global theme and wallpaper switching
  • Saved clipboard items
  • Speed graph in file transfer notifications
  • Panel cloning
  • Per-virtual-desktop custom tiling layouts
  • “You missed X notifications while in Do Not Disturb mode” feature, and auto DND mode enabling while in a fullscreen app or video
  • Install hardware drivers in Discover (on supported distros)
  • New app highlighting in Kickoff
  • UI overhaul for KMenuEdit and Info Center’s energy page
  • Playback rate selector in the Media Player widget
  • Three-finger pinch to zoom
  • UX and video quality and file size improvements in Spectacle
  • GPU usage monitoring in System Monitor
  • Use existing user accounts for RDP/remote desktop
  • Printer ink level monitoring
  • Inline print queue viewing in the Printers widget
  • Only show the screen locker and logout screen UI on one screen, not all of them
  • OCR in Spectacle (coming in Plasma 6.6)
  • Monochrome colorblindness filter (coming in Plasma 6.6)
  • Option for automatic screen brightness on supported hardware (coming in Plasma 6.6)
  • Option for virtual desktops to only be on the primary screen (coming in Plasma 6.6)

Phew, that’s a lot! And Plasma is getting rave reviews, too. Here are a few:

A decade ago or so, it used to be that Plasma wasn’t seen much as the default option for distros, but that’s changing.

Today Plasma is the default desktop environment in a bunch of the hottest new gaming-focused distros, including Bazzite, CachyOS, Garuda, Nobara, and of course SteamOS on Valve’s gaming devices. Fedora’s Plasma edition was also promoted to co-equal status with the GNOME edition, and Asahi Linux — the single practical option for Linux on newer Macs — only supports KDE Plasma. Parrot Linux recently switched to Plasma by default, too. And Plasma remains the default on old standbys like EndeavourOS, Manjaro, NixOS, OpenMandriva, Slackware and TuxedoOS — which ships on all devices sold by Tuxedo Computers! And looking at the DIY distro space, Plasma is by far Arch users’ preferred desktop environment:

It’s a quiet revolution in how Linux users interact with their computers, and my sense is that it’s gone largely unnoticed. But it happened, so let’s feel good about it!

In fact, if we exclude the distros that showcase their developers’ custom DEs (e.g. COSMIC, ElementaryOS, and Linux Mint), at this point the only significant distros missing here are the enterprise-oriented ones: Debian, RHEL, SLE, Ubuntu, and the like. It’s something for us to work on in 2026, but clearly the current state is already great for a lot of people, including gamers, artists, developers, and general users.

KDE Linux grows

On the subject of operating systems, at Akademy 2024, Harald Sitter revealed the KDE Linux operating system project to the world. But in 2025, it spread its wings and began to soar.

Despite technically still being an Alpha release, I’m using this in-house KDE OS in production on multiple computers (including my daily driver laptop), and a growing number of KDE developers and users are as well. Thanks to its QA and bulletproof rollback functionality, you can update fearlessly and it doesn’t feel like an alpha-quality product. You don’t have to take my word for it; ask Hackaday and DistroWatch!

This project has been very special to me because I believe that KDE needs to take the reins of OS distribution in order to offer a cohesive product. The earlier KDE neon project already broke the ground necessary to make this kind of thing socially possible; now KDE Linux is poised to continue that legacy with a more stable and modern foundation.

To be very clear, none of this is an attempt to kill off other distros. Far from it! In fact, an explicit goal is to showcase what a well-integrated KDE-based OS looks like, so others can take notes and improve their offerings. And there’s still lots and lots of room for specialized distros with different foci, and DIY distros that let people build their own preferred experiences.

I’m really excited to see where this project goes in 2026. You can learn more on the project’s documentation wiki: https://community.kde.org/KDE_Linux

Fundraising performance is completely bonkers

This is the second year that Plasma users have seen a donation request pop-up in December. And it marks the second year where this not only didn’t kill KDE, but resulted in an outpouring of positivity and a massive number of donations! Last year I wondered if it was repeatable. It’s repeatable.

That plus an even more ambitious and well-organized end-of-year fundraiser propelled KDE to its best ever Q4 fundraising sum: nearly €330,000 as of the time of writing! KDE e.V. (the non-profit organization behind KDE) is going to end up with a 2025 income that’s a significant fraction of a million Euros, and mostly crowdsourced, too.

I say this a lot, but sums like this truly help keep KDE independent over the long haul. But how, specifically?

First, by being mostly funded by small donors, KDE retains its independence from any powerful and opinionated companies or individuals that happen to be patrons or donors.

Second, with such a large income in absolute terms, KDE e.V. now has resources to rival the private companies in KDE’s orbit that contribute commercially-funded development to KDE (like mine), and that’s a good thing! It means a healthy diversity of funding sources and career opportunities for KDE developers. It’s systemic resilience.

And finally, with money like this, KDE e.V. is able to fund projects of strategic interest to KDE itself, and fund them well. Historically KDE’s software has been developed by volunteers working on what’s fun, companies funding what supports their income, and some public institutions funding their specific use cases. And that’s great! But it leaves out anything that’s not fun, doesn’t make money, and isn’t directly relevant for governments. These are the kinds of large projects or maintenance efforts that KDE e.V. is now able to fund if necessary.

It’s a big deal, folks! This kind of fundraising performance puts KDE on the map, permanently. And it’s mostly thanks to people like you, dear readers! The average donation is something like €26. KDE is truly powered by the people.

If you can make a donation please do so, because it matters, and goes far!

KDE’s overall trajectory

It’s positive. Really positive.

But when I joined KDE in 2017, the community was a bit dejected. After giving my very first public conference talk at Akademy 2018, multiple people came up to me and said some variant of “thank you for this optimistic vision; I didn’t think I could feel positive about KDE again.”

These reactions were really surprising to me; without the benefit of history, I had no idea what the mood was or how things had been in the recent past. But some statistics about contributor and commit numbers bear out the idea that 2013-2017 was a bit of a low period in KDE’s history, for various reasons.

But since then, KDE has come roaring back, and you see it in positive trends like adoption by hardware vendors and distros, great fundraising performance, good reviews, positive user feedback, and new contributors.

Everything isn’t perfect, of course; there are challenges ahead. Bugs to fix and stability problems to overcome. The Wayland transition and a new theming system to complete. Features to add that unlock Plasma for more users. More effort to put into getting Plasma-powered operating systems and devices into the mainstream.

But the KDE community is up for it. KDE is a mature institution that’s resisting enshittification, and making the world a better place in ways both big and small. My work on KDE represents by far the most meaningful part of my career, and I hope everyone else involved can feel the same way. What we do matters, so let’s go out there and do it even better in 2026!

Like every year I took a couple of days off at the end of the year to wind down and spent some quality time with the family. Time just flies and it feels like the year had only just begun. I have also taken the time to revisit some of my work-in-progress merge requests and tried to push them over the finish line.

Plasma volume OSD showing a megaphone and “Speak…” indicating that push to talk is enabled and the user may speak now
Please talk now or forever hold your peace.

More than five years ago, at the peak of the pandemic, I wrote a patch to add a “Push to talk” feature to Plasma’s volume keys handler. For meetings, I even bought a cheap 8€ USB foot pedal to operate it like a bus driver! It’s basically a single button USB keyboard. Unfortunately, back then KGlobalAccel, our global shortcuts handler, couldn’t report key press vs. key release. Therefore, it was a bit of a hack abusing key auto-repeat: pressing the key, a timer was started and the microphone unmuted. Every key repeat reset the timer and only when it expired the microphone was muted again. Fortunately, nowadays we can query a global shortcut’s state and detect when it is pressed and released again. I decided to revisit the patch and made it much simpler. I hope to finally include it in Plasma 6.7 coming out next summer.

Speaking of shortcuts, Meta+P (p as in projector) lets you quickly switch between a couple of common display arrangements. For when the one you want isn’t included, there’s now a handy button in the corner to bring you to the full display settings. It has actually become my primary means of accessing them.

Screen arrangement selection popup with: External only, internal only, mirror, extend left, extend right, cancel. 
Mouse cursor points at settings button in the bottom right, reads “Configure displays in more detail”
To be consistent with the others, this button curiously does not use a regular tooltip

Another neat little addition is a “Compare files” button (using Kompare) in the confirmation dialog when copying a plain text like file (e.g. source code, too) would overwrite an existing one. It already looked at the files to decide whether they‘re different or not but it didn’t let you check in detail yourself.

Last year, I showed a shell script running in Konsole reporting its progress using ConEmu-specific OSCs (Operating System Command). The merge request sat dormant after I lost some work on it while moving to my new laptop. Always push your work-in-progress changes to a git branch sometime, right? I have cleaned up the patch, added API comments, as well as an option for whether to show progress in taskbar or not. It also opts into FLATPAK_TTY_PROGRESS. To my surprise, when I implemented Unity Launcher API in Plasma, I added an option to disable badges on individual applications but not progress reporting. It’s still in review but I am confident to ship it as part of KDE Gear 26.04.

It’s always fascinating to observe other users interacting with KDE Plasma. For instance, us power users take middle click paste for granted. On Plasma, middle clicking the desktop typically results in a sticky note of text being created. However, when you did that by accident, it wasn’t really clear how to get rid of it. If you click the sticky note, the format toolbar includes a delete button, sure, but a user might not even think of doing that. Originally, I thought about adding an “Undo” notification. The simplest solutions are often the best, though, and so it just focuses the newly created sticky note to ensure the delete button is visible right away.

KRunner (desktop search) window, prompt “grandfather” yields:
* Application: Grandfather – KPatience
* Application: Grandfather’s Clock – KPatience
Jump right into a match of Grandfather’s Clock! Or Klondike. Or Freecell. Or…

Finally, for those who like to procrastinate, KPat (KPatience) now offers direct access to all of its game modes via the context menu in the application launcher and in KRunner. Just type “Freecell” or my favorite “Grandfather’s Clock” (because you can’t really lose) into KRunner, and off you go!

There’s still a couple of days left for our Year End Fundraiser. If you want to show your love for KDE and support the work we’re doing, please consider donating! I am looking forward to seeing you all around next year. ❤

Happy holidays to all in the KDE universe who celebrate them! As 2025 draws to a close, I thought it would be a good time to take stock.

“This Week in Plasma” began 8 years ago as a development report for KDE’s Usability & Productivity goal, which had just been democratically selected by the community in the very first round of the new KDE Goals process.

Back then it wasn’t called “This Week in Plasma” (or “TWiP” for short), but eventually it would gain and change names, and move off my personal blog and onto KDE’s infrastructure.

During these past 8 years, I’ve done my best to keep the wider KDE community informed about what’s going on almost every week! And I’m constantly amazed and humbled by the positive feedback it’s generated.

The march of time and accumulation of responsibilities

My own role in KDE has changed substantially during these 8 years. I started out in 2017 as a volunteer and fell in love with KDE, squeezing my KDE time into a long daily train commute to and from work. And by 2019 I had a full-time job at Blue Systems, doing what I loved. In 2022 I was elected to the KDE e.V. board of directors, until October of this year. Each of these transitions heralded the accumulation of more responsibilities beyond TWiP.

And at the beginning of this year, everything changed again when I became the co-owner and CEO of Techpaladin Software, the successor of Blue Systems’ consultancy business, and an employer of over a dozen rockstar KDE developers.

This has been the largest career shift in my life, and caused my time to become more limited than ever before. It’s possible some readers may have noticed the quality of TWiP content slipping over the past year; it’s not a coincidence, and I apologize for not being able to do a better job.

I need help

I truly want to keep publishing this blog, but there comes a point where I have to face facts: my time and energy budgets are not as unlimited as I wish they were. In addition, my children are getting older; they’re 9 and 13, and they need their dad to do more than just work and work and work and work and work some more.

So it’s time to begin the painful but necessary process of ensuring that those budgets remain big enough to cover my work and family responsibilities.

In 2026, I’m actively looking for a person or team interested in taking over TWiP. Until then, I plan to reduce the frequency of posts, based on how busy my schedule is. Expect one every two weeks, or even every three or four weeks.

How You Can Help

If anyone reading would like to see TWiP remain a weekly fixture as much as I do, the best way to make it happen is to get involved and help out with it! I would be thrilled to hand off TWiP to the next generation.

Nothing about TWiP is particularly difficult, but it does take time. Time to notice or seek out relevant changes, time to collect them in a big list, time to sort them for relevance to the readership, time to write a little blurb for each of them, time to take screenshots showcasing the changes, and time to edit and polish the post.

I’m happy to teach, coach, or mentor anyone who wants to get involved. So if you’ve been wondering how you can get involved in something that matters without technical skills beyond basic markdown and git, this is a perfect way to do it. And if you are technical, I’m sure there are low-hanging-fruit opportunities for automation that I never pursued (I did try AI a few times, but the results were always horrible).

You can reach out to me about it at nate@kde.org, or the relevant Matrix room, or any other relevant means of getting in touch that you might already know about. Please do!

And finally

I’d like to take the opportunity to thank the readers and community members. This blog post series is something I never really expected to become popular, and it was my pleasure to publish it (almost) every week!

Today Plasma and KDE in general are strong and prosperous, with growing bases of users, hardware partners, distros pre-installing our software, and small-donor financing. In some ways KDE is outgrowing TWiP; it’s no longer really necessary to provide weekly evidence that we’re still keeping the lights on. The evidence is all around us!

But it’s still a nice thing to have, I think. I personally would feel sad if I had to abandon TWiP without anyone to hand it off to. So if you’re interested in getting involved, please reach out!

If helping to take over TWiP isn’t your cup of tea, consider donating to KDE’s 2025 end-of-year fundraiser. It’s already demolished past records by raising over €325,000, but every little bit helps! This level of funding can support significant projects and keep KDE independent for years to come. And that’s what we all want.

So here’s to a great 2025 for KDE, and may 2026 be even better!

Saturday, 27 December 2025

At the TUG2025 conference, I presented a talk about the development of a new colour font, which does automatic syntax highlighting for TeX documents/snippets. The idea was floated by CVR, and was inspired by a prior-art of HTML/CSS syntax highlighting font by Heikki Lotvonen.

Syntax highlighting is achieved by specialized grammar files or packages on desktop applications, code editors, the Web, and typesetting systems like TeX. Some of these tools are heavy (e.g. prism.js or pygmentize package). A light-weight alternative would be a font that uses recent OpenType technologies to do syntax highlighting of code snippets. I developed such a font, for highlighting TeX code snippets.

Fig. 1: OpenType colour font doing syntax highlighting of TeX document.

There are some novelties in the developed font:

  1. It supports both COLRv0 and COLRv1 colour format specifications (separate fonts, but generated from the same source).
  2. Supports plain TeX, LaTeX2 and LaTeX3 macro names.
  3. A novel set of OpenType shaping rules for TeX syntax colouring.

The base font used is M+ Code Latin by Coji Morishita. The details of the development, use cases, and limitations can be found in the 46:2 issue of the TUGboat journal publication. The binary font and sources are available at RIT fonts repository.

Friday, 26 December 2025

Let’s go for my web review for the week 2025-52. This is the last one of the year, hope you all had a merry xmas.


Ethics

Tags: tech, ethics

Indeed I wish our profession would have a strong and binding set of ethics like doctors or lawyers. That wouldn’t prevent all problems, but that’d tame some of the issues of our time.

https://inessential.com/2015/02/26/ethics.html


Is Firefox Firefucked?

Tags: tech, web, browser, firefox

This is pretty much where I’m at as well regarding Firefox… Sad state of affairs.

https://kevquirk.com/blog/is-firefox-firefucked/


I foretold that Mac app notarization is security theater

Tags: tech, apple, security

Always hated this notarization with a passion when I had to target Macs… One reason being that it felt fairly useless, and it’s confirmed: it is pretty much useless.

https://lapcatsoftware.com/articles/2025/12/5.html


Flock Exposed Its AI-Powered Cameras to the Internet

Tags: tech, surveillance, privacy, iot

There are just too many of those cameras deployed. The fact that they are badly secured are compounding the negative effects.

https://www.404media.co/flock-exposed-its-ai-powered-cameras-to-the-internet-we-tracked-ourselves/


Generative AI hype distracts us from AI’s more important breakthroughs

Tags: tech, ai, machine-learning, gpt, criticism, ethics

Add to this how generative AI is used in the totally wrong context… and then I feel like I could have written this piece. I definitely agree with all that.

https://www.technologyreview.com/2025/12/15/1129179/generative-ai-hype-distracts-us-from-ais-more-important-breakthroughs/


History LLMs: training the largest possible historical LLMs

Tags: tech, ai, machine-learning, history, politics, culture

Interesting research. Can it give insights on the pervasive views of the time?

https://github.com/DGoettlich/history-llms?tab=readme-ov-file


An initial analysis of the discovered Unix V4 tape

Tags: tech, unix, history

Interesting historical work. It indeed went through a fast paced evolution cycle.

https://www.spinellis.gr/blog/20251223/?ms261223


x-ray: A tool to detect whether a PDF has a bad redaction

Tags: tech, pdf, security

Interesting tool. Indeed very often people send PDFs with useless redaction in them. Better check first.

https://github.com/freelawproject/x-ray


Passphrases That You Can Memorize — But That Even the NSA Can’t Guess

Tags: tech, security

An oldie now but still the best way to create a passphrase.

https://theintercept.com/2015/03/26/passphrases-can-memorize-attackers-cant-guess/


Go ahead, self-host Postgres

Tags: tech, cloud, databases, postgresql, self-hosting

Things went too far with the cloud monoculture. It’s time to remember that it doesn’t always makes sense, and in the case of databases maybe it’s rarely worth it to go for fully managed options.

https://pierce.dev/notes/go-ahead-self-host-postgres


cargo-coupling: Visualizing Coupling in Rust Projects - じゃあ、おうちで学べる

Tags: tech, complexity, design, architecture, rust

Interesting tool and I like the underlying approach. I wish we’d have good equivalent tools for other ecosystems.

https://syu-m-5151.hatenablog.com/entry/2025/12/21/152559


Rust’s Block Pattern

Tags: tech, rust, pattern

This is definitely a useful idiom. A bit like the immediately invoked lambdas in C++ but less verbose. This is nice to control intermediate variables locality and mutability like this.

https://notgull.net/block-pattern/


Performance Hints

Tags: tech, performance, optimization, memory, c++

Excellent resource for keeping an eye on performance issues in your codebase. It’s very C++ oriented but most of the insights can be generalised to other ecosystems.

https://abseil.io/fast/hints.html


map::operator[] should be nodiscard

Tags: tech, c++, api

I definitely agree there. It looks like a missed opportunity to improve the API and nudge people in the right direction.

https://quuxplusone.github.io/blog/2025/12/18/nodiscard-operator-bracket/


The Rule of Zero

Tags: tech, c++, memory

Another explanation for the rule of zero in C++. We should definitely stick to it.

https://blog.feabhas.com/2015/01/the-rule-of-zero/


Logging Sucks - Your Logs Are Lying To You

Tags: tech, logging, observability

Lots of good advice on how to improve your logs.

https://loggingsucks.com/


Refactoring with Loops and Collection Pipelines

Tags: tech, refactoring, data

Pipelines are very widespread nowadays, still I don’t see them used much. Having a few refactoring ideas under our belt to replace loops with such pipelines might help.

https://martinfowler.com/articles/refactoring-pipelines.html


On Metastable Failures and Interactions Between Systems – Aleksey Charapko

Tags: tech, distributed, failure, reliability

A good explainer on what metastable failures are and how to try to mitigate them.

https://charap.co/on-metastable-failures-and-interactions-between-systems/


What Actually Makes You Senior

Tags: tech, career, leadership

I think this is a good pick at a core skill for senior developers. Indeed removing ambiguity for the rest of the team is an important factor.

https://terriblesoftware.org/2025/11/25/what-actually-makes-you-senior/


The Code Is Just the Symptom

Tags: tech, organisation, conway, architecture, quality, management, leadership

This is very true. It’s not like whoever produced bad code is particularly stupid, in most cases it’s the context around which breaks the people.

https://medium.com/@rubyghetto/the-code-is-just-the-symptom-c77f43b29320


Take Pride in Your Legacy (Code)

Tags: tech, legacy, quality

The definition of legacy code is ambiguous enough. We generally mean “bad code” (the wrong definition to me…). What about seeing things differently and trying to leave a great legacy behind us?

https://8thlight.com/insights/take-pride-in-your-legacy-code


Well-factored architecture

Tags: tech, architecture, quality

A good list of characteristics to aim for. Gives clue about the quality of your software architecture.

https://jchyip.medium.com/key-practice-well-factored-architecture-b9d53f5549fb


The cardinal sin of software architecture

Tags: tech, software, architecture, data, state

It’s not the only factor leading to troublesome architectures of course. Still, if state and thus data is wrongly handled, you’re indeed on the wrong track.

https://functional.computer/blog/the-cardinal-sin-of-software-architecture


A Definition of Systems Thinking: A Systems Approach

Tags: tech, systems-thinking, complexity

A nice little primer on what systems thinking is about.

https://www.sciencedirect.com/science/article/pii/S1877050915002860?ref=pdf_download&fr=RR-2&rr=7e18ecfcdd9e2916


Agile Software Guide

Tags: tech, agile

Martin Fowler obviously wrote a lot on the topic. This is a nice guide pointing to some of the most interesting resources on his blog around the agil topic.

https://martinfowler.com/agile.html


How Pairing & Swarming Work & Why They Will Improve Your Products

Tags: tech, pairing

It still something I don’t see happening often. I think it is unfortunate.

https://www.jrothman.com/mpd/project-management/2014/07/how-pairing-swarming-work-why-they-will-improve-your-products/


Essential XP: Card, Conversation, Confirmation

Tags: tech, xp, tests, project-management

Where are acceptance tests coming from? They’re generally the result of a conversation.

https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/


Story Slicing, How Small is Enough?

Tags: tech, project-management, agile

A good justification of why you want to slice your stories finely. It definitely helps steering the project and reduces chances of bottlenecks.

https://agilepainrelief.com/blog/story-slicing-how-small-is-enough/


10 Tips to Get Your Agile teams Better at Story Estimation

Tags: tech, agile, estimates

Nice list of ideas for stories estimations. I applied some of that with nice success.

https://www.liminalarc.co/2014/01/10-tips-better-story-estimation/


Effective Standups around Kanban Board

Tags: tech, agile, kanban

When teams grow the usual standup/daily meeting format doesn’t work anymore. What’s proposed here is a nice alternative.

https://brodzinski.com/2011/12/effective-standups.html


Seven Changes To Improve Flow In Your Software Development Process

Tags: tech, kanban, flow, project-management

Indeed, people getting into lean processes tend to obsess over “eliminating waste”. Sure there might be some waste to clean up but it’s pretty much useless if you don’t focus on the flow of work.

https://flowchainsensei.wordpress.com/2014/08/19/seven-changes-to-improve-flow-in-your-software-development-process/


Cross-Functional Collaboration in Agile: What It Does and Doesn’t Mean

Tags: tech, team, project-management

Indeed, having generalists in teams is definitely what you want. Having only specialists will reduce the project efficiency.

https://www.mountaingoatsoftware.com/blog/cross-functional-doesnt-mean-everyone-can-do-everything


Hire generalists to help your specialists shine!

Tags: tech, team, project-management, problem-solving

The other advantage of not relying only on specialists. You actually get teams better at solving problems due to the extra context and communication channels the generalists will bring.

https://softwaredevelopmenttoday.blogspot.com/2014/01/hire-generalists-to-help-your.html


Using Brainwriting For Rapid Idea Generation

Tags: knowledge, problem-solving, ux, business, strategy

Definitely required more preparation work than brainstorming. That said it’s a nice alternative, maybe easier to get right.

https://www.smashingmagazine.com/2013/12/using-brainwriting-for-rapid-idea-generation/


The Science Of Good Sleep: There’s A Reason You’re Always So Tired

Tags: science, biology, sleep

Lots of insight and advice in here. Are you sure you’re having enough sleep? Of high enough quality?

https://www.elitedaily.com/life/ways-to-get-better-sleep/974053



Bye for now! And see you in 2026!