Skip to content

Sunday, 29 December 2024

Screen magnification is an accessibility feature that enlarges the screen to make text, images, and other user interface components easier to see or read. It is not something that requires constant developer attention, however, in Plasma 6.3, the zoom plugin received some improvements that I’d like to go over quickly.

Pixel grid

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

Arguably, it will be too hard to read text if the screen is “too” zoomed in. There are several ways how this case can be handled. For example, the magnification factor can be capped (e.g. to x8 or x10), or do nothing and just display blurry upscaled screen contents… or display something else.

With the old behavior, the zoom plugin used not to do anything special when the magnification factor reaches a high value, but with the new behavior, it is going to display the individual pixels on the screen. This can be very useful to developers, designers, etc.

System settings

In addition to the new pixel grid mode, the system settings for the zoom plugin received minor polishing to look more consistent with other config modules.

Future improvements

Keyboard shortcuts are not the only way how the zoom plugin can be triggered. For example, it can be also triggered by pressing Meta and Control keys and scrolling the mouse wheel to zoom. However, it is not exposed anywhere in the user interface and some people may prefer zooming with just the Meta key pressed. In order to address the discoverability issue of the mouse wheel gesture and allow using a different combination of modifier keys, there is already a patch to add the corresponding system setting, but it’s 6.4 material. It would be also nice to move screen magnifier settings from the desktop effects config module to the accessibility config module.

Last but not least, the zoom effect currently uses the bi-linear magnification filter, which produces okay-ish visual results, but it’s worth looking for alternative upscaling algorithms that handle edges better so zoomed in text looks less blurry.

Hello,

I need your help. I’ve created a first version of Skrooge that can be built on KF6 and Qt6 (Its temporary number version is 2.33.8).

I use it daily for managing my own accounts. However, before releasing an official version, I’d like some of you to test it and provide feedback by reporting any issues you encounter.

I’m counting on you! To get started, check out the download section and the README.md.

Thanks in advance!

Friday, 27 December 2024

Bundle Creator

After almost a year, I finally found some time to dive back into Krita. I stumbled upon the Memileo Impasto Brushes bundle, which mimics the texture and thickness of real paint—perfect for adding depth and dimension. Inspired to try them out, I created this quick one-hour painting.

Let’s go for last web review of 2024!


This is Your Brain On Surveillance: New Study Reveals How Awareness of Being Watched Alters Our Brains - The Debrief

Tags: tech, surveillance, psychology, cognition

It looks like it’s not only impacting negatively our privacy. The linked paper (good to read as well) hints at negative impacts on mental health as well. Still needs to be fully validated but it doesn’t look good already.

https://thedebrief.org/this-is-your-brain-on-surveillance-new-study-reveals-how-awareness-of-being-watched-alters-our-brains/


The era of open voice assistants has arrived - Home Assistant

Tags: tech, smarthome, foss

Nice move from the home assistant people. Such open and privacy respecting hardware is needed.

https://www.home-assistant.io/blog/2024/12/19/voice-preview-edition-the-era-of-open-voice/


The Ghosts in the Machine, by Liz Pelly

Tags: tech, music, copyright

You love artists and their music? You probably should get off Spotify then… because they’re clearly at war to reduce even further how much they pay artists. Clearly it’s not about discovering artists anymore, it’s about pumping cheap stock music to increase their margin. Also its clear the remaining musicians trapped in that system will be automated away soon… you don’t need humans to create soulless music.

https://harpers.org/archive/2025/01/the-ghosts-in-the-machine-liz-pelly-spotify-musicians/


My colleague Julius

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

OK, this is a nice parabole. I admit I enjoyed it.

https://ploum.net/2024-12-23-julius-en.html


Can AI do maths yet? Thoughts from a mathematician

Tags: tech, ai, machine-learning, gpt, mathematics

Looks like we’re still a long way from mathematical accuracy with the current generation of models. It made progress of course.

https://xenaproject.wordpress.com/2024/12/22/can-ai-do-maths-yet-thoughts-from-a-mathematician/


Lua is so underrated

