Skip to content

Thursday, 5 December 2024

Lots of KDE hacking these days, and that comes with compiling large amounts of code. Right now, I am installing, well building from source Plasma Mobile on an “old” laptop so I can test some patches natively on a touchscreen device. The machine has just two cores (hyperthreaded), so builds take rather long, especially if you build Qt and all that 80+ packages that are needed for a fully working Plasma system.
One of the tools that do an incredible job while being super flexible to use is icecream. Icecream (or “icecc“) allows you to distribute your build over multiple machines, it basically ships compile-jobs with all that’s needed to other machines on a local network, meaning you can parallelize your builds.

Icecream has this nice visualization tool, called icecream-monitor which you can stare at while your builds are running (in case you don’t have anyone handy for a sword-fight). In the screenshot you can see manta, the underpowered laptop doing a 32 parallel job build over the network. miro is my heavy workstation, 8 cores and 128GB of RAM, it duely gets the bulk of the work assigned, frame is my (Framework) laptop, which is also quite beefy, gets something to do too, but not taxed as heavily as that build monster in my basement office.
Icecream can be used with most environments that have you run your compiler locally. Different distros are no problem! Just a matching CPU architecture is needed. Icecream does its job by providing its own g++ and gcc binaries, which will relay the build jobs transparently to either your local machine or across the network. So you basically install it, adjust your PATH variable to make sure icecc’s g++ is found before your system’s compiler and start your build. Other machines you want to join in for the fun just need to run icecc-scheduler and they will be automatically discovered as build slaves on your network. If you want to further speed up builds, it works with ccache as well.

Please note that you only want to do this in a trusted environment, we’re shipping executables around the network without authorization!

(originally titled “On Dead Trees”)

There’s features that you know are really important to some of our users but you frankly don’t really care for them much yourself. Printing is one such example. Recently, I actually had to print lots of paperwork, so I had a reason to fix some of my more pressing issues with our Print Manager.

Print manager popup showing a list of printers, one of them is highlighted and expanded to reveal a list of print jobs. Mouse hovers the “Cancel” button of the test page job
Print jobs right at your finger tip

The biggest regression from the Plasma 4 days, when we moved from individual System Tray popups to a unified square view, was that Print Manager had to give up its two pane layout that showed the print queue directly in the popup. In order to view and cancel print jobs, you now had to select the printer and open its print queue window, and close it again after you’re done.

Unfortunately, with printer management, there’s really two opposing use cases: a home computer with maybe a couple of printers, and the office use case of hundreds of remote printers across several buildings. Picking one side usually leaves the other one worse off. However, I did not want to spent too much time on this, so in order to fix my workflow, I simply added the list of print jobs in the expanded view. I then added a busy indicator to a printer when it’s printing to make it easier to find in the list.

CUPS error messages have never been very nice and with all that “driver-less” stuff the user experience seems to have become worse, spitting technical gibberish like “cfFilterChain: Ghost script (PID 123456)” at the user. While printing probably works better now, the overall feature set has definitely regressed for me. In order to accommodate status messages better, Print Manager now shows up to three lines of text, which is particularly important in case of a printer or network error.

printer icon and laser printer icon
Just pretend the pile of paper at the top of the laser printer is actually the printed pages

Another nice little touch from Plasma 4 was a dedicated laser printer icon. At home I have a black and white laser printer for printing documents and a color inkjet for printing pictures. It’s really nice being able to tell them apart at a glance. Therefore, I added a laser printer icon to Breeze as well. However, when I investigated how it worked, I found it just assumes every black and white printer to be a laser printer. Fair enough. You can ask CUPS for the “marker type”, e.g. toner or ink, and I hoped that I could use it to determine the printer type more accurately. Alas, since updating to the Ubuntu 24.04 base, none of my printers show ink levels anymore, not even after installing the official vendor drivers. Either way, ink status has been hit or miss for me under Linux for as long as I can remember, sometimes randomly working when talking to the printer over the network but not on the computer it was plugged into via USB and so on.

