23 Aug 2025

feedPlanet KDE | English

This Week in Plasma: KDE Initial System Setup

Welcome to a new issue of This Week in Plasma!

Every week we cover the highlights of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.


This week Plasma gained an initial system setup wizard! For a few years now, we've had Welcome Center, which runs after you log in for the first time. But what creates the user account you log into?

If you're the person who installed the OS, the installer did it after you told it what username and password you wanted. But what if someone else ran the installer? Say, the company you bought the computer from. Or the last person who wiped the machine before giving or selling it you. In this case, no user acounts have been set up, so something needs to do that.

KDE Initial System Setup now takes care of it! Kristen McWilliam has brought KISS from an internal skunkworks project to a production-ready part of the OEM setup story. KISS lands in Plasma 6.5.0.

KDE Initial System Setup wizard
KDE Initial System Setup wizard — third page

Notable UI Improvements

Plasma 6.5.0

Plasma panels now become scrollable when they contain far too much to see at once (usually due to opening lots of apps or entering Touch Mode). This scrollability doesn't emerge immediately; first the Task Manager widget's icons compress a little bit, but after a certain point they stop compressing and instead the panel becomes scrollable. (Niccolò Venerandi, link)

Improved the tone mapping curve used by KWin when displaying HDR content. Hopefully it should look even better now! (Xaver Hugl, link)

By default, system Settings no longer shows you the Drawing Tablet page if you don't have any drawing tablets connected. Of course, us being KDE, there's an option to show such filtered-out pages anyway, if you need them for troubleshooting purposes, for example. (Kai Uwe Broulik, link)

The output stream for volume feedback sounds no longer shows up briefly on the Audio Volume widget and System Settings page. (Ismael Asensio, link)

Improved the accessibility of System Settings' Shortcuts page. (Christoph Wolk, link)

Added more relevant information about your game controllers to System Settings' Game Controller page. (Jeremy Whiting, link)

The notification saying "you missed some notifications" after you leave Do Not Disturb mode no longer becomes visible in the history view after it expires, because if you can see it there, you're already in the place it wanted to tell you about. (Nate Graham, link)

Notable Bug Fixes

Plasma 6.4.5

Fixed several related issues with Plasma panel customization: one issue that prevented the Escape key from closing the configuration dialog, and another that caused widgets to get stuck if you pressed Escape while dragging them. (Niccolò Venerandi, link 1 and link 2)

Cloning a panel now also clones the settings of its System Tray widget, if it has one. (Niccolò Venerandi, link)

Fixed a layout issue with the Audio Volume widget that could cause an app's recording stream to be visually indented more than it should have been. (Christoph Wolk, link)

Plasma 6.5.0

Applied several more bug fixes for desktop icons to make sure they don't shift around so much. One of them fixes a related issue whereby the icons would reset their positions after you switched between the Folder layout and the Desktop layout, and then back again. (Akseli Lahtinen, link)

Made a few reliability fixes for the built-in RDP server to make sure that on every distro, it can be manually enabled, and also doesn't auto-start unless specifically told to. (Arnav Rawat and Nate Graham, link 1 and link 2)