Tags: tech, programming, language, lua

It’s a not niche indeed but has its place in some applications.

https://nflatrea.bearblog.dev/lua-is-so-underrated/


Simpler and faster parsing code with std::views::split – Daniel Lemire’s blog

Tags: tech, c++, performance

A good reason to use more modern C++20 APIs for parsing code.

https://lemire.me/blog/2024/12/21/simpler-and-faster-parsing-code-with-stdviewssplit/


A Simple ELF

Tags: tech, unix, elf, system

Nice little introduction to the ELF format.

https://4zm.org/2024/12/25/a-simple-elf.html


Electronics Test Gear on the Cheap

Tags: tech, electronics

Price of such gear definitely went down indeed.

https://bigdanzblog.wordpress.com/2024/12/25/electronics-test-gear-on-the-cheap/


Server-Sent Events (SSE) Are Underrated

Tags: tech, web, http

This is definitely an overlooked alternative to websockets. It doesn’t apply everywhere of course but when it does it’s a good pick.

https://igorstechnoclub.com/server-sent-events-sse-are-underrated/


On Long Term Software Development - Bert Hubert’s writings

Tags: tech, engineering, supply-chain, complexity, dependencies, maintenance

There is some good advice in this piece. If you want to maintain something for a long time, some aspects need to be thought out from the beginning.

https://berthub.eu/articles/posts/on-long-term-software-development/


Problem Driven Development | Stay SaaSy

Tags: tech, project-management, product-management, engineering, quality

Struggling with making your first technical roadmap? Driving it from measurable problems is a good first step.

https://staysaasy.com/engineering/2024/12/17/problem-driven-development.html


The number pi has an evil twin… - Mathstodon

Tags: mathematics

Interesting thread. I didn’t know about this family of constants. Fun stuff.

https://mathstodon.xyz/@johncarlosbaez/113703444230936435



Bye for now!

This blog post will guide you through the entire process of preparing your Qt for Android app with CMake for publishing on the Play Store. By the end, you’ll be ready to distribute your Qt app to millions of Android users, buckle up! 

Like every year I take a couple of days off at the end of the year to wind down and spent time with the family. The year has brought many major changes, both to KDE and to me personally: We did the KDE MegaRelease 6, the next major update to KDE’s software suite. Plasma 6 further made Wayland the default graphical session. I also spent a lot more time in Qt itself, particularly Qt Wayland, rather than KDE code. Anyhow, between family visits and feasts there’s always some time for quality KDE hacking.

Konsole window with two tabs. Current tab is vi editor, the other tab is called “Progress Test” and shows a little progress bar of around 70% on its tab. The same progress is also shown in Konsole’s task bar button
That’s right: Monitoring task progress in Konsole while busy doing something else

I’ve always been a huge fan of Windows 7’s task bar with its progress reporting and Jump Lists. Nine years ago (wow, really?!) I added support for the Unity Launcher API to Plasma’s task bar in order to display download and copy progress. The other day I was browsing systemd changelog when I stumbled upon:

The various components that display progress bars […], will
now also issue the ANSI sequences for progress reports that Windows Terminal understands. Most Linux terminals currently do not support this sequence (and ignore it), but hopefully this will change one day.

I hope so, too! Guess whose Konsole understands ConEmu-specific OSC (Operating System Command), the stuff systemd uses, for progress reporting now? There’s still a few quirks to be worked out since Konsole allows you to have multiple split views within the same tab. Nevertheless, we’ve got plenty of time until the next KDE Gear release in April 2025 to finalize it. Moreover, I asked kde-builder (KDE’s meta build system and spiritual successor to kdesrc-build) to support it, so you could monitor KDE compile progress at a glance.

I’m a scratch-your-own-itch type of guy. When I finally got fed up with Element (a Matrix chat client) in a browser window eating my CPU, I gave our own NeoChat application a try. The first thing I added was a “Copy Link Address” context menu when hovering a link in addition to fixing the missing “Edit” entry. Next, I had the window title include the chat room name since that’s what I am usually looking for in my task bar. Finally, Kirigami’s Avatar component can now load its image asynchronously which should speed up scrolling through the timeline and lists of rooms and users.