Next, while tinkering with printer settings, I noticed the nice little search box we have in our settings dialogs nowadays. Trying to find a certain option, I was surprised it didn’t highlight it, even though I clearly typed the exact name on the label. You see, controls in Qt can have “mnemonics” or “accelerators”, this is the underlined letter you typically see on a button that tells you what Alt+key to use to trigger it. The letter is prefixed with an ampersand (&) in the string, so “Pap&er size” shows as “Paper size” and will trigger on pressing Alt+E. KDE applications automatically assign a free accelerators to most widgets unless explicitly provided through the ampersand notation. The settings search did not account for this and subsequently failed to find it.

Leaving the subject of printers for now, I made a few minor improvements regarding batteries. One of my earliest contributions to Plasma’s power management system over ten years ago was a notification when a peripheral device, such as mouse or keyboard, runs low on battery. While the notification showed a dedicated icon for headsets (i.e. headphones with a microphone) it did not provide one for regular headphones, and neither did battery monitor, but it was an easy fix.

Notification from Power Management: The battery in “My Headphones” is running low, and the device may turn off at any time. Please recharge or replace the battery.
Unlike a mouse or keyboard, it’s probably not as bad that it may turn off at any time

Additionally, when switching output devices, a brief on screen display is shown. In case of Bluetooth devices, battery status is included alongside the device name, to quickly see when the headphones you just connected are almost out of juice. When I switched to PipeWire this stopped working, no battery percentage was shown. I didn’t fully understand how it works but with PulseAudio it probably has exclusive access to the Bluetooth device and is the one that has to read the battery information and provide it to others as audio device property. With PipeWire, I guess things are different, and I just get to read battery information over the regular BlueZ battery interface, so that’s what Plasma will consult before showing the device popup.

Finally, the Energy Information page now displays the number of charge cycles your laptop battery has experienced so far in addition to the capacity estimation (“battery health”). The ability to query this information was added to Solid, KDE’s Hardware Abstraction Framework, and is supported by all of its backends. My trusty ThinkPad has over 700 charge cycles now and still reports 77% capacity left. I was still quite happy with its battery life during this year’s Akademy – admittedly I didn’t compile much during talks and had the screen brightness very low.

If you like what you saw and want to support the KDE Community and enable the good people behind it to create the best software possible, please consider donating to our Year End Fundraiser! KDE is funded mainly by you: our friends, users, and supporters. Thanks to your donations, we can deliver the best free and open software that respects your privacy and gives you control over your devices and digital life.

Support Good People

KStars v3.7.4 is released on 2024.12.05 for Windows, MacOS & Linux. It's a bi-monthly bug-fix release with a couple of exciting features.

Imaging Planner

Hy Murveit added a brand new Imaging Planner in KStars to facilitate imaging.

The Imaging Planner tool helps users choose which objects to image. Users can download catalogs of recommended objects, or possibly create and share their own catalogs. The tool computes when the objects in a read-in catalog may be imaged on the selected night given constraints such as minimum altitude, terrain and moon separation.

It can sort the objects along several different dimensions including the number of hours an object may be imaged tonight (given the users geography, constraints and possibly artificial horizon), its peak altitude, distance from the moon, constellation, name and type. Objects can also be filtered out for several reasons (e.g. type of object, whether it was previously imaged, keywords the user has added, whether the object has been selected, user not interested, etc). 

This tool helps users research the objects by showing small images of the objects, showing the objects' sky locations on the skymap, and by providing links to follow to internet sites with more information and images. It allows users to attach notes and links to objects, and select certain of them for further consideration. This tool can be used in conjunction with the Ekos imager or any other imaging tool. It does not currently directly interact with the actual imager; it only helps the user decide what to image.

Simbad Integration with FITSViewer

John Evans added a new, experimental feature to the FITSViewer that allows the user to dynamically query the SIMBAD astronomical database and highlight the results on the image in the FITSViewer. The user draws a circle on the image and the objects within that circle are then displayed in a table and on the image.

It is possible to filter by object type and click through to the Simbad / CDS or NED websites for more information about the objects.


This is an interesting tool to see what is in your image, be it a subframe whilst you are imaging or a completed image that you have reloaded into the FITSViewer.

