Skip to content

Sunday, 26 January 2025

I have an Android phone. The phone is 5 years old, functions perfectly for me, and is now E-Waste.

I can tell by the pictures on the phone that I bought it just after conf.kde.in in 2020 because it’s full of pictures of my visit to Colombia (where I met Maui Toolkit developer Camilo). It’s a Motorola G7 Power. It came with Android 9. It was updated to Android 10. It’s been a fine phone for 5 years, the battery life is still measured in days, it makes calls and does Matrix and Mastodon and whatnot. I personally have no reason to replace it at all.

I do have a banking app on it, which is now telling me that I need Android 11 to keep using the banking app. I presume the bank has a good reason for requiring the newer version. There’s no question of “just don’t use the app” since, well, Dutch banks are nearly inaccessible except via their phone app.

Motorola has a lousy record of providing Android updates for its phones, if I recall, and so the phone is now E-Waste.

Exactly the same thing happened with my mom’s phone. Slightly newer, no updates, E-Waste. The only upside I can think of here is that postmarketOS has two more devices for testing available (there are instructions for the G7 Power which are just as inscrutible as how-to-configure-XOrg instructions used to be in the ’90s. Assuming non-zero energy and some pent-up annoyance in the future, I can improve on that situation.

Saturday, 25 January 2025

Grab your favorite drink and join us for the first Kdenlive Café of the year! Come hangout with the developer team, share your ideas and feedback, get some scoops on what’s brewing for future releases and connect with fellow editors. Join the community!

📅 Tuesday, January 28th, at 8 PM (UTC)

🌐 https://meet.kde.org/b/far-twm-ebr

The post First Kdenlive Café of 2025 appeared first on Kdenlive.

The M is silent. In computing this stands for the underlined letters in menus that can be triggered using an Alt+Letter key combination, one that you can remember and apply later to navigate around more quickly.

Display Configuration dialog with various controls (Resolution, Scale, Orientation, Refresh rate, etc). Most labels have an underlined letter indicating they have a mnemonic
How about you just press Alt+R and use the arrow keys to change screen resolution?

Qt and other toolkits typically use an ampersand to denote a mnemonic when assigning a menu entry. For instance, “&Shutdown” will be displayed as “Shutdown” and trigger on Alt+S whereas “Slee&p” will be “Sleep” and trigger on Alt+P. Of course this isn’t limited to menus, pretty much any control, buttons and what not, can have mnemonics. Since they are part of the label, a translated string can and likely will have a different one.

KDE applications, both written in Qt Widgets and Qt Quick, automatically assign mnemonics for most controls that don’t have one explicitly set. This is done through KAcceleratorManager and Kirigami’s MnemonicData, respectively, using a set of rules based on the control’s type. For example, a toolbar button is less important than a regular button or check box but both are more important than a section label. It also tries to use the first letter of a word, if that letter is not already taken. If a control is hidden the shortcut is removed again. The end result in a German dialog is “&Abbrechen” (Cancel), “&OK”, and “A&nwenden“ (Apply, since the A was already taken) for its footer.

While our Qt Quick Controls 2 Desktop Style automatically assigned mnemonics for all of its controls, Plasma Components did not for CheckBoxes, Switches, and some others. That is now fixed and it’s now possible to use e.g. Alt+R to Raise maximum volume in the Volume applet or switch to the Applications tab using Alt+A. Likewise for the circular action button used on the lock and logout screens, you can now Alt+P to Sleep from the logout and lock screens! The “S” is taken for shutdown for consistency and unused on the lock screen.

Plasma’s shutdown dialog with: Sleep, Restart, Shut Down, Log Out, Cancel. Each button has a letter underlined indicating it has a mnemonic.
Mnemonics on the shutdown screen

I noticed that I couldn’t trigger the toolbar buttons in System Settings even though they clearly showed an underlined letter. Turns out the shortcut was registered twice for some reason! If this happens, neither action is executed and instead the “activated ambiguously” signal is emitted. Kirigami’s ActionToolBar is effectively two views: the regular strip of buttons and an overflow menu. The buttons are shown dynamically based on how much room there is available and the action’s priority. There was a bug in Kirigami’s mnemonic handler where hiding a control wouldn’t release its shortcut, effectively registering every toolbar shortcut twice.

Speaking of Kirigami, there’s a FormLayout similar to QFormLayout that we use for most of our settings pages. It has a label on the left, and control on the right. By default, the label generates a mnemonic to focus its buddy. However, we don’t just want to focus the control, we want to trigger it as if we had clicked it. Qt 6.8 introduced an animateClick method on buttons that briefly flashes the button as a reminder of what’s about to happen and then triggers it. For controls without this features, focus is set as before, albeit with ShortcutFocusReason to tell the control that it was focused as a result of a shortcut press. A ComboBox for instance reacts differently depending on how it got activated. I then also made sure no mnemonic is assigned to the label next to a control when the control itself already had one.

Plasma Desktop Folder Settings “Wallpaper” category. Layout, wallpaper type, positioning. Mouse cursor pointing at the underlined W of “Wallpaper” indicating that it has a mnemonic.
“Wallpaper type” needed an explicit buddyFor since it’s attached to a RowLayout

With those improvements done, I tested various Qt Quick applications and settings modules for their mnemonics. The “Display & Monitor” settings barely had any working ones. The thing is: FormLayout’s labels by default are attached to the Item to which the label was added. In case of KScreen, we often used a RowLayout to place a control an a “contextual help button” (the little (i) button with more information) next to it. Since RowLayout isn’t an interactive item, no mnemonic was assigned for the given row. Luckily, you can explicitly set buddyFor and tell it what the relevant control is. Doing that I made most of KScreen’s settings reachable by Alt key combinations. While at it, I explicitly set the letter H for the HDR check box.

Now that you’ve seen me improve our mnemonic machinery, what can you do to make an application more accessible this way? Press and hold Alt, see what shortcuts get assigned, try triggering the underlined letter using Alt+letter:

  • If there’s a FormLayout and the control isn’t reachable, check that there’s a proper buddyFor set.
  • For obvious abbreviation and words, consider to set a mnemonic explicitly so the letter used is consistent and predictable, like the “Enable &HDR” in Display settings
  • For custom controls not based on Qt Quick Controls, you can use Kirigami.MnemonicData to register your control with our Mnemonic infrastructure and assign the shortcut it generated to a Shortcut item.
  • Consider disabling mnemonics using Kirigami.MnemonicData.enabled where it doesn’t make much sense to have them. e.g. controls in lists. Each one would just get a subsequent letter in its word assigned, reducing the pool of available letters for the important ones
  • If a control doesn’t show an underlined letter, try Alt+first letter in the label. Maybe it has one that doesn’t show up for a reason?
  • Finally: Report or fix bugs you find!

Welcome to a new issue of "This Week in Plasma"! Every week we cover as much as possible of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week the bug-fixing for Plasma 6.3 continued, as well as a lot of new features and UI changes that have been in the pipeline for some time; these will mostly land in Plasma 6.4. There's a lot of cool stuff, so let's get into it!

Notable New Features

Late breaking Plasma 6.3 feature: Discover can now open flatpak:/ URLs. (Aleix Pol Gonzalez, 6.3.0. Link)

The time zone choosers present on System Settings' Date & Time page as well as the Digital Clock widget's settings page have been given a major upgrade: a visual UI using a world map! (Niccolò Venerandi, 6.4.0. Link 1 and link 2)

Notable UI Improvements

When activating the "Restore manually saved session" option on System Settings' Desktop Session page, the corresponding "Save Session" action now appears in Kickoff and other launcher menus immediately, rather than requiring a reboot first. (Marco Martin, 6.3.0. Link)

On System Settings' Users page, the dialogs used for choosing an avatar image are now sized more appropriately no matter the window size, and the custom avatar cropper feature now defaults to no cropping for square images. (Nate Graham, 6.3.0. Link 2 and link 2)

On the System Tray widget's settings window, the table on the Entries page now uses the alternating row color style to make it easier to match up the columns, especially when the window has been made enormous for some reason. (Marco Martin, 6.3.0. Link)

Improved the accessibility of several non-default Alt+Tab switcher styles. (Christoph Wolk, 6.3.0. Link)

Made the top corners' radii and side margins in Kickoff perfect. (Nate Graham, 6.3.0. Link)

Made the Breeze Dark color scheme a bit darker by default. (Thomas Duckworth, 6.4.0. Link)

Adjusted the visualization for different panel visibility modes to incorporate some animations, which makes them clearer. (Niccolò Venerandi, 6.4.0. Link)

You can now scroll on the Media Player widget's seek slider to move it without having to drag with the mouse. (Kai Uwe Broulik, 6.4.0. Link)

Scrolling on the Task Manager widget to switch between tasks is now disabled by default (but can be re-enabled if wanted, of course), as a result of feedback that it was easy to trigger by accident and could lead to disorientation. (Nate Graham, 6.4.0. Link)

Re-arranged the items on the context menu for Plasma's desktop a bit, to improve usability and speed for common file and folder management tasks. (Nate Graham, 6.4.0. Link)

The Audio Volume widget now has a hamburger menu button when used in standalone form, rather than as a part of the System Tray, where it already has one. (Niccolò Venerandi, 6.4.0. Link)

Tooltips for Spectacle's annotation buttons now include details about how to change their behavior using keyboard modifier keys. (Noah Davis, 6.4.0. Link)

Notable Bug Fixes

Fixed a case where the service providing the screen chooser OSD could crash when certain screens were plugged in. (Vlad Zahorodnii, 6.3.0. Link)

Fixed a case where KWin could crash on launch in the X11 session. (Vlad Zahorodnii, 6.3.0. Link)

Fixed a case where Discover would crash when trying to display apps with no reviews. (Fushan Wen, 6.3.0. Link)

Fixed a case where Plasma could crash after creating a new panel with certain screen arrangements. (Fushan Wen, 6.3.0. Link)

Fixed a random KWin crash. (Vlad Zahorodnii, 6.3.0. Link)

Fixed a bug affecting System Settings' Desktop Session page that would cause it to crash upon being opened a second time, and also not show the settings in their correct states. (David Edmundson, 6.3.0. Link 1, link 2)

Fixed several cases where screen positions and other settings might get reset after waking from sleep. (Xaver Hugl, 6.3.0. Link 1, and link 2)

You can once again drag files, folders, and applications to Kickoff's Favorites view to make them favorites, after this broke at some point in the past. In addition, the change also fixes an issue where Kickoff's popup would inappropriately open rather than move out of the way when you dragged another widget over it. (Noah Davis, 6.3.0. Link1 and link 2)

Apps that launch and immediately display a dialog window along with their main window no longer have those windows go missing in the Alt+Tab switcher. (David Edmundson, 6.3.0. Link)

Improved OpenVPN cipher parsing so it won't show cipher types that don't actually exist. (Nicolas Fella, 6.3.0. Link)

Activating a Plasma panel using a keyboard shortcut in the X11 session no longer causes it to bizarrely become a window! (Marco Martin, 6.3.0. Link)

System Settings' Touchpad page is no longer missing some options in the X11 session, depending on how you open it. (Jakob Petsovits, 6.3.0. Link)

Fixed a bug that could cause panels using the Auto-Hide and Dodge Windows settings to briefly get stuck open when activated while a full-screen window was active. (Niccolò Venerandi, 6.3.0. Link)

Right-clicking an empty area of the applications or process table in System Monitor no longer shows a context menu with no appropriate items in it. (Nate Graham, 6.3.0. Link)

Fixed a bug causing a second "System Settings" item to appear on System Settings' own Shortcuts page. (Raphael Kubo da Costa, 6.4.0. Link)

You can once again copy files and folders on the desktop using the Ctrl+C shortcut, after this broke due to an unusual interaction between the desktop and a placeholder message added a few versions ago. (Marco Martin, Frameworks 6.11. Link)

Fixed a case where a Qt bug could cause apps to crash in response to certain actions from the graphics drivers. (David Redondo, Qt 6.8.3. Link)

Other bug information of note:

Notable in Performance & Technical

Fixed a bunch of memory leaks in KScreen. (Vlad Zahorodnii, 6.3.0. 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! Any monetary contribution — however small — 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.

Friday, 24 January 2025

Fixed a major crash bug in our apps that use webengine, I also went ahead and updated these to core24 https://bugs.launchpad.net/snapd/+bug/2095418 andhttps://bugs.kde.org/show_bug.cgi?id=498663

Fixed okular
Can’t import certificates to digitally sign in Okular https://bugs.kde.org/show_bug.cgi?id=498558 Can’t open files https://bugs.kde.org/show_bug.cgi?id=421987 and https://bugs.kde.org/show_bug.cgi?id=415711

Skanpage won’t launch https://bugs.kde.org/show_bug.cgi?id=493847 in –edge please help test.

Ghostwriter https://bugs.kde.org/show_bug.cgi?id=481258

Kalm - Breathing techniques

New KDE Snaps!

Kalm – Breathing techniques

Telly-skout – Display TV guides

Kubuntu: Plasma 5.27.12 has been uploaded to archive –proposed and should make the .2 release!

I hate asking but I am unemployable with this broken arm fiasco. If you could spare anything it would be appreciated! https://gofund.me/573cc38e

Let’s go for my web review for the week 2025-04.


No billionaires at FOSDEM

Tags: tech, fosdem, foss, politics

I think this is a very welcome protest at FOSDEM. This keynote would be a shame on the conference. Unfortunately I already planned to not attend FOSDEM this year, but if you are: please participate to this sit-in.

https://drewdevault.com/2025/01/16/2025-01-16-No-Billionares-at-FOSDEM-please.html


Decentralized Social Media Is the Only Alternative to the Tech Oligarchy

Tags: tech, social-media, politics

This is indeed clear, the centralized web platforms are fragile by default. They are very prone to capture, this is what just happened.

https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/


I’ve been advocating for RSS support, and you should too

Tags: tech, rss

You like RSS feeds? Ask for them!

https://reedybear.bearblog.dev/ive-been-advocating-for-rss-support-and-you-should-too/


The PC is Dead: It’s Time to Make Computing Personal Again

Tags: tech, business, politics, DRM, surveillance, vendor-lockin

Very nice editorial. It’s clear that the level of trust in the technologies we depend on is low… but that’s not due to the technologies themselves it’s more about the business practices around them. In the end the solution will have to be political, in the meantime we ought to support the good players.

https://www.vintagecomputing.com/index.php/archives/3292/the-pc-is-dead-its-time-to-make-computing-personal-again


Block AI scrapers with Anubis

Tags: tech, ai, machine-learning, gpt

There was a time when scraping bots were well behaved… Now apparently we have to add software to actively defend against AI scrapers.

https://xeiaso.net/blog/2025/anubis/


Introducing Versara

Tags: tech, ai, machine-learning, gpt

Yet another attempt at protecting content from AI scrapers. A very different approach for this one.

https://versara.ai/about


PostgreSQL Anonymizer

Tags: tech, databases, postgresql, data, anonymity, gdpr

A nice extension for Postgres allowing to ease the protection of personal information.

https://postgresql-anonymizer.readthedocs.io/en/stable/


Oh Shit, Git!?!

Tags: tech, version-control, git

Stuck in a state you don’t like with Git? Here is a list of funny recipes.

https://ohshitgit.com/


Git Trailers | Alchemists

Tags: tech, version-control, git, tools

This article is feature packed, lots of great ideas to exploit git trailers. This can help automate some workflows easily.

https://alchemists.io/articles/git_trailers


Interrupting scripts without tracebacks

Tags: tech, programming, python

Nice trick for cleaner interruptible python scripts indeed.

https://mathspp.com/blog/til/interrupting-scripts-without-tracebacks


isd (interactive systemd) — a better way to work with systemd units

Tags: tech, systemd, tools

Looks like a really nice tool to work with systemd services. It also integrates with my trusty lnav for the journal handling. I’ll definitely give it a try going forward.

https://isd-project.github.io/isd/


Building a tiny Linux from scratch

Tags: tech, linux, system, minimalism

Nice experiment in minimalism. It’s nice to see we can still build tiny systems like that.

https://blinry.org/tiny-linux/


C stdlib isn’t threadsafe and even safe Rust didn’t save us

Tags: tech, system, c, rust, safety, multithreading

A harsh reminder that getenv is not thread safe…

https://www.edgedb.com/blog/c-stdlib-isn-t-threadsafe-and-even-safe-rust-didn-t-save-us


Prototyping in Rust

Tags: tech, programming, rust

A bit long and a bit too much framed in a “vs Python” fashion for my taste. That said it contains good advice on how to prototype or start simple with Rust. It’s aligned with some of the advice I give as well. People tend to turn to low level details too quickly forcing themselves into a corner. There are better ways to handle it.

https://corrode.dev/blog/prototyping/


How I think about Zig and Rust

Tags: tech, rust, zig, system

Interesting article. There’s clearly space for both languages indeed. They’ll end up having each their own ecological niches, probably with some overlap.

https://lewiscampbell.tech/blog/250117.html


Type Inference in Rust and C++

Tags: tech, type-systems, rust, c++

Very nice explorations of the different behaviours type systems can have around inference.

https://herecomesthemoon.net/2025/01/type-inference-in-rust-and-cpp/


The Essence of Successful Abstractions

Tags: tech, complexity, type-systems

Nice musing on how a type system can be a way to tame complexity or at least isolate it explicitly in one place.

https://v5.chriskrycho.com/journal/essence-of-successful-abstractions/


Generating an infinite world with the Wave Function Collapse algorithm

Tags: tech, 3d, mathematics

Really cool procedural environment generation.

https://marian42.de/article/infinite-wfc/


Issues with Color Spaces and Perceptual Brightness — John Austin

Tags: tech, colors, vision

Color perception keeps being a fascinating and difficult topic.

https://johnaustin.io/articles/2025/issues-with-cielab-and-perceptual-brightness


Moving on from React, a Year Later

Tags: tech, web, frontend, react, backend, performance, complexity

It becomes clear that there are more and more reasons to move back to simpler times regarding the handling of web frontends.

https://kellysutton.com/2025/01/18/moving-on-from-react-a-year-later.html


Additional Testing After Refactoring - by Kent Beck

Tags: tech, tdd, tests

Pointing out an important dilemma indeed. Which tests to keep over time? What to do with redundancies?

https://tidyfirst.substack.com/p/additional-testing-after-refactoring


The Documentation System

Tags: tech, documentation, writing

Interesting proposal of structure for technical documentation.

https://docs.divio.com/documentation-system/


Tags: tech, project-management, risk

Or why it can be dangerous to label medium the high likelihood low impact risks and the low likelihood high impact ones. One category is to be completely avoided while the other brings learning opportunities.

https://jacobian.org/2025/jan/17/two-flavors-of-medium-risk/


Master the Art of the Product Manager ‘No’

Tags: tech, product-management, funny

Nice tricks to say no when people push to get something in a product. 😉

https://letsnotdothat.com/


Training or Learning? - Congruent Change

Tags: learning, teaching

OK, this is advertisement to their PSL workshops. That being said the quote from Hoverstadt is important, this and the feedback of one of their attendees: “I can honestly say I learned at least as much from other participants”. This is exactly what I’m trying to foster when I design learning experiences.

https://www.congruentchange.com/training-or-learning/



Bye for now!

Qt for MCUs 2.9.1 has been released and is available for download.  This patch release provides bug fixes and other improvements while maintaining source compatibility with Qt for MCUs 2.9 (see Qt for MCUs 2.9 blog post). This release does not add any new functionality.

Thursday, 23 January 2025

We have released Qt AI Assistant to help you in cross-platform software development now. The Qt AI Assistant is an AI-powered development assistant that runs in Qt Creator and works with multiple Large Language Models (LLM). This blog post gives a little "behind-the-scenes" view of its making.

Qt in 2024
2024 was another outstanding year for Qt, filled with exciting milestones and achievements! Highlights of the year include the Qt 6.7 and Qt 6.8 releases, Qt Creator 15 release, and the Qt Contributor Summit.

The third International Calligraphy Festival of Kerala (ICFK) took place in October 2024, and I was invited to run a session. I had the fortune to see many exemplary calligraphers all over the world come together and demonstrate their work over three days of the festival.

Renowned Malayalam calligrapher Narayana Bhattathiri organizes the conference every year, and it was amazing to witness that many of the speakers and calligraphers were sharing the responsibilities and taking active role in the organization and execution of the sessions. The audience and speaker participation and interactions were warmly welcoming. The demographics was very distributed — students, professionals, calligraphers; and of all ages and genders.

An epiphany

During the session by Prof. G.V. Sreekumar when he asked the participants to write the word ‘സൂര്യൻ’ (the Sun); I took a survey of the writings. What I found was that the older generation all wrote the word in traditional Malayalam orthography; and a large number of younger generation also wrote it in traditional orthography. The latter group were not taught in schools to read or write in traditional script (the text books are all in broken/reformed script). Intrigued how they were familiarized with the traditional orthography, I had questioned how they knew to write in this fashion. The answers were categorized into:

  1. They saw their parents write in traditional orthography.
  2. They saw their grandparents write in traditional orthography (but their parents write in reformed script).
  3. Most strikingly, some youngsters were sure this was the ‘correct’ way of writing and yet they could not explain how or from where they learnt it.

The response from the third category is very interesting: because they learnt the script ‘organically’ and it is imbibed in their identity — which is what the definition of ‘culture’ is. The revelation is that; the script belongs to its people and no matter what the government decrees about (ref: Kerala govt orders about script reform in 1971 and 2022).

The session

Together with type designer Athul Jayaraman, I had a joint session on typography. Athul focused more on the type design and I had elaborated more on Malayalam script (traditional orthography), and font engineering & techniques.

The Mathrubhumi news team also interviewed both of us and published a two-part series of the interview on their new site:

The experience

Of the many conferences I have been to, ICFK 2024 was one the best un-conferences in my experience. I met a lot of exemplary, yet humble & approachable, calligraphers (some of them gave me their autographed booklets, thank you!), learnt a lot and enjoyed thoroughly.