Printer settings window, showing a printer icon, its name, various properties, a "Print Test Page button", and a list of ink levels, with Cyan, Yellow, Magenta, Black, and a correspondingly colored progress bar next to each one
Ink marker colors shown again in redesigned Printer Manager

Speaking of Kirigami, Qt 6.8 added an animateClick function to buttons. It briefly flashes and then triggers it. This is now used throughout Kirigami in keyboard shortcut handling, bringing it in line with the Qt Widget world. Qt 6, too, has a concept of “accent color” for a few releases. Plasma’s accent color system predates it, though, so there’s some friction between the two. While we don’t have a proper Kirigami Theme API for it yet, at least setting the highlight now also sets the accent color. With that, ink cartridge levels have the appropriate marker colors in printer settings again. Speaking of accent color, I just backported some changes we made for Frameworks 6 to Frameworks 5 to ensure that KF5 apps can interpret Breeze Icons from KF6 properly, notably fixing the black folder icons.

I hope you also got the chance to spend some time with your loved ones. If you enjoyed what the KDE Community brought you this year, please consider donating to our Year End Fundraiser or to me personally, so we can continue rocking in 2025!

Support Good People

Discuss this post on KDE Discuss.

Sunday, 22 December 2024

Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps.

AudioTube YouTube Music app

AudioTube now shows synchronized lyrics provided by LRCLIB. This automatically falls back to normal lyrics if synced lyrics are not available. (Kavinu Nethsara, 25.04.0. Link)

Dolphin Manage your files

Quickly renaming multiple files by switching between them with the keyboard arrow keys now correctly starts a renaming of the next file even if a sorting change moved it. (Ilia Kats, 25.04.0. Link)

Fixed a couple of regressions in the 24.12.0 release. (Akseli Lahtinen, 24.12.1. Link 1, link 2, link 3)

KDE Itinerary Digital travel assistant

Improved the touch targets of the buttons in the bottom drawer which appears on mobile. (Carl Schwan, 24.05.0. Link)

Akonadi Background service for KDE PIM apps

Improve the stability of changing tags. Now deleting a tag will properly remove it from all items. (Daniel Vrátil, 24.12.1. Link 1 and link 2)

KMail A feature-rich email application

The tooltip of your folder in KMail will now show the absolute space quota in bytes. (Fabian Vogt, 25.04.0. Link)

KMyMoney Personal finance manager based on double-entry bookkeeping

An initial port of KMyMoney for Qt6 was merged. (Ralf Habacker. Link)

Krita Digital Painting, Creative Freedom

Krita has a new plugin for fast sketching. You can find more about this on their blog post.

KTorrent BitTorrent Client

Added the support for getting IPv6 peers from peer exchange. (Jack Hill, 25.04.0. Link)

LabPlot Interactive Data Visualization and Analysis

We now show more plot types in the "Add new plot" context menu. (Alexander Senke. Link)

LabPlot has announced a new dedicated user manual page.

Okular View and annotate documents

We improved how we are displaying the signature and certificate details in the mobile version of Okular. (Carl Schwan, 25.04.0. Link)

Signature Properties
Certificate Viewer

When selecting a certificate to use when digitally signing a PDF with the GPG backend, the fingerprints are rendered more nicely. (Sune Vuorela, 25.04.0. Link)

It's now possible to choose a custom default zoom level in Okular. (Wladimir Leuschner, 25.04.0. Link)

Merkuro Mail Read and write emails

Merkuro Mail now lets you search across your emails with a full text search. (Carl Schwan, 25.04.0. Link)

Additionally, the Merkuro Mail sidebar will now remember which folders were collapsed or expanded as well as the last selected folder across application restarts. (Carl Schwan, 25.04.0. Link)

PowerPlant Keep your plants alive

We started the "KDE Review" process for PowerPlant, so expect a release in the comming weeks.

We added support for Windows and Android. (Laurent Montel, 1.0.0. Link 1, link 2 and link 3)