In order to use the feature you will need an internet connection to access the online Simbad database and an image must have WCS enabled within the FITSViewer. For the most accurate results, plate solve the image with the build-in FITSViewer plate solver. The feature is controlled by a toggle in the FITSViewer options.

New Focus Measures

John Evans introduced a new contrast based focusing algorithm suited for solar and planetary imaging. 

4 new focus measures have been added to the Focus Module to complement the existing measures of HFR, FWHM, etc.
·      StdDev. This is similar conceptually to the Fourier Algorithm but is simpler. It uses an algorithm based on the standard deviation of the pixels in the image as the measure of focus. It can be used on star fields.
·      Contrast based measures use algorithms that can be found in other areas of image processing and uses the contrast of texture in the image in various way as a measure of focus. The following measures are available:

o   Sobel
o   Laplassian
o   Canny

These measures require some form of extended object in the image so will not work on star fields. They are intended for Solar, Lunar and planetary focusing.


 

These algorithms can be used on the whole image or with the existing mask features, or with a user-defined region-of-interest that is used in single-star mode for star based focusing measures.
 
This new feature requires the openCV library to be installed (a standard installation is fine). This library is not installed by default with Kstars so anyone wishing to use these features will need to first install openCV and then rebuild Kstars on their system. It will not be available with pre-built executables.

Wednesday, 4 December 2024

I am still here. Sadly while I battle this insane infection from my broken arm I got back in July, the hackers got my blog. I am slowly building it back up. Further bad news is I have more surgeries, first one tomorrow. Furthering my current struggles I cannot start my job search due to hospitalization and recovery. Please consider a donation. https://gofund.me/6e99345d

On the open source work front, I am still working on stuff, mostly snaps ( Apps 24.08.3 released )

Thank you everyone that voted me into the Ubuntu Community Council!

I am trying to stay positive, but it seems I can’t catch a break. I will have my computer in the hospital and will work on what I can. Have a blessed day and see you soon.

Scarlett

Monday, 2 December 2024

I just looked at our GitLab page today and thought: Amazing!

Kate - 1500 accepted merge requests

I thank you all for the great contributions of the last years.

Let's hope we see even more contributions in the future.

If you are unsure how to contribute, just take a look at the existing merged stuff as reference.

The upcoming 24.12 release will be a good one, we did polish Kate a lot.

I know not all is well on the world, but I still hope you have a good end of the year and an even better start in the new one!

A few months ago, I blogged about a change for Plasma 6.2 to show a once-a-year system notification asking for a donation, starting on December 1st. Various reasons and justifications were given in that post, so I won’t repeat them here. Instead, since December 1st was yesterday in most of the world, it’s time to check in on the day 1 experience! So let’s get right into it:

Did it work?

Well, I woke up to an email inbox that looked like this:

And by the end of the day, the graph on https://kde.org/community/donations/previousdonations (which by the way only counts direct Paypal donations and still doesn’t include those made using Donorbox or direct bank transfer) wound up looking like this:

Yes that’s right, KDE e.V. received double the prior two months’ Paypal donations in a single day!!!

Do people hate us now?

So far, indications point to no! I scoured https://www.reddit.com/r/kde and https://discuss.kde.org all day yesterday and literally only found one non-positive comment about it, dwarfed by a large volume of mildly to highly positive ones. I wasn’t looking at Mastodon or other social media, but a colleague reported something similar.

In addition, a large number of the donations themselves were accompanied by positive messages from the donors. Here are some of my favorites:

KDE is more than just software, it’s a family. Least I can donate, but it’s coming from someone that pirates every other thing or uses the free alternative.

Thanks for all your incredible work over the years.

KDE Plasma is a big part of why I have grown to love Linux as my daily driver 💙

Thanks for all you have done for the linux desktop community

Thanks for Plasma! Couldn’t work without it! (Visually impaired user).

Thanks for your efforts to make the world a little more independent from Big Tech

Love the work, KDE is my daily driver and I’m glad I can help 🙂