Fixed an issue causing a standalone Audio Volume widget on a panel to sometimes take up too much space. (Niccolò Venerandi, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.4.5

Worked around a nasty issue in the AMD GPU graphics drivers. (Xaver Hugl, link)

Fixed a case where Plasma could hang after copying files from a slow (or later inaccessible) network location and opening the clipboard popup. (Fushan Wen, link)

Plasma 6.5.0

Swiched to a more lightweight timer for KWin's render loop, slightly reducing resource usage everywhere. (Aleix Pol Gonzalez, link)

Implemented support for version 2 of the global shortcuts portal. (David Redondo, link)

Frameworks 6.18

Further improved the speed of thumbnail generation throughout all KDE software. (David Edmundson, link)

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.

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE - you are not a number or a cog in a machine! You don't have to be a programmer, either; many other opportunities exist!

You can also help us by making a donation! A monetary contribution of any size will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.

23 Aug 2025 4:03am GMT

22 Aug 2025

feedPlanet KDE | English

Web Review, Week 2025-34

Let's go for my web review for the week 2025-34.


Google is killing the open web

Tags: tech, google, web, xml, xslt, html, history, vendor-lockin

Or why the XML roots of the web are important to keep in shape. I'm not necessarily in love with how verbose XML is, but it's been a great enabler for interoperability. That's indeed the latter reason which pushed Google to try to get rid of it as much as possible.

https://wok.oblomov.eu/tecnologia/google-killing-open-web/


Is Germany on the Brink of Banning Ad Blockers?

Tags: tech, advertisement, attention-economy, law

This latest ruling from the German supreme court is rather worrying…

https://blog.mozilla.org/netpolicy/2025/08/14/is-germany-on-the-brink-of-banning-ad-blockers-user-freedom-privacy-and-security-is-at-risk/


The Lawnmower IRC Server

Tags: tech, hardware, irc

OK, this is completely useless but definitely a fun project.

https://jotunheimr.idlerpg.net/users/jotun/lawnmower/


The future of large files in Git is Git

Tags: tech, version-control, git, storage, tools

Looking forward to Git LFS going away indeed.

https://tylercipriani.com/blog/2025/08/15/git-lfs/


Introduce git-history command for easy history editing

Tags: tech, tools, version-control, git

Let's see if this gets merged. This could be interesting convenience.

https://lore.kernel.org/git/20250819-b4-pks-history-builtin-v1-0-9b77c32688fe@pks.im/


Cheap tricks for high-performance Rust

Tags: tech, performance, memory, rust, tools

No good tricks to optimize your code, but knowing the tooling knobs sometimes help.

https://deterministic.space/high-performance-rust.html


The issue of anti-cheat on Linux

Tags: tech, gaming, windows, linux, kernel, system

Or why competitive multiplayer games which anti-cheat probably will never make it to Linux. I'm not into this kind of games but this is an interesting piece on comparing the differences between the Linux and Windows kernels. It also show that with some care from the game developers, those anti-cheats might not be necessary in the first place.

https://tulach.cc/the-issue-of-anti-cheat-on-linux/


Predictable memory accesses are much faster

Tags: tech, cpu, hardware, memory, performance

Indeed, CPU prefetchers are really good nowadays. Now you know what to do to keep your code fast.

https://lemire.me/blog/2025/08/15/predictable-memory-accesses-are-much-faster/


Fun and weirdness with SSDs

Tags: tech, databases, ssd, performance

Interesting, it looks like index scans in your databases can have surprising performance results with SSDs.

https://vondra.me/posts/fun-and-weirdness-with-ssds/


How to Think About GPUs

Tags: tech, ai, machine-learning, gpu, tpu, hardware

Long but interesting chapter which shows how GPUs architecture works and the differences with TPUs. This is unsurprisingly written in the context of large models training.

https://jax-ml.github.io/scaling-book/gpus/


Tag-based logging

Tags: tech, logging

The idea is interesting, I wouldn't throw away level based logging but this could complete it nicely.

https://mmapped.blog/posts/44-tag-based-logging


A programmer's field guide to assertions

Tags: tech, safety, programming, organization

A bit of a long read, but does a good job explaining the use of assertions and how to introduce them in your organization.

https://typesanitizer.com/blog/assertions.html


A Better Vocabulary for Testing

Tags: tech, tests

There's a need for clearer vocabulary about testing indeed. The write up is a bit dry here but that's a start.

https://alperenkeles.com/posts/vocab-for-testing/


Everything I know about good system design

Tags: tech, system, design, complexity

A good list of things to consider when designing systems. And indeed in case of success the result looks probably boring.

https://www.seangoedecke.com/good-system-design/


Why do software developers love complexity?

Tags: tech, complexity, architecture, programming

Indeed, let's not fall for the marketing. It's better to write less code if it's enough to solve actual problems.

https://kyrylo.org/software/2025/08/21/why-do-software-developers-love-complexity.html


Are Your Programmers Working Hard, Or Are They Lazy?

Tags: tech, organization, team, productivity, quality, management

A good reminder that long hours are not a sign of success with your project… on the contrary.

https://mikehadlow.blogspot.com/2013/12/are-your-programmers-working-hard-or.html


Hordes Of Novices

Tags: tech, craftsmanship, learning, quality

Easy to misunderstand as an elitist stance… But it's not the way I read it. Churning more code faster isn't going to help us, you need to take the time for people to grow and improve. It's not possible to achieve if you're drowning in eager beginners.

https://blog.cleancoder.com/uncle-bob/2013/11/19/HoardsOfNovices.html


The 10 models of remote and hybrid work

Tags: tech, gitlab, remote-working, management, culture, organization

A good way to frame the possible models for your organization regarding remote work. The GitLab Handbook stays a very good resource regarding remote work, they really thought about it and documented their findings.

https://handbook.gitlab.com/handbook/company/culture/all-remote/stages/


Agile Product Ownership in a nutshell

Tags: tech, agile, product-management

I think this is still one of the best distilled explanation of product ownership. It's also interesting for the other parties on an agile project.

https://blog.crisp.se/2012/10/25/henrikkniberg/agile-product-ownership-in-a-nutshell


Managing in Mayberry: An examination of three distinct leadership styles

Tags: tech, management, leadership

Interesting parable, it's indeed a good way to illustrate different leadership styles. Being more strategic is clearly what one should try to do.

https://www.donaldegray.com/managing-in-mayberry-an-examination-of-three-distinct-leadership-styles/


The importance of stupidity in scientific research

Tags: science, research

An important essay in my opinion. It reminds us quite well what the core drive of scientific research is about.

https://journals.biologists.com/jcs/article/121/11/1771/30038/The-importance-of-stupidity-in-scientific-research



Bye for now!

22 Aug 2025 12:10pm GMT

Integrate KTextEditor into Cantor(2)

Integrate KTextEditor into Cantor(2)

Over the past few months, I've been working on an important refactor in Cantor: migrating the editor for command entries from our in-house QTextDocument implementation to the powerful KTextEditor framework. In my previous update, I described how Phase 1 laid the foundation-command cells were migrated to use KTextEditor::View, enabling basic syntax highlighting and a modern editing experience.

Today, I'm excited to share that Phase 2 is now complete! With this milestone, the migration of command entries to KTextEditor is fully in place, ensuring that all existing functionality works smoothly without regressions. This achievement provides a solid foundation for future enhancements while keeping Cantor stable and reliable for everyday use.

What's New in Phase 2

With Phase 2 now complete, command entries are fully integrated into KTextEditor. Along the way, we introduced three major upgrades to Cantor's core architecture, paving the way for a more consistent, powerful, and future-ready user experience.

🔹 Unified Highlighting Framework

All syntax highlighting in Cantor is now powered by KSyntaxHighlighting, the same robust engine behind Kate and KWrite. This change ensures that every backend (such as Python, Maxima, R, Octave, etc.) benefits from a consistent, accurate, and highly reliable highlighting system.

Previously, each backend shipped with its own ad-hoc rules that were difficult to maintain and often inconsistent in style. With the new centralized approach, Cantor handles highlighting uniformly, not only providing a smoother user experience but also laying the groundwork for future support of custom themes and user-defined keywords.


🔹 Unified Completion Infrastructure

Code completion has likewise been consolidated into a common framework coordinated through KTextEditor. In the past, each backend had its own incomplete and sometimes inconsistent completion logic. Now, all completion requests are handled in a unified, predictable manner, with backend-specific intelligent suggestions seamlessly integrated.

The result is less duplicated code, easier maintenance, and-most importantly-a more cohesive user experience. Whether you are writing Python scripts or Maxima formulas, code completion now behaves consistently, making Cantor feel smarter and more reliable.


🔹 Reduced Code Redundancy

By adopting KTextEditor as the core for command entry editing, we eliminated a significant amount of custom code that had been written in Cantor over the years to handle code completion and highlighting for the different supported languages.

This streamlining improves maintainability, reduces potential bug risks, and makes Cantor's codebase more approachable for new contributors. Developers no longer need to reimplement low-level editor features, allowing them to focus on advancing high-level functionality. In short: less boilerplate, more room for innovation.


Functional demonstration: new and old comparison, take a look!

Thanks to the new KSyntaxHighlighting backend, we can now temporarily change the theme of command entries, demonstrating future possibilities.

Please note that this is currently a preview feature; global "sheet themes" (applying themes uniformly to the entire sheet,) are our next steps.

By integrating KTextEditor, Cantor now provides a unified and reliable code completion experience for all backends (such as Python, R, and Maxima).

Cantor also supports consistent multi-cell handling, with themes and syntax highlighting applied uniformly.

Why This Matters

This migration is not just a technical change under the hood-it directly impacts how Cantor evolves:


What's Next

With command entries now fully migrated, the door is open for exciting new improvements:

Theming support (planned)

For now, Cantor will keep the Default theme, which uses the desktop palette. This preserves the familiar look and behavior.

Next, we plan to introduce a Worksheet Theme setting. Users will be able to:

The selected theme will apply consistently across the worksheet-including command entries and results-for a unified appearance. Instead of relying on hardcoded colors or the system palette, Cantor will use the color roles provided by KTextEditor and KSyntaxHighlighting.

This approach avoids performance overhead from repeatedly reading theme files, ensures instant updates when switching themes, and lays the foundation for richer customization in the future-such as clearer distinctions between prompts, results, and errors, all within a consistent global style.


22 Aug 2025 12:00am GMT

20 Aug 2025

feedPlanet KDE | English

AI Coding with Qt: Qt AI Assistant for Qt Creator

AI Coding with Qt: Qt AI Assistant for Qt Creator

The integration of artificial intelligence into software development environments has rapidly evolved, and Qt Creator is no exception. With the introduction of the Qt AI Assistant by Qt Company, developers working with Qt Creator now have access to AI models through the IDE. This post provides an introduction to the Qt Creator plugin.

This is part 1 of an ongoing series about AI coding with Qt.

What is Qt AI Assistant?

Qt AI Assistant is a commercial plugin for Qt Creator to bring current AI models to the IDE. Features provided by the plugin include

  • Code completion for multiple languages (QML, C++, Python, Bash, etc.)
  • Contextual chat with your codebase, enabling explanations, code generation and code review
  • Automated test case generation, particularly tailored for QML and Qt-specific workflows
  • Model choice based on languages (QML vs other languages) and task (chat vs code completion)

This is a step up from the existing GitHub Copilot support in Qt Creator that was focused on code completion only.

Completing Qt AI Assistant is a publicly available set of models by Qt Group. The models are based on CodeLlama and are fine-tuned for usage with Qt 6 QML. They are not included with the plugin but need to be set up manually using Ollama.

Setting Up Qt AI Assistant

The setup process for Qt AI Assistant is more involved than some other AI coding tools. The plugin is currently available as part of the commercial Qt distribution. Installation requires enabling the appropriate extension repository within Qt Creator and activating the plugin. Once installed, configuration is necessary to connect the plugin to a large language model (LLM) provider.

Supported LLMs include OpenAI (ChatGPT), Anthropic (Claude), Google (Gemini), and self-hosted models via Ollama. For OpenAI integration, developers must use the OpenAI developer platform to generate an API key, which is different from having an account for ChatGPT. This API key is then entered into the plugin's settings within Qt Creator. Other models require similar setup using URLs and credentials, depending on the provider or the self-hosting method.

More information is in this video linked at the bottom of this blog post.

Features in Practice

Code Completion and Chat

The plugin distinguishes between code completion suggestions as you type and prompt-based interactions, such as asking for code explanations or generating new code. For QML, a specialized Code Llama 13B QML model can be used. For other languages general purpose models are employed.

The chat interface allows developers to highlight code and request explanations or modifications. For example, selecting a block of QML or C++ and asking the assistant to "explain the selected code" yields a detailed, context-aware explanation.

Test Case Generation

A notable feature is the ability to generate test cases from selected QML code. While the generated tests may require manual refinement, this automation can accelerate the initial setup of unit tests and reduce repetitive work. The plugin's approach is to copy relevant code into the test, which may not always result in optimal reuse, but provides a useful starting point.

Model Choice

Developers can choose between different LLMs to use for the chat and review vs the code completion scenario. For QML model choice is separate, and offers including the fine-tuned models provided by Qt Company. This flexibility extends to hosting options, supporting both cloud and local deployments, depending on organizational needs and privacy considerations.

Further Resources

For a detailed walkthrough and live demonstrations, watch the following episodes of "The Curious Developer" series:

Additionally, the official Qt AI Assistant product page provides up-to-date information on features and availability: https://www.qt.io/product/ai-assistant.

Outlook

Future posts in this series will consider alternative coding tools useful for Qt and will bring the newest developments of the tools we mention here.

The post AI Coding with Qt: Qt AI Assistant for Qt Creator appeared first on KDAB.

20 Aug 2025 6:38am GMT

18 Aug 2025

feedPlanet KDE | English

Qt Creator plugin : Simple all-in-one QML editor

Hello all,

I would like to show you my first QtCreator plugin. It is an all-in-one window to test Qml Code.

How often do you run into issue about QML code; not doing exactly what you want ?

Demo:

Examples demo:

Here it a simple tool to test quickly some QML code. No need to create a new Test Project.
Open the plugin, type or copy/paste your code, do some changes until it does what you want.

It is mostly inspired from some Qml online site, but it is available directly into QtCreator.

Git repo: https://github.com/obiwankennedy/QmlSampleEditor

Download: https://github.com/obiwankennedy/QmlSampleEditor/actions/runs/

The post Qt Creator plugin : Simple all-in-one QML editor appeared first on Renaud Guezennec.

18 Aug 2025 12:31pm GMT

Kdenlive 25.08.0 released

The Kdenlive team is happy to announce the release of version 25.08.0 packed with over 300 commits and fixing more than 15 crashes. This release has no major shiny new features, just a ton of bug fixes and lots of polishing to give you a pleasant editing experience in the summer heat.

Interface and Usability

Mixer

Redesign of the audio mixer bringing levels with clearer visuals and thresholds. We also did some code refactoring and cleanup. This change fixes issues with HiDPI displays with fractional scaling.

Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>

Titler

This release the titler received some much needed love like improved SVG and image support with ability to move and resize items, added center resize with Shift + Drag, and renamed the Pattern tab to Templates and moved the templates dropdown to it:

Other fixes include:

Scopes

Improved Scope styling by using system palettes for better theme integration as well as bug fixes in artifacts on high zoom level and paint modes. Compare the old styling on the left side with the new styling on the right:

Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>

Subtitles and Speech-To-Text

Markers and Guides

Guides and Markers got a major overhaul this release to improve the project organization.

Project Notes

image

Some highlights include: improve icons, automatically convert typed timecodes to links when pressing enter, fix pasting text with multiple lines, notes can create guides and markers directly, and the widget has improved icons and text handling

Monitors

Video Processing

We've added work on rendering, encoding, decoding, and transcoding such as:

Decoding

Rendering / Encoding

Screenshot of <nil>
Screenshot of <nil>

Under the hood

Fixed platform specific issues:

Upcoming events

image

The team will be in Berlin this September for two events. First, the Kdenlive Sprint which will include a community meetup on the 4th of September (stay tuned for more details) and on the 7th of September we'll be at Akademy, where Jean-Baptiste will give a talk about our fundraiser experience. Join us!

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 :

You can also support us by considering a donation that will help Kdenlive's development.

For the full changelog continue reading on kdenlive.org.

18 Aug 2025 11:00am GMT

LabPlot 2.12.1 released

Today we are announcing the availability of the minor patch release 2.12.1. This release contains minor improvements and bug fixes only. The fixes are distributed over many different areas of the application and we recommend everybody update to this patch release which is available from our download page.

The full list of fixes included in this patch release is as follows:

In the area of small UX-improvements, we added the Shift+Enter shortcut in the Properties Explorer for all analysis curves (fitting, smooth, etc.) which allows to quickly re-calculate the results using the same shortcut as in the notebook. Furthermore, we improved the tab-order and layouts in multiple properties widgets.

In parallel, we are also working on the new features and improvements that will arrive in the next major release which will come with multiple big and highly awaited features. We'll introduce these features in upcoming blog posts. Stay tuned!

18 Aug 2025 9:02am GMT

GSOC: Until Midterm, August 2025

Representative and generated

So long of GSoC and No blog yet? Why Soumya?

Yeah, yeah, I know. It's been a while, and no blog posts yet. But hey, between wrestling with CFFI + C + Python and libcups with its 150+ APIs, blogging kind of took the back seat. But enough excuses - let's dig into what's been cooking.


A little history (with C in it)

Back in the day (almost 15 years ago!), Tim Waugh wrote the first version of pycups as a C extension module for Python. That worked well, but like all old code, it aged… let's just say, not like fine wine. After Tim, Zdenek took over as maintainer, but with multiple projects of OpenPrinting and other projects in the mix, there wasn't much room to modernize PyCups2 for him.

18 Aug 2025 5:30am GMT

Krita Monthly Update - Edition 29

Welcome to the July 2025 development and community update.

Development Report

Text Tool Rework Progress

Another important piece of the Text Tool update has made it into the unstable nightly builds: Style Presets.

Screenshot showing the Text Properties docker's Preset tab with examples, and the Edit Style Preset dialog.

Style Presets allow you to save font settings and apply them quickly.

For making text bold, or a certain font at a certain size, or a huge list of settings tweaked just right, you can easily apply your favorite properties without having to remember them all. (MR!2403)

The QML Text Properties docker now uses the same custom slider-spinbox widgets as the rest of Krita, thanks to Wolthera and Deif Lou. (MR!2428)

Community Report

July 2025 Monthly Art Challenge Results

16 forum members took on the challenge of the "Cool Rides" theme. And the winner is… Cool Rides by @edgarej

Cool Rides by @edgarej

The August Art Challenge is Open Now

In the spirit of August's monthly challenge being unofficially dedicated to Krita's cybersquirrel mascot, winner @edgarej has chosen "Kiki's Summer Activities" as the theme. The optional challenge as chosen by runners-up @npc and @Mythmaker is to give Kiki a pet companion. What does Kiki like to do to beat the heat? You decide!

Featured Artwork

Best of Krita-Artists - June/July 2025

This month's Best of Krita-Artists Nominations thread received 13 nominations of forum members' artwork. When the poll closed, the moderators broke a five-way tie for second place, and these five wonderful works made their way onto the Krita-Artists featured artwork banner:

On the Road Again by @Yaroslavus_Artem

On the Road Again by @Yaroslavus_Artem

Lucy CyberPunk Edgerunner Fanart - P.2025058 by @ynr_nohara

Lucy CyberPunk Edgerunner Fanart - P.2025058 by @ynr_nohara

Medieval Table by @Ape

Medieval Table by @Ape

Summer Retreat by @Gurkirat_Singh

Summer Retreat by @Gurkirat_Singh

Mountain Sunset - Master Study Bohdan Saliy with Memileo Impasto Brushes by @TaleOfACat

Mountain Sunset - Master Study Bohdan Saliy with Memileo Impasto Brushes by @TaleOfACat

Ways to Help Krita

Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors. That means anyone can help make Krita better!

Support Krita financially by making a one-time or monthly monetary donation. Or donate your time and Get Involved with testing, development, translation, documentation, and more. Last but not least, you can spread the word! Share your Krita artworks, resources, and tips with others, and show the world what Krita can do.

Other Notable Changes

Other notable changes in Krita's development builds from July 16, 2025 - August 18, 2025.

Stable branch (5.2.12-prealpha):

Unstable branch (5.3.0-prealpha):

Nightly Builds

Pre-release versions of Krita are built every day for testing new changes.

Get the latest bugfixes in Stable "Krita Plus" (5.2.12-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

18 Aug 2025 12:00am GMT

17 Aug 2025

feedPlanet KDE | English

Week 11 recap GSoC 2025 - Documentation and Refactoring

Intro

After getting the Selection Action Bar into a working state over the past few weeks, this week I focused on creating documentation and refactoring code to improve clarity, maintainability and make sure other contributors can build off of this work without confusion.

Progress

Documentation

One of the most important parts of contributing to open source is writing about what you have built. Krita's documentation is maintained in a dedicated repository. This week I began drafting a merge request to add a page with instructions and UI images under the reference manual tools section.

My aim is to ensure that any Krita user can easily understand the feature through both the documentation and the code.

Refactoring

Another important part of contributing to open source is writing code that is easy to read and maintain for future contributors. My aim was to improve the structure of the code without changing its behavior. I did this by reducing duplication, using descriptive variable names, and replacing magic numbers with named constants.

Instead of manually creating and connecting each button, I introduced a helper function that takes configuration data (icon, tooltip, slot) and handles the setup in one place.
Create Button Helper

I also applied an extract method refactor, grouping the buttons and toolbar UI logic into their own functions.
setupButtons and drawActionBarBackground

Conclusion

This week reinforced the importance of writing both documentation and clean code. I learned that documentation ensures users understand your work, while refactoring ensures the code is clear and easy for contributors to improve.

Heading into the final week of GSoC, I am ready to share my contributions and overall learnings. My focus will be on gathering feedback and finalizing the feature!

Contact

To anyone reading this, please feel free to reach out to me. I'm always open to suggestions and thoughts on how to improve as a developer and as a person.
Email: ross.erosales@gmail.com
Matrix: @rossr:matrix.org

17 Aug 2025 12:00am GMT

16 Aug 2025

feedPlanet KDE | English

Various desktop Linux tips for newbies

There has been quite a surge in interest towards desktop Linux lately. The userbase, atleast according to some metrics, seems to be climbing.

I realised today that it's been 4 years for me since I did the switch. I have gathered some know-how that maybe a complete newbie could find useful. I also try to untangle some jargon I've learned: It may not be exactly technically correct, but this is meant for a more regular user anyway.

Note: Do not trust "AI" tools when looking for information. They can lie. They don't really "know" anything, they just copy what they see on the internet, and spit it out. Sometimes in wrong orders and contexts. I will list some resources I trust at the end of the post.

I have also written about this before here: Setting up Kubuntu for gaming

That post is quite out of date though, so consider this a supplemental material and sort of upgrade.

Investigate the software you need

There is often times where you can only use specific software on Windows only. Or specific games with anticheats do not work on Linux; Not all of them though! Just some, especially with kernel level anticheats!.

But for example Photoshop or similar tools do not work on Linux natively. There can be tricks to get them working.

You would not expect Mac software to work on Windows, right? This is similar kind of situation.

Now Linux can run some Windows applications through Bottles, which uses Wine. But not all.

So, make a list of the Must Have applications you have. Then search for Linux compatibility.

In some cases, you may find alternatives for the application, that work on both Windows and Linux! When that happens, you can already test it out in Windows and see if it works for your workflow, and start using that instead. Note that this can take time to learn, but I think it would be worth it.

And hardware too

I haven't had a problem with incompatible hardware with Linux for long long time, but it's still good idea to check it. For example, if you have Nvidia GPU, you may want to check if the GPU is supported by which drivers, or if you need to install drivers at all. For AMD/Intel GPU users, you're in luck, because the drivers are in the Kernel: This means that you don't need to install anything.

If I have had trouble with hardware, it's often been audio devices, like headsets that have two separate dials for sound (mono and stereo), weird bluetooth speakers, etc..

Backup all your stuff

Before doing anything to your PC: Backup your data. Backup the photos, the videos, the game save files, documents, anything you may need. Back them up to a cloud service or external drive.

Make sure those backups work, too.

Distribution choice paralysis

Linux distributions are all their own operating systems, they just share the most central part, that is the Linux kernel.

Distributions take that kernel, add their own things to it and make it what they want it to be for their users.

There's a lot of distributions. Like, A LOT. So of course it'll feel daunting to choose one.

But there's no "wrong" choice. It will probably take time to figure out which one you like, but honestly, most people will be fine with one that does it's job, stays out of the way and updates without effort.

Everyone has tons of opinions about this. Then there's the weird curmudgeons that tell others their opinion is "wrong." Those people are something you can ignore. If it works for you, that's all that matters.

After choosing a distribution, you install it to an USB stick (that has nothing important in it, so NOT the one with your backups!!) with tool like Rufus, boot from it at PC startup (varies between motherboards) and get installing.

My recommended newbie distributions

To help one get started with choosing, here's my recommendations from all the distributions I've tried on my ~4 year journey.

Do note that gaming is big factor in my computer use, so if the distribution can't game well, it's not on this list.

Bazzite

Homepage: https://bazzite.gg/

Bazzite is perfect distribution for anyone starting with Linux.

It's made so that user can't really break it, due to it's nature: You can't really open system files and start modifying them and deleting them. Then, updates are done in a way that if something goes wrong, you can go to previous version of the distribution.

On top of that, it makes setting it up very easy with its guides. And in download section, you select what hardware you have, and what desktop enviroment you have, so you know from the get-go that it's very likely going to work with your system.

If you don't really know what to choose, go with Bazzite.

Fedora KDE

Homepage: https://fedoraproject.org/kde/

Fedora KDE is solid. It works, it updates regularly, it plays games I play really well, and works with development. And then it stays out of the way. Fedora is also what Bazzite is built on top of.

Fedora however allows you to tinker with the system files and such, as long as you have access to it. You should not do that if you don't know what you're doing! But it's possible.

Installation on systems with AMD/Intel GPU is really easy and you don't need to install any separate drivers.

With Nvidia GPU, you will likely have to use RPM Fusion repositories, and follow their guide: https://rpmfusion.org/Howto/NVIDIA.

So yes, for Nvidia users it can be bit more tinkery.

Fedora KDE is my daily driver because it works really well with any development work I do due to it's up-to-date system libraries. And since it's regularly updated, if there is a bug, it often gets fixed just as fast.

Kubuntu

Homepage: https://kubuntu.org/

Last but not the least, Kubuntu is a solid distribution as well. It does not update as frequently as Fedora KDE does, but not everyone needs such frequent updates, especially for basic daily use.

Kubuntu utilizes same tools and systems as Ubuntu, which you may have heard of. So it has a solid community behind it.

When I used Kubuntu, it worked with games really well and I had zero issues with it. I moved to Fedora due to development stuff, so that's why I don't use it anymore.

When downloading Kubuntu, make sure to choose "Latest."

Note about LTS distros

LTS stands for "Long Term Support" or "Long Term Stable."

This wording has caused a lot of confusion: People tend to think "stable" means it doesn't crash. What it actually means is that it won't change and that means the bugs are stable too. The only updates it gets are security updates. Bug fixes, especially for software, are really rare.

LTS/Stable distributions are perfect for enterprise environments or your grandmas PC which you know she won't remember to update.

For regular use, especially gaming use, I would recommend against them: They use LTS kernel that has support only for specific devices, so if you buy a new shiny GPU and plop it in to system running on LTS kernel, it very likely does not have support for that new shiny GPU.

Also, when you encounter an annoying bug, be prepared for that bug to stay around until the next LTS release: Which can mean years!

So unless you really know you need LTS distribution, choose anything that is "Latest" or frequently updated. You will have less headaches that way: I learned this the hard way.

Desktop environments

You may notice that I seem to recommend distros running on KDE software.

This is because, well, I work on that software and I like it! But people also find it very easy to learn when they're coming from Windows.

When I started Linuxing, I tried GNOME. It's a great desktop environment, but it's far from what Windows is. This was very overwhelming for me, because I was already learning completely new operating system paradigm, so having also the desktop use change from underneath was really jarring. I then tried XFCE, which is very lightweight and nice to use, but it lacked some things I wanted, like Wayland support.

I then stumbled upon on KDE Plasma and fell in love with it: I did not have to learn completely new way of using my desktop, but could gradually modify the desktop to suit my needs. My Plasma setup is far from the defaults nowadays, and Plasma allowed me to discover what I like on my own pace.

Note that I don't think any desktop enviroment is "bad." They're just different, catering for different needs.

But for most Windows users, I do recommend KDE Plasma for the above reasons: Less cognitive load to learn everything.

Unlearning Windows

When moving to desktop Linux, most people are confused by some things, like "Where's my C-drive."

Windows has taught many of us specific patterns, and when those patterns do not exist, we tend to blame the system we're using.

What you need to remember is that you're not trying to switch to "better Windows." You're switching to completely different operating system, and you need to try your best at unlearning Windows.

So where is the C and D drive

Instead of having drives like C and D, you mount the drives you have.

You can open terminal and type ls /mnt/ and it shows what drives you have mounted.

Mounting in this case means that it's plugged in and browsable.

Here's a shoddy comparison:

The / is called "root directory" and that's where everything in the PC resides.

It can get more complicated, and my suggestion is to just leave / alone.

If you want to have games on your other drive, check your /mnt/ folder for that drive. Usually during installation the drive is made for you.

If not, you may have to ask help for the distribution you're using.

In Linux, all drives and such are folders, that start from /. Instead of multiple "trees" that start from "C" or "D", there's one big tree that starts from /.

What's /home/ or ~

When you open file manager such as Dolphin, usually the first folder you see open is /home/your-username/.

This is your home folder. Think of it like "my documents" folder in Windows computers.

Keep all your documents, videos, images etc. in here.

When people say ~/Documents, the ~ is shorthand for /home/your-username/. This also works inside terminal, so you can type ls ~ to see what's inside your home folder, without having to type the /home/user.

Can I just keep my game drive from Windows?

When installing Linux, many people tend to ask that if they can just keep the drive full of games, like D: drive, without formatting it and just use the same game files.

Well, you sort of can, but Linux is not very fast with it. When Windows formats drives, it uses something called NTFS for them. Linux has many different ones, but usually it's ext4 or btrfs.

NTFS drives can be opened and such on Linux, but it can be rather slow.

So my tip is just to back up the game data to something like USB drive and then move them, or just download the games again. You will be much happier with the performance that way.

Do not be afraid of terminal

Terminal is that box full of text you can type in. It looks like something from the 80s/90s.. And it can be intimidating.

Don't be afraid of it! Terminals are great way to operate on some things because they're desktop agnostic!.

This means that if your friend uses GNOME and you use KDE Plasma, and you both have some problem you have to solve. GNOME and Plasma have different user interfaces, so you can't really advice your friend how to solve that issue on their end.

However, what you can do is solve that issue inside terminal with a command, then share that command with your friend who can then use it too.

Of course, there's a ton more nuance here.. But the above is why it's still being used.

Couple important notes:

Commands that need sudo to be run mean that they have access to everything on your computer, as they need a root access. If you don't know what you're doing, things may break.

Again, this is not something you need to be afraid of, but you should be cautious, especially when copying commands from the internet!

Report bugs!

In Linux world, most things don't cost anything. However, if you encounter bugs, you should report those to the app/system you encountered it with.

This helps the bug to get fixed. Sometimes it can take long time, sometimes it can be fixed next day.

But without the bug report, nobody will know.

Here's a post about reporting bugs I wrote: How I report bugs

Note: If you're using LTS distribution, report all the bugs to the distribution itself, not the app/system!

Avoid installing apps from internet

On Windows, it's common to go to a website and download an exe file there to install something.

On Linux, we prefer using app "stores" where one just types what they want to download and then download it.

For example in KDE Plasma, we use tool called Discover.

Instead of going to internet, open Discover and type the name of the app. If it exists, it'll pop-up, and then you can download it there.

This is safer for the user as the files come from the distribution (or Flathub, more on that later), so they have been (likely) tested that they work. They also are installed more cleanly to the system, so you get all the launcher icons and other things.

You can download apps from web pages, and sometimes that's the only way to get some apps. But always first check your distribution app downloader.

Flathub

Flathub is the new cool thing that uses Flatpaks.

As a regular user you don't need to worry as much what Flatpaks are, but I will explain anyway: When distributing application between distros, some distros use different package management systems.

This then can get out of hand when you want to share your app with 10 distributions that all use their own thing. Or they use the same thing but have different library versions.. And this causes headaches.

What Flatpak tries to do is just Make Things Work by adding all that's needed to the package, then user just installs it. Flathub is a central place where people upload their flatpaks.

Flatpaks also have security measures, that can be helpful with some apps. For example Flatpak apps can be told to not be able to read any other folder than ~/Downloads etc. Kind of like what Android has with their permission system.

So, if your system does not have Flathub set up, select your distribution from here, and add it to your system.

However I advice to not install Steam through it: Steam works better when it has more access to your system. So follow your distributions guide for installing Steam in those cases.

Learning resources

Again, do not rely on AI tools. They can lie.

Instead, search information from various forums and wikis, such as:

Then, every project and desktop has often their own forums and wiki pages. When in doubt, read those. Don't be afraid to ask in the forums either, or in chats like IRC or Matrix.

Anything else?

Uh, that's a lot of stuff. I don't remember if I had anything else in mind. I will update this post if I do remember suddenly something.

I hope this has been useful, however! I can't give in-depth guides to everything, because things can vary between distributions, hardware, desktop environments.. But I hope this can at least help you get started and helps resolve some questions you have.

If you have any questions, feel free to mail me at linux-newbies@akselmo.dev. If it's something that should deserve it's place here, I will update the post.

Anyways, thanks for reading!

16 Aug 2025 5:15pm GMT

Getting ready for Akademy 2025

We are just three weeks away from KDE's annual Akademy conference, time to get going with the preparations.

I'm going to Akademy 2025!

Emergency and weather warnings

I'll have a talk on Saturday, 18:15 in room 1, about our work on building infrastructure for integrating emergency and weather warnings (abstract).

The server part of this is progressing steadily with performance and scalability issues being addressed, and thanks to contributions from Breezy Weather we recently managed to finally fill the largest remaining coverage gap, China.

World map with many small color-coded areas indicating active alerts.
Map view with active emergency and weather alerts.

KDE's client side code is keeping up with API changes and data issues we discover, but lacks any "real" UI integration so far. I hope that we can have a discussion at Akademy on how that can and should look like.

Map of the affected area as well as some structured information about a heat alert.
Details about a single alert.

Cell Broadcast

Last year we had a single chance for cell broadcast testing for Plasma Mobile. That's better than nothing but not really efficient for development. If everything works out we might have a few more tries this year. That's thanks to dedicated test equipment, so nothing to worry about :)

Travel

Not starting an Akademy day with discussions over breakfast already, not ending the day with some late night hacking in the hotel lobby, and really boring travel will make this a bit of a different Akademy experience for me this time.

Nevertheless, that "stay at home" event has exposed a few issues with Itinerary's transfer handling, so at least the traditional Akademy-related Itinerary bug fixing remains.

Of course all Akademy (sub-)events are directly importable into Itinerary again by pasting their corresponding website URLs, as you are used to by now. If you still haven't booked your train, note the Deutsche Bahn Akademy attendee discount. It's the first time we have this, so I'd be interested in feedback from those of you who ended up using this, to see if it's worth setting this up for future events as well.

And more

Akademy is not just about by personal rabbit holes of course, there's broader KDE topics I'd be interested in discussing as well, such as:

See you at Akademy!

Fingers crossed nobody gets lost due to an Itinerary bug on the way (and no, not realizing that FRA != HHN is not Itinerary's fault), and very much looking forward to seeing many of you in Berlin!

16 Aug 2025 7:00am GMT

This Week in Plasma: a lot of polishing!

Welcome to a new issue of This Week in Plasma!

Every week we cover the highlights of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.


This week we didn't focus on features, and instead fixed bugs, improved performance, and improved the UI. There were several concerted pushes on various initiatives that bore a lot of fruit! Relatedly, if you notice that the number of high-priority bugs has risen, this is the result of recent bug triaging to prioritize those issues for fixing soon.

But don't worry, there's still a lot of feature work happening in the background, it's just that none of it landed this week. Ultimately it's good that we take our time here, as half-baked new features have been a source of bugs in the past. We want to make sure we're merging work in a state that minimizes the chance of regressions.

So check it out:

Notable UI Improvements

Plasma 6.5.0

The Ocean sound theme's volume change feedback sound has been reduced in loudness so it doesn't sound so harsh anymore, and doesn't clip at high volumes. (Harald Sitter, link)

Plasma now shows a system notification by default when you plug in a device. This was done primarily for accessibility reasons, but can also help with troubleshooting. Note that we also did some work to make these notifications not annoying, so you'll be less tempted to post negative comments on Phoronix before using it. And you can also turn the notifications off if you want, and go back to just sounds! Or no feedback at all, if you prefer that. (Nate Graham and Kai Uwe Broulik, link 1, link 2, and link 3)

Notification about a Logitech USB optical mouse having been connected

The Adwaita GTK theme is now shown by its correct name on System Settings' Application style page, rather than appearing as "Default". (Luan Oliveira, link)

Made a bunch of accessibility improvements to System Settings' Flatpak Permissions page. (Christoph Wolk, link)

On Plasma widgets' "About" pages, website information is now shown in a more appropriate place, rather than with the license information. (Nate Graham, link)

Plasma widget “About” page with the website listed in its own section

Frameworks 6.18

All tasks that register with Plasma's job tracker now automatically inhibit sleep and screen locking; this is now opt-out rather than opt-in. (Kai Uwe Broulik, link)

We've removed all of the colorful 3rd-party app icons from the Breeze icon theme. This was a complicated decision, but ultimately we reasoned that overriding 3rd-party app developers' branding was rude, and we also realized that even if we didn't care about that, we lacked the interest and resources to maintain the icons as those developers changed their apps' branding over time. Anyone who feels sad about this is welcome to create an icon theme containing only the old colorful 3rd-party app icons which inherits Breeze, and stick it up on https://store.kde.org for others to use. (Nate Graham, link)

The "New Folder" Dialog invokable from Plasma and many KDE apps now word-wraps long paths, so the dialog can't become comically wide. (Kai Uwe Broulik, link)

KDE Gear 25.12.0

Konsole and Kate are now capable of passing Wayland activation tokens back and forth, so running kate [path to file] in Konsole now causes existing Kate windows to get raised. For now it's just those two apps; a more generic solution for arbitrary combinations of apps still needs to be implemented. (Christoph Cullmann, link 1 and link 2)

Notable Bug Fixes

Plasma 6.4.5

Fixed an issue that could cause the ksgrd_network_helper process to stick around longer than needed, doing unnecessary work and potentially delaying system shutdown. (Arjen Hiemstra, link)

Fixed an issue that would, over time, generate multiple duplicate entries for Plasma widgets on System Settings' Shortcuts page. (Nicolas Fella, link)

Prevented Spectacle's menus from appearing in its screenshots on X11 as well. We originally fixed this for Plasma's Wayland session, but have now backported the fix for the X11 session as well. (Ismael Asensio, link)

The plasma-apply-desktoptheme command-line tool works again. (Nicolas Fella, link)

Fixed the selection highlights in System Settings' Region & Language page so that text has the right color when its list item is clicked or selected, no matter what color scheme you're using. (Han Young, link)

Correct selection highlight for list items on the Region & Language page

Fixed an issue that could cause DDC/CI control of screen brightness to re-activate itself after a screen dims on idle, in the case where you deliberately turned it off and want it to stay off. (Xaver Hugl, link)

Fixed an issue that caused NVIDIA GPUs to display the wrong names on Info Center's "About This System" page. (Oleg Gorobets, link)

Fixed a weird issue in the Kicker Application Menu that prevented search results from appearing if you removed all the favorite apps. (Christoph Wolk, link)

The "Open in File Manager" button for camera devices that appear in the Disks & Devices popup now actually takes you to the location with all the pictures. (Bogdan Onofriichuk, link)

Plasma 6.5.0

Switching global themes now re-colors everything in your KDE apps immediately, without leaving any leftovers - at least for apps not packaged as Flatpaks. Those still need some work. (Vlad Zahorodnii, link)

Maximizing a window with a blurred background no longer causes the blur to flicker a little bit. (Vlad Zahorodnii, link)

Moving a window with a blurred background no longer results in the subtle noise texture of the blur moving in a direction that doesn't match the window's own movement. (Marcin Woźniak, link)

Fixed an issue that could cause the bouncy app launch feedback animation to sometimes not stop after the app's window appeared. (Xaver Hugl, link)

Removing a System Tray widget no longer shows the wrong text in the notification that lets you undo removing it. (Filip Kendes, link)

Fixed an issue that prevented opening System Settings' Virtual Desktops page from the pager widget on X11. (Efe Çiftci, link)

The GNOME Terminal app now gets the right background color when themed with the Breeze GTK theme. (Sebastian Parborg, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.4.5

Fixed an issue that could cause KWin to lag and stutter when you changed the brightness on a laptop using an Intel CPU from the Tiger Lake family or later. (Myrrh Periwinkle, link)

Frameworks 6.18

Made several performance and memory usage improvements to Kirigami-based apps and System Settings pages. (Aleix Pol Gonzalez and Nicolas Fella, link 1, link 2, and link 3)

Made several speed and performance improvements to the thumbnailing system used throughout Plasma and KDE apps. (Akseli Lahtinen and David Edmundson, link 1 and link 2)

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.

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE - you are not a number or a cog in a machine! You don't have to be a programmer, either; many other opportunities exist!

You can also help us by making a donation! A monetary contribution of any size will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.

16 Aug 2025 12:03am GMT

15 Aug 2025

feedPlanet KDE | English

Web Review, Week 2025-33

Let's go for my web review for the week 2025-33.


Didn't Take Long To Reveal The UK's Online Safety Act Is Exactly The Privacy-Crushing Failure Everyone Warned About

Tags: tech, politics, surveillance

Looked like a very bad idea in theory… now everyone can see how bad it is in practice. It's disappointing that the UK government decided to go that path.

https://www.techdirt.com/2025/08/04/didnt-take-long-to-reveal-the-uks-online-safety-act-is-exactly-the-privacy-crushing-failure-everyone-warned-about/


Fight Chat Control - Protect Digital Privacy in the EU

Tags: tech, politics, surveillance, privacy

It's looking bad, this still need to be fought.

https://fightchatcontrol.eu/


GitHub will be folded into Microsoft proper as CEO steps down

Tags: tech, ai, machine-learning, copilot, microsoft, github

Honestly, it took much longer than I expected. Now you know that GitHub has really become a conduit for Microsoft's AI initiatives.

https://arstechnica.com/gadgets/2025/08/github-will-be-folded-into-microsoft-proper-as-ceo-steps-down/


Miegakure: A 4D puzzle-platforming game.

Tags: tech, 3d, 4d, mathematics, game

OK, the concept if really mind bending. The tech behind it is really interesting.

https://miegakure.com/


Over engineering my homelab so I don't pay cloud providers

Tags: tech, self-hosting, infrastructure

Definitely over engineered but a good way to play with many interesting tools.

https://ergaster.org/posts/2025/08/04-overegineering-homelab/


How I use Tailscale

Tags: tech, tools, networking, self-hosting

Interesting tips and caveats when using Tailscale.

https://chameth.com/how-i-use-tailscale/


HTTP is not simple

Tags: tech, http, complexity, protocols

The contrary is indeed claimed too often. This is far from a simple protocol, and that's probably to be expected seeing its history and success.

https://daniel.haxx.se/blog/2025/08/08/http-is-not-simple/


Cursed Knowledge

Tags: tech, reliability, communication, dependencies

Interesting approach for a project to collect such traps in their dependencies.

https://immich.app/cursed-knowledge/


Why do we even need SIMD instructions ?

Tags: tech, cpu, simd, performance

SIMD instructions are indeed a must to get decent performance on current hardware.

https://lemire.me/blog/2025/08/09/why-do-we-even-need-simd-instructions/


This Send/Sync Secret Separates Professional From Amateur Rust Developers

Tags: tech, rust, multithreading

This is a nice summary of the Send and Sync traits semantic in Rust.

https://blog.cuongle.dev/p/this-sendsync-secret-separates-professional-and-amateur


Arenas in Rust

Tags: tech, memory, safety, security, rust

Interesting point, fairly logical but didn't sit to think it through before. Indeed, using arenas to get back features of manual memory management won't lead to the same security issues than outside of a memory safe language.

https://russellw.github.io/arenas


Are we Teaching Rust Effectively?

Tags: tech, rust, teaching, learning

Indeed, is it that the language itself has a steep learning curve? Or that the emphasis is on the wrong things in the public discourse? I like the emphasis on the Aliasing Xor Mutability, it looks like a good way to approach the language.

https://blog.kodewerx.org/2025/08/are-we-teaching-rust-effectively.html


A clever comment style

Tags: tech, programming, comments, c++

That's an interesting trick to make sure people reevaluate comments when they remove some code. Doesn't work for every language of course.

https://akrzemi1.wordpress.com/2015/04/22/a-clever-comment-style/


id Software Programming Principles

Tags: tech, programming, craftsmanship, agile, developer-experience

Those principles are old now, but they really captured the zeitgeist of the time.

https://felipe.rs/2017/02/25/id-software-programming-principles/


TDD Harms Architecture

Tags: tech, tests, tdd, architecture, design

A good debunk of that claim we sometime see. Of course the tests need to be designed and you need to have good architecture blueprints to follow, otherwise you'll be in trouble… TDD or not.

https://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html


Delete your Tests

Tags: tech, tests, quality

There's a big "if" of course, don't just throw your tests out of the window. But indeed, they need to bring value… so start by having really good tests.

https://benjiweber.co.uk/blog/2014/04/27/delete-your-tests/


How Much Unit Test Coverage Do You Need? - The Testivus Answer

Tags: tech, tdd, tests, coverage

This is an old one but still a funny way to approach the question of test coverage. Unsurprisingly, the context matters.

https://www.artima.com/forums/flat.jsp?forum=106&thread=204677


Code Smells

Tags: tech, quality, smells, refactoring

A good explanation of why the concept is important, also comes with a nice list to get started.

https://blog.codinghorror.com/code-smells/


an engineer's perspective on hiring

Tags: tech, hr, hiring, interviews

Hiring and designing interviews is still not an easy task in our field. This post gives a couple of interesting things to try.

https://jyn.dev/an-engineers-perspective-on-hiring



Bye for now!

15 Aug 2025 2:08pm GMT

14 Aug 2025

feedPlanet KDE | English

Kate and Python Language Server: Basedpyright

This post is somewhat an update for my older post: Kate and Python language server

There seems to be a lot of different Python language servers.. And I just want one that does all and stays out of the way.

So after moaning about that I was pointed towards basedpyright on Fedi.

Despite the silly name, it works really well, so I set it up for Kate editor as I do. Here's how.

Install basedpyright

You may want to use something like pipx for this, that's at least what I did.

pipx install basedpyright

pylsp_in_env.sh

Then add pylsp_in_env.sh to PATH (such as ~/.local/bin/) Kate can see:

#!/usr/bin/env bash

path="$1"
cd $path
if [ -d ./.venv ]; then
 source ./.venv/bin/activate
elif [ -d ./venv ]; then
 source ./venv/bin/activate
elif [ -f ./Pipfile ]; then
 exec pipenv run basedpyright-langserver --stdio
 exit 0
fi

exec basedpyright-langserver --stdio

As mentioned in the previous post, this is needed to get the proper virtual environment. I also updated the script to work with Pipfiles.

Kate lsp settings

Then add this to Kate LSP settings.

I have also kept the pylsp settings there. It doesn't harm anything to have them there, in case you want to change the language server back to python-lsp-server.

{
 "python": {
 "command": [
 "pylsp_in_env",
 "%{Project:NativePath}"
 ],
 "root": ".",
 "url": "https://docs.basedpyright.com/latest/",
 "highlightingModeRegex": "^Python$",
 "settings": {
 "basedpyright": {
 "analysis": {
 "typeCheckingMode": "off"
 }
 },
 "pylsp": {
 "plugins": {
 "pycodestyle": {
 "enabled": false
 },
 "ruff": {
 "enabled": true
 }
 }
 }
 }
 }
}

You can change the typeCheckingMode to different values like basic and recommended if project demands it. I set it off because with recommended there's A LOT of diagnostics that I usually don't need, unless again, the project expects proper type checking.

Done!

And that's it. Restart Kate or the Language server inside Kate and as long as Kate can find the file, it should just start up basedpyright-langserver and work.

I like this language server a lot, but if there's other challengers in future, expect me to make a post about them too.

Until next time!

14 Aug 2025 12:06am GMT

KDE 🌞 Gear 25.08

A script element has been removed to ensure Planet works properly. Please find it in the original post.

Travel

Itinerary

Itinerary is your app for planning journeys and traveling. Itinerary works on your desktop and phone and can hold information on your accommodation, generate QRs for your boarding passes, inform you of delays and cancellations, find alternative routes or modes of transportation, help you locate the correct platform in an unfamiliar station or a gate at an airport, and even keep copies of health certificates and passes.

New in Itinerary 25.08 is the feature that lets you manually enter train or bus trips rather than selecting them from the timetable.

When you do get to the station/airport to catch your train/flight, use Itinerary's detailed public transport departures view. Click or tap on the location pin in the Journey Details page, and Itinerary will show a plan so you know exactly where you have to go.

Itinerary gives you precise directions on where to go to catch your train.

At the correct platform gate? Great! Now use Itinerary to check on your departure. The departure list automatically updates and you can select an individual entry to get a whole set of additional information. Details (where available) include:

  • service notes and alerts
  • occupancy levels
  • the full trip run in a schedule view and on a map
  • the exact departure location on an indoor station map

Your trip got canceled? Use Itinerary's alternative connections search. It's no longer limited to just trains and buses, and it now covers ferry trips and flights too. The alternative connections search also lets you select any transfer stop as the destination, unlike previously, where it was limited to just the first or the last one.

You're finally on the move, and the live status map shows you the position, speed and heading. Even better: Itinerary now offers additional map styles from OpenRailwayMap with its dedicated views for railway infrastructure, signaling, track gauges, electrification, and track speed ratings, all of which can be selected in Itinerary's live map.

Productivity

Akonadi

Akonadi is the engine behind many of KDE's productivity applications, you use to manage emails, calendars, contacts, tasks and so on. Both the Kontact suite and Merkuro apps use it to make your life easier.

Developers have been working hard to make it more stable and less resource hungry, and in version 25.08 they have managed to reduce the memory usage of various Akonadi resources by around 75% each.

Many apps, like the Merkuro Calendar app, benefit from improvements made to Akonadi

We also improved integration with closed source groupware services, like for Microsoft's InTune enterprise authentication service, which is now supported by Akonadi's Exchange support.

KOrganizer

KOrganizer is a calendar/task manager application integrated into the Kontact suite of productivity apps.

There's now a date picker that allows navigating to a selected date more quickly, and improved tooltips for the search fields.

KOrganizer’s date picker allows you to quickly navigate your calendar

Kleopatra

Kleopatra manages your signatures, encryption keys, and digital certificates. It also has a notepad you can use to write messages and encrypt them. The notepad now opens in a separate window (as opposed to in a tab, as it did before), allowing you to have multiple notepads open at the same time.

Kleopatra’s notepad pops up in a separate window.

System

Dolphin

KDE's powerful file and folder browser/manager now offers two search engines that will help you find that specific, but elusive file or folder you can't locate.

Hit Ctrl + F to open the search bar. Under the Filter button, you will now be able to choose between File Indexing search, which uses KDE's blazingly fast indexing service, or Simple Search, which trawls through every folder and file and is quite slow but potentially more comprehensive.

Dolphins Filter dropdown offers you two search engines.

You can also choose to use KFind, a specialized utility that gives you more searching options.

Speaking of things available from within Dolphin, you can now open Filelight directly from the Tools menu. Filelight shows you how much space each file and folder is taking up on your disks with easy-to-understand charts.

The View Mode switching button has more options in Dolphin 25.08. Use it as a button to quickly flip through the ways you want to display the contents of your folders, or unfold the dropdown menu and choose how to sort items, toggle previews on or off, show hidden files, and more.

The View Mode widget comes with many more options in Dolphin 25.08.

KRFB

Krfb lets you share your desktop with another user, allowing them to see what you are doing, troubleshoot problems, or even take control to carry out tasks from afar. The new Krfb now supports non-European alphabets.

Social

Neochat

Neochat is KDE's instant messaging app for chatting over Matrix that works both on your desktop and mobile. In version 25.08, you can create polls and open a context menu for each individual thread of messages.

You can create polls in Neochat.

Edutainment

Artikulate

Artikulate, the app that helps you improve your pronunciation in new languages, is now fully compatible with Plasma 6.

Artikulate has been ported to Qt6.

kHangman

kHangman, the classic spelling game, now has support for the Greek alphabet.

You can play kHangman in Greek.

Utilities

Angelfish

Angelfish is a web browser that's equally at home on the desktop and on your Plasma Mobile phone.

You can now disable the Adblock in version 25.08 and use more shortcuts. For example, hit Ctrl + W to close the current tab, or Ctrl + Shift + O to toggle the bookmarks.

We also added a right-click menu to the history buttons to quickly navigate to a specific entry in the history of the current tab.

Angelfish acquires more shortcuts and right click menus.

Full changelog here

Where to get KDE Apps

Although we fully support distributions that ship our software, KDE Gear 25.08 apps will also be available on these Linux app stores shortly:

Flathub
Snapcraft

If you'd like to help us get more KDE applications into the app stores, support more app stores and get the apps better integrated into our development process, come say hi in our All About the Apps chat room.

14 Aug 2025 12:00am GMT