Ruqola Rocket Chat Client

Ruqola 2.4.0 is out. You can now mute/unmute other users, cleanup the room history and more. Read the full announcement.

Tokodon Browse the Fediverse

This week, Joshua spent some time improving Tokodon for mobile and in particular for Android. This includes performance optimization, adding missing icons and some mobile specific user experience improvements. (Joshua Goins, 25.04.0. Link 1, link 2 and link 3). A few more improvements for Android, like proper push notifications via unified push, are in the work.

Joshua also improved the draft and scheduled post features, allowing now to discard scheduled posts and drafts and showing when a draft was created. (Joshua Goins, 25.04.0. Link)

We also added a keyboard shortcut configuration page in Tokodon settings. (Joshua Goins and Carl Schwan, 25.04.0. Link 1 and link 2)

Finally, we created a new server information page with the server rules and made the existing announcements page a subpage of it. Speaking of announcements, we added support for the announcement's emoji reactions. (Joshua Goins, 25.04.0. Link)

WashiPad Minimalist Sketchnoting Application

WashiPad was ported to Kirigami instead of using its own custom QtQuick components. (Carl Schwan. Link)

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out Nate's blog about Plasma and be sure not to miss his This Week in Plasma series, where every Saturday he covers all the work being put into KDE's Plasma desktop environment.

For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors.

Get Involved

The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable.

You can help KDE by becoming an active community member and getting involved. 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. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things.

You can also help us by donating. 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 your application mentioned here, please ping us in invent or in Matrix.

In less than a week from now KDE will again be present at the 38th Chaos Communication Congress (38C3) in Hamburg, Germany.

38C3 Illegal Instructions

Chaos Communication Congress

Even bigger than FOSDEM and much wider in scope many impactful collaborations during the past couple of years can be traced back to contacts made at Congress. Be it KDE Eco, joint projects with the Open Transport community, the weather and emergency alert aggregation server or indoor routing to just name a few.

KDE Assembly

At last year’s edition, 37C3, we had a KDE assembly (think “stand” or “booth” at other events) for the first time. That not only helps people to find us, it’s also very useful anchor point for the growing KDE delegation.

This year we’ll further improve on that, by being there with even more people and by having the KDE assembly as part of the Bits & Bäume Habitat. That not only comes with some shared infrastructure like a workshop space but also puts us next to some of our friends, like OSM, FSFE and Wikimedia.

We’ll be in the foyer on floor level 1 next to the escalators (map).

More of our friends and partners have their own assemblies elsewhere as well, such as Matrix and Linux on Mobile.

A special thanks goes again to the nice people at CCC-P and WMDE who helped us get tickets!

Talks & Workshops

We’ll also have three talks by KDE people, all of them featuring collaborations beyond the classical KDE scope.

There will also be two workshops chaired by Jospeh on the latter subject:

Make sure to monitor the schedule for last-minute changes though.

See you in Hamburg!

Looking forward to many interesting discussions, if you are at 38C3 as well make sure to come by the KDE assembly!

Saturday, 21 December 2024

Lots of KDE folks are winding down for well-deserved end-of-year breaks, but that didn't stop a bunch of people from landing some awesome changes anyway! This will be a short one, and I may skip next week as many of us are going to be focusing on family time. But in the meantime, check out what we have here:

Notable UI Improvements

When applying screen settings fails due to a graphics driver issue, the relevant page in System Settings now tells you about it, instead of failing silently. (Xaver Hugl, 6.3.0. Link)

Added a new Breeze open-link icon with the typical "arrow pointing out of the corner of a square" appearance, which should start showing up in places where web URLs are opened from things that don't clearly look like blue clickable links. (Carl Schwan, Frameworks 6.10. Link)

Notable Bug Fixes

Fixed one of the most common recent Powerdevil crashes. (Jakob Petsovits, 6.2.5. Link)

Recording a specific window in Spectacle and OBS now produces a recording with the correct scale when using any screen scaling (Xaver Hugl, 6.2.5. Link)