Just got the Notification to donate in KDE and after thinking about it for a bit decided to donate for the first time, since I’ve been using Linux and specifically KDE for almost a year now. Thanks for your hard work!

Thanks for all of the work and effort put into making KDE the best DE ever!

So, yeah. On the contrary, it feels like our users really, really love us!

Is this repeatable?

It’s too early to say at this point, but I hope so. It will be interesting to see how fast the donations drop off. Will it be relatively fast because everyone who was going to donate after seeing to the notification already saw it yesterday? Or will the drop-off take a while because there are more notification-based potential donors who didn’t turn on their Plasma 6.2-using computer yet, or opened the donations page in a browser tab to action later? We don’t know; we’ll have to wait and see.

However it’s also worth mentioning that these donations are coming entirely from people using distros that include Plasma 6.2. Right now that’s pretty much limited to fast-paced distros like Arch, Fedora KDE, KDE Neon, OpenSUSE Tumbleweed, and their derivatives. Notably, it excludes traditional heavy hitters like Kubuntu and Debian. So there are reasons to expect the donation notification to reach even more eyeballs in 2025 than it has this year.

Now that you’re rich are you going to buy a bunch of leopard-print Porsche steering wheel covers and other KDE e.V. board junkets?

No board junkets. 🙂 It’s too early to make a projection based on the performance of single day, and especially if the donations drop off quickly, this isn’t “Thunderbird money” yet. But it does look quite possible that all these donations may push KDE e.V. into ending up with a balanced budget for the 2024 financial year. That would be pretty fantastic, as we weren’t predicting a balanced budget until 2025 or 2026, instead originally expecting a deficit of over €50k in 2024. And that was already an improvement over the 110k deficit in 2023.

Balancing the budget early is huge, and opens up opportunities. As you may know, German nonprofits like KDE e.V. are required to avoid stockpiling money (hence the intentional deficits), so moving into the realm of positive cashflow means we’ll need to increase our expenditures. Thankfully, KDE e.V. has become very good at spending money over the past few years, largely by expanding our hiring on personnel in technical roles: basically sponsoring community members to improve our products directly.

The easiest way to spend more money is to simply lean into that harder: hire another person, sponsor another project, stuff like that — pretty much what I mentioned in the original post. More money means more tech work financed by KDE itself, directly increasing our institutional ability to control our own destiny. It’s pretty great stuff if you ask me. But again, this is a collective board decision, not up to me alone. And if you disagree with me that this is the right use for KDE’s money, that’s fine too, and I’ll mention that I’m up for re-election on the board next year, so please do feel free to run or vote against me if you’re a KDE e.V. member! The organization works best with a board that reflects its membership’s preferences. I have zero desire to occupy that seat if I’m not representing people properly.


Anyway, it works. It appears to really work. My conclusion is that KDE has built up enough goodwill that our user community loves and trusts us, which made this outpouring of financial support possible. It’s humbling and kind of overwhelming. But it all strengthens my conviction that KDE is pointing in the right direction and amounts to a strong positive force for humanity!

Want to help out? In addition to donating your money which is what we’ve been talking about, an arguably more impactful approach is to donate your time directly, bypassing any institutional middleman that buys time with money! It’s not hard to get started, and there are loads of resources and mentorship opportunities. So help make the world a better place through KDE today!

Sunday, 1 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.

This week, we are continuing to polish our applications for the KDE Gear 24.12.0 release, but already starting the work for the 25.04 release happening next year. We also made the first release of OptiImage, an image size optimizer.

Meanwhile, as part of the 2024 end-of-year fundraiser, you can "Adopt an App" in a symbolic effort to support your favorite KDE app. This week, we are particularly grateful to Yogesh Girikumar, Luca Weiss and 1peter10 for supporting Itinerary; Tobias Junghans and Curtis for Konsole; Daniel Bagge and Xavier Guillot for Filelight; F., Christian Terboven, Kevin Krammer and Sean M. for the Kontact suite; Tanguy Fardet, dabe, lengau and Joshua Strobl for NeoChat; Pablo Rauzy for KWrite; PJ. for LabPlot; Dominik Barth for Kasts; Kevin Krammer for Ruqola; Florent Tassy, elbekai and retrokestrel for Gwenview; MathiusD and Dadanaut for Elisa, Andreas Kilgus and @rph.space for Konqueror; trainden@lemmy.blahaj.zone for KRDC; Marco Rebhan and Travis McCoy for Ark; and domportera for Krfb.

Getting back to all that's new in the KDE App scene, let's dig in!

GCompris Educational game for children

GCompris 4.3 is out and contains bug fixes and graphics improvements on multiple activities.

Read full announcement

KDE Itinerary Digital travel assistant

We redesigned the timeline of your trips and the query result pages when searching for a public transport connection to work better with a small screen while still showing all the relevant information. (Carl Schwan, 25.04.0. Link 1 and link 2)

The timeline view
The query result

Checking for updates and downloading map data now are scoped to a trip and will only query data from the internet related to the trip. (Volker Krause, 25.04.0. Link 1 and link 2)

The export buttons used in Itinerary are not blurry anymore. (Carl Schwan, 24.12.0. Link)

Add an extractor for GoOut tickets (an event platform in Poland, Czechia and Slovakia) as well as luma and the pkpasses from Flixbus.de. (David Pilarcik, 24.12.0. Link, link 2 and link 3)

Optimize querying a location by sorting the list of countries only once instead of hundreds of times. (Carl Schwan, 24.12.0. Link)

OptiImage Image optimizer to reduce the size of images

OptiImage 1.0.0 is out! This is the initial release of this image size optimizer and you can read all the details on the announcement blog post.

Karp KDE arranger for PDFs

Karp is now directly using the QPDF library instead of invoking a separate process, which improves the speed while making PDF operation more reliable. (Tomasz Bojczuk. Link)

Kate Advanced text editor

Make it again possible to scroll, select text and click on links inside documentation tooltips in Kate. (Leia uwu, 24.12.0. Link) Leia also improved the tooltip positioning logic so that it doesn't obscure the hovered word. (Leia uwu, 25.04.0. Link)

KMail A feature-rich email application

The mail folder selection dialog now remembers which folders were collapsed and expanded between invocations.

Ruqola Rocket Chat Client

Ruqola 2.3.2 is out and includes many fixes for RocketChat 7.0!

Read full announcement

Spectacle Take screenshots and recordings

On Wayland, the "Window Under Cursor" mode is renamed to "Select Window" as you need to select the window. (Noah Davis, 25.04.0. Link)

Tokodon Browse the Fediverse

Better icon for Android, which is also adaptable depending on your theme. (Alois Spitzbart, 24.12. Link)

Streaming timeline events and notifications now work for servers using GoToSocial. (snow flurry, 24.12. Link)

Slightly improved the performance of the timeline, with particular focus on the media. (Joshua Goins, 24.12. Link)

In the status composer, user info is now shown - useful if you post from multiple accounts. Also, the look of the text box has been updated. (Joshua Goins, 24.12. Link)

Added the ability to configure your notification policy. This allows you to reject or allow notifications e.g. for new accounts. (Joshua Goins, 25.03. Link)

Improved the appearance of the search page on desktop. (Joshua Goins, 24.12. Link)

Added preliminary support for Iceshrimp.NET instances. (Joshua Goins, 24.12. Link)

Added an error log in the UI to keep track of network errors. (Joshua Goins, 25.03. Link)

Kirigami Addons