When using a WireGuard VPN, the "Persistent keepalive" setting now works. (Adrian Thiele, 6.2.5. Link)

Implemented multiple fixes and improvements for screen brightness and dimming. (Jakob Petsovits, 6.3.0. Link 1, link 2, link 3, and link 4)

Auto-updates in Discover now work again! (Harald Sitter, 6.3.0. Link)

Vastly improved game controller joystick support in Plasma, fixing many weird and random-seeming bugs. (Arthur Kasimov, 6.3.0. Link)

For printers that report per-color ink levels, System Settings' Printers page now displays the ink level visualization in the actual ink colors again. (Kai Uwe Broulik, 6.3.0. Link)

Pager widgets on very thin floating panels are now clickable in all the places they're supposed to be clickable. (Niccolò Venerandi, 6.3.0. Link)

Wallpapers with very very special EXIF metadata can no longer generate text labels that escape from their intended boundaries on Plasma's various wallpaper chooser views. (Jonathan Riddell and Nate Graham, Frameworks 6.10. Link)

Fixed one of the most common Qt crashes affecting Plasma and KDE apps. (Fabian Kosmale, Qt 6.8.2. Link)

Other bug information of note:

Notable in Performance & Technical

Significantly reduced the CPU usage of System Monitor during the time after you open the app but before you visit to the History page. More CPU usage fixes are in the pipeline, too! (Arjen Hiemstra, 6.2.5. Link)

Plasma Browser Integration now works for the Flatpak-packaged version of Firefox. (Harald Sitter, 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 donating to our yearly fundraiser! 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, 20 December 2024

I started this blog back in 2010. Back then I used Wordpress and it worked reasonably well. In 2018 I decided to switch to a static generated site, mostly because the Wordpress blog felt slow to load and it was hassle to maintain. Back then the go-to static site generator was Jekyll, so I went with that. Lately I’ve been struggling with it though, because in order to keep all the plugins working, I needed to use older versions or Ruby, which meant I had to use Docker to build the blog locally. Overall, it felt like too much work and for the past few years I’ve been eyeing Hugo - more so since Carl and others migrated most of KDE websites to it. I mean, if it’s good enough for KDE, it’s good enough for me, right?

So this year I finally got around to do the switch. I migrated all the content from Jekyll. This time I actually went through every single post, converted it to proper Markdown, fixed formatting, images etc. It was a nice trip down the memory lane, reading all the old posts, remembering all the sprints and Akademies… I also took the opportunity to clean up the tags and categories, so that they are more consistent and useful.

Finally, I have rewritten the theme - I originally ported the template from Wordpress to Jekyll, but it was a bit of a mess, responsivity was “hacked” in via JavaScript. Web development (and my skills) has come a long way since then, so I was able to leverage more modern CSS and HTML features to make the site look the same, but be more responsive and accessible.

Comments

When I switched from Wordpress to Jekyll, I was looking for a way to preserve comments. I found Isso, which is basically a small CGI server backed with SQLite that you can run on the server and embed it into your static website through JavaScript. It could also natively import comments from Wordpress, so that’s the main reason why I went with it, I think. Isso was not perfect (although the development has picked up again in the past few years) and it kept breaking for me. I think it haven’t worked for the past few years on my blog and I just couldn’t be bothered to fix it. So, I decided to ditch it in favor of another solution…

I wanted to keep the comments for old posts by generating them as static HTML from the Isso’s SQLite database, alas the database file was empty. Looks like I lost all comments at some point in 2022. It sucks, but I guess it’s not the end of the world. Due to the nature of how Isso worked, not even the Wayback Machine was able to archive the comments, so I guess they are lost forever…

For this new blog, I decided to use Carl’s approach with embedding replies to a Mastodon. I think it’s a neat idea and it’s probably the most reliable solution for comments on a static blog (that I don’t have to pay for, host myself or deal with privacy concerns or advertising).

I have some more ideas regarding the comments system, but that’s for another post ;-) Hopefully I’ll get to blog more often now that I have a shiny new blog!

Happy Holidays 🎄

Enjoy the holidays and see you in 2025 🥳!