Kirigami Addons 1.6.0. is out! You can read the full announcement on my (Carl's) blog. This week we also made the following changes:

Speedup loading Kirigami pages using FormComboboxDelegate, this is particularly noticable for the country combobox in Itinerary, but affects more applications. (Carl Schwan, Kirigami Addons 1.6.0. Link)

Add new RadioSelector and FormRadioSelectorDelegate components to Kirigami Addons. On the screenshot below you can see how they're used in Itinerary. (Mathis Brüchert, Kirigami Addons 1.6.0. 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.

Tracking library dependencies work in Debian to resolve from symbols usage to a library and add this to the list of dependencies. That is working for years now. The KDE community nowadays create more and more QML based applications. Unfortunately QML is a interpreted language, this means missing QML dependencies will only be an issue at runtime.

To fix this I created dh_qmldeps, that searches for QML dependencies at build time and will fail if it can't resolve the QML dependency.

Me didn't create an own QML interpreter, just using qmlimportscanner behind the scenes and process the output further to resolve the QML modules to Debian packages.

The workflow is like follows:

The package compiles normally and split to the binary packages. Than dh_qmldeps scans through the package content to find QML content ( .qml files, or qmldirfor QML modules). All founded files will be scanned by qmlimportscanner, the output is a list of depended QML modules. As QML modules have a standardized file path, we can ask the Debian system, which packages ship this file path. We end up with a list of Debian packages in the variable ${qml6:Depends}. This variable can be attached to the list of dependencies of the scanned package. A maintainer can also lower some dependencies to Recommends or Suggest, if needed.

You can find the source code on salsa and usage documentation you can find on https://qt-kde-team.pages.debian.net/dh_qmldeps.html.

The last weeks I now enabled dh_qmldeps for newly every package, that creates a QML6 module package. So the first bugs are solved and it should be usable for more packages.

By scanning with qmlimportscanner trough all code, I found several non-existing QML modules:

  • import QtQuick3DPrivate qt6-multimedia - no Private QML module QTBUG-131753.
  • import QtQuickPrivate qt6-graphs - no Private QML module QTBUG-131754.
  • import QtQuickTimeline qt6-quicktimeline - the correct QML name is QtQuick.Timeline QTBUG-131755.
  • import QtQuickControls2 qt6-webengine - looks like a porting bug as the QML6 modules name is QtQuick.Controls QTBUG-131756.
  • import QtGraphicalEffects kquickimageeditor - the correct name is for QML6 is qt5compat.graphicaleffects, properly as it is an example nobody checks it kquickimageeditor!7.

YEAH - the first milestone is reached. We are able to simply handle QML modules.

But QML applications there is still room for improvement. In apps the QML files are inside the executable. Additionally applications create internal QML modules, that are shipped directly in the same executable. I still search for a good way to analyse an executable to get a list of internal QML modules and a list of included QML files. Any ideas are welcomed :)

As workaround dh_qmldeps scans currently all QML files inside the application source code.

Saturday, 30 November 2024

The Fedora KDE SIG is pleased to announce that KDE Gear 24.12 RC (24.11.90) is available on Fedora 41 via our @kdesig/kde-beta COPR repository

Enjoy!

Kirigami Addons is a collection of additional components for Kirigami applications. This release brings mostly improvements to the FormCard module.

AboutPage

The about page provided by Kirigami Addons received many improvements. Joshua added icons to all the buttons.

I worked on the component section, which now contains more information about the default components as well as the underlying platform and now has a button to copy all this information to the clipboard. This is super helpful, when writing a bug report. There were also some small bug fixes with, for example, the license dialog being correctly sized.

 

RadioSelector

A new component is the RadioSelector, which is a simple component that allows one to choose an option between two or more choices in a horizontal layout. This is not a new component as it has already been used in Itinerary and Marknote for a long time.

There is also a FormCard version of this, called FormRadioSelectorDelegate.

 

FormPlaceholderMessageDelegate

Another new component is FormPlaceholderMessageDelegate, which is basically a Kirigami.PlaceholderMessage, but instead of putting it in a ListView, this one is to be put inside a FormCard.

FormPlaceholderMessageDelegate for the health certificate
FormPlaceholderMessageDelegate for the health certificate

Other

Volker fixed the Android integration of the date picker. He also added support for static builds (required for iOS and probably hopeful for other platforms).

Claudio fixed various issues with the DatePicker.

Joshua made the caption used in AlbumMaximizeComponent selectable with the mouse. He also fixed the separator for the IndicatorItemDelegate which only appeared after the first item.

I added icon support to FormSwitchDelegate, which is similar to what we already have in FormRadioDelegate and FormCheckDelegate.

Packager Section

Kirigami Addons 1.6.0 was tagged but the tarball are not yet available. I will update this post once it is available.