Feed aggregator
This weekend I am contributing to Transitous. You should too.
plasmusic-toolbar [Plasma 6 Applets]
Dolphin 24.02
Since last Dolphin version 23.08, I spent a lot of my time making sure the transition to KF6/Qt6 went smoothly for dolphin and its dependencies and plugins and thanks to many others contributions, in particular Alexander and Nicolas, this went well. The objective being no-one would notice despite much code has changed and this mostly worked out.
ChangesA few behaviors and default have changed.
Files and folders are now selected with a single-click and opened with a double-click. This will mainly affect Neon Users, since most distros already had this behavior default. You can select the single-click-open mode on the first page of systemsettings, as it concerns also Plasma, file/open dialog and other applications.
The extract here option in the menu now has the behavior of the old "extract here and detect subfolders". This makes the menu less heavy on text while making the action more accessible.
Service menus will need some adaptation unfortunately, you will need to Moving them to a new location. Usually mv ~/.local/share/kservices5/ServiceMenus/* ~/.local/share/kio/servicemenus. (Ensure to have destination directory created: mkdir -p ~/.local/share/kio/servicemenus) You can read the updated documentation.
The F10 shortcut now opens the menu, instead of creating a directory. That's an important change to improve accessibility by providing standard shortcuts. You can change it back if you want, and you can also use the the standard shortcut for this action Ctrl+Shift+N.
New featuresThe settings have been reorganized making it easier to find what you are looking for. The Interface section regroups setitings regarding the UI elements of dolphin, and the view those that influences how the main view will display your files and folders.
Shoutout to Dimosthenis Krallis for pulling it off, this wasn't an easy task especially for a not yet regular contributor.
Thanks to Carl, we got a very nice visual improvement to KDE application with breeze. I really enjoy the change to Dolphin. Looking back at dolphin in plasma5 makes it glaring.
A small new feature, I added, is you can now middle click on a file to open it in the second application associated with its type. Let's say you have an html file you normally open with your browser, but sometimes you want to edit it. Now instead of going to the open-with menu you can middle-click it. This works for scripts as well, opening them in your default editor instead of the second application assoctiated with their type.
This was inspired by the fact that folders benefit from middle-click activations to open new tabs. Making this behavior configurable might make sense, suggestions welcome, but this seems like a sensible default at least.
Felix, my fellow dolphin co-maintainer, did a bunch of ui-refinement, like the free space label in the status bar and some very nice accessibility improvements, including the F10 shorcut change that now triggers the app menu by default.
You can open now open containing folders for files in the Recent Files.
Bug fixedAkseli Lahtinen made sure to Resort directory size count after refreshing.
And in total 32 were fixed between Dolphin 23.08.05 and Dolphin 24.02.0. 480098 441070 477897 479596 478724 476670 473999 478117 477607 477288 476742 172967 452587 475547 422998 423884 440366 474951 474999 393152 473775 473377 473513 420870 472912 468445 469354 462778 417930 464594 471999 47197
New code, new bugsUnfortunately whenever you ship new code, you risk introducing new bugs, and even months of testing didn't iron them all.
One I think you could have spotted earlier, was that on X11, panels are hidden after minimizing Dolphin window. Thanks to Nicolas fella, this was swiftly fixed and will reach users in next Dolphin release. In the meantime, this is a good time to learn about the shortcuts for panels:
- F9: toggle places panel
- F11: toggle information panel
We now have a need process to build packages for Windows and Mac OS, Dolphin has not made the transition though. I am working on it to bring latest dolphin to its Window and MacOS users.
Spotlight [KWin Effects]
Completing the KDE Frameworks 6 transition
Getting the KDE Mega Relase 6 out was a key milestone in the transition to Qt 6 and KDE Frameworks 6, but it doesn’t mean we are done yet. There’s still components to port and scaffolding to remove.
Porting remaining applicationsWhile KDE Frameworks and Plasma switched completly to Qt 6 with the release, there’s still a number of components in KDE Gear using Qt 5 by default. The following modules still need work:
- Artikulate
- Cantor (MR)
- Kalzium - has Qt6 CI already
- Kig
- KmPlot - has Qt6 CI already
- KTouch (MR)
- Marble (branch)
- Minuet - has Qt6 CI already
- Rocs (QtScript porting MR)
- Step - has Qt6 CI already
- KolourPaint (MR)
- K3b - has Qt6 CI already
- KMix
- Kwave
- Cervisia - partially ported
- Lokalize (MR)
- poxml
- Umbrello
- KDevelop (MR)
- KRDC - has Qt6 CI already
- KImageMap Editor - has partial Qt6 CI already
- Kamoso
- Kirigami Gallery (branch)
- Calindori - CI is Qt6 only but default build is still Qt5?
- ghostwriter - has Qt6 CI already
This list doesn’t include modules that are basically ported but cannot switch yet due to other things depending on them, ie. there is more than those not released for KF6 yet. Same goes for modules providing plugins that are still needed for both versions.
The complexity of the remaining work here ranges from putting on finishing touches and taking the decision to make the switch all the way to dealing with potentially difficult to port dependencies such as QtScript. So there’s something for everyone here ;)
And then there’s of course even more outside of the KDE Gear release automation that also needs to be looked at, Krita for example recently posted their plans for the migration to Qt 6.
Cleaning up porting aidsBut even in the modules released exclusively for Qt6 and KF6 already there is still work to be done, namely removing the remaining uses of porting aids such as Qt5Compat.
While the need for this might not seem that pressing anymore there’s many good reasons for doing this sooner rather than later:
- We have many people around still familiar with how to do that and its potential pitfalls. That knowledge tends to fade away over time.
- We pay extra in download, storage and runtime cost for carrying around those dependencies. That matters especially for bundled apps, e.g. for some of our APKs this lead to a 20% size reduction.
- Future-us will hate us for not doing this, in the same way as we were unhappy about past-us not having cleaned up after themselves during the 4 -> 5 migration.
On the C++ side that’s basically QRegExp, QTextCodec and the SAX XML parsing API.
QTextCodec:
- Uses for small chunks of UTF-8, Latin-1 or local 8 bit encoded strings can be replaced by QString API (not that common).
- Use for larger amounts of data or different codecs can be replaced by QStringEncoder and QStringDecoder (the most common case).
- Uses for listing all codecs needs new API in Qt 6.7 and cannot be replaced just yet (rare).
- Uses in combination of QTextStream for non-Unicode content have no replacement (fortunately very rare by now).
QRegExp:
- Fully replaceable by QRegularExpression.
- Wildcard and exact match support might need changes to the actual expressions, either manually or via corresponding QRegularExpression helper methods (somewhat common by now as most easy case have long been converted).
Things get a bit more tricky for both of those when these types are used in API and thus propagate through larger parts of the code, but fortunately we only have a few of those cases left. The vast majority of uses is very localized.
SAX XML parser:
- Replaceable by QXmlStreamReader.
- Can require larger code changes and needs extra care when dealing with XML namespaces.
- Fortunately rare by now.
The other big part of Qt5Compat are about 25 graphical effects for QML.
- DropShadow and RectangularGlow can in many cases be replaced by Kirigami.ShadowedRectangle, which is probably the most common case here. MultiEffect covers the rest, ie. shadows on anything else than (rounded) rectangles.
- LinearGradient in any other orientation than vertical needs a nested and rotated `Rectangle` now to hold the gradient, see e.g. Kirigami.EdgeShadow for an example in horizontal or vertical orientation can be replaced by a Rectangle with associated Gradient (few cases left).
- For anything else you have to hope that the Qt6 MultiEffect provides a suitable replacement. For the most common cases (blur and opacity masks) that’s the case fortunately, for more exotic effects you might need to get creative.
Qt5Compat isn’t the only porting aid though. Plasma5Support is another one to look at, with still hundreds of uses left just within KDE code.
Plasma5Support contains some of the former Plasma Framework functionality, such as the data engines. I have no experience porting away from that myself though, maybe the Plasma team can provide some guidance for that :)
You can help!In particular removing the remaining porting aid uses in many cases doesn’t need in-depth knowledge of the affected applications but consists of separate and localized changes, so it’s the ideal side-task while waiting for longer compile runs for example.
LXR is a very useful tool for finding the remaining uses and the KDE Development channel on Matrix is the place to ask if you need help. Among my merge requests from the past two weeks you’ll also find 30+ examples for such changes.
Lain login spashscreen [Plasma 6 Splashscreens]
Overload login splash [Plasma Splashscreens]
Alterra login splash [Plasma Splashscreens]
Lagtrain gruvbox login splash [Plasma Splashscreens]
Penrose triangle login splash [Plasma Splashscreens]
Futura Icon Pack [Full Icon Themes]
Psion [Global Themes (Plasma 6)]
Psion [Plasma Color Schemes]
Temporary Virtual Desktops [KWin Scripts]
Quick Tile Wide [KWin Scripts]
This week in KDE: Dolphin levels up
In addition to lots and lots of Plasma 6 stability work and the beginning of Plasma 6.1 feature work, Dolphin received large amount of development this week, resulting in some nice improvements. Check it out!
New FeaturesKSSHAskPass (which has the best name of any app in the world, change my mind) now supports SK-type SSH keys (Franz Baumgärtner, KSSHAskPass 24.05. Link)
Gave the Web Browser widget the option to always load a specific page every time, or remember the last-browsed-to one (Shubham Arora, Plasma 6.1. Link):
Info Center has a new page showing you technical audio information for debugging purposes (Shubham Arora, Plasma 6.1. Link)
The icon chooser dialog now has a filter so you can see only symbolic icons, or no symbolic icons (Kai Uwe Broulik, Frameworks 6.1. Link):
UI ImprovementsDolphin’s icon once again changes with the accent color (Kai Uwe Broulik, Dolphin 24.02.1. Link)
Most of Dolphin’s bars now animate appearing and disappearing (Felix Ernst, Dolphin 24.05. Link):
Some folders in Dolphin get special view settings applied by default, such as the Trash and Recent Files/Folders locations. Now these special view settings get applied to those folders even if you’re using the “use same view settings for all folders” setting (Jin Liu, Dolphin 24.05. Link)
Dolphin now has a new tab in its settings window for settings about its panels, which were previously hidden away in a context menu. So far just the Information Panel is represented there, but others may be added later! (Benedikt Thiemer, Dolphin 24.05. Link):
Made touch scrolling in Konsole work better (Willian Wang, Konsole 24.05. Link)
Improved the way Konsole’s text cursor scales on Wayland, especially with fractional scale factors (Luis Javier Merino Morán, Konsole 24.05. Link)
Okular already lets you scroll around a document with the hjkl keys. Now if you hold down the Shift key while doing it, it scrolls 10 times faster! (Someone going by the pseudonym “GI GI”, Okular 24.05. Link)
KRunner-powered search fields in Overview and the Search widget show the same search ordering that other ones already do (Alexander Lohnau, Plasma 6.0.2. Link)
The Power and Energy widget now hides its “Show Battery percentage on icon when not fully charged” option when the system has no batteries (Natalie Clarius, Plasma 6.0.2. Link)
With non-random wallpaper slideshows, Plasma now remembers the last-seen one and starts from there the next time you log in (Fushan Wen, Plasma 6.0.2. Link)
Improved keyboard navigation in Kirigami sidebars powered by the GlobalDrawer component (Carl Schwan, Frameworks 6.1. Link)
Increased the size of the “Get new Plasma Widgets” dialog (Me: Nate Graham, Frameworks 6.1. Link)
Bug FixesFixed one source of issues with the lock screen breaking on X11 by showing a black background. There may be more, and we’re on the case for those too (Jakob Petsovits, Plasma 6.0.2. Link)
Fixed a way that the Battery Monitor widget could cause Plasma to crash (Natalie Clarius, Plasma 6.0.2. Link)
Fixed a way that Plasma could crash when you middle-click tasks in the Task Manager, or rapidly left-click on random audio-playing tasks (Fushan Wen, Plasma 6.0.2, Link 1 and link 2)
On X11, clicks no longer get eaten on part of top panels (Yifan Zhu, Plasma 6.0.2. Link)
On X11, lock and sleep inhibitions once again work (Jakub Gocoł, Plasma 6.0.2. Link)
Fixed most of the incorrectly-colored System Tray icons when using mixed dark/light themes. There’s still one remaining source of this that we found, which is also being worked on (Nicolas Fella, Plasma 6.0.2. Link)
You can once again scrub through songs played in Spotify using the Media Player widget (Fushan Wen, Plasma 6.0.2. Link)
Fixed several issues with panel widgets (including Kickoff) incorrectly passing focus to their parent panel when activated (Niccolò Venerandi, Plasma 6.0.2. Link)
Dragging widgets to or from panels no longer sometimes causes Plasma to crash or makes the widget get stuck in ghost form on the desktop (Marco Martin, Plasma 6.0.3. Link 1 and link 2)
On Wayland, adding a second keyboard layout now causes the relevant System Tray widget to appear immediately, rather than only after Plasma or the system was restarted (Harald Sitter, Plasma 6.0.3. Link)
Fixed a way that Bluetooth pairing could fail (Ajrat Makhmutov, Plasma 6.0.3, Link)
On X11, the screen chooser OSD works again (Fushan Wen, Plasma 6.0.3. Link)
Breeze GTK is once again the default GTK theme (Fabian Vogt, Plasma 6.0.3. Link)
Yet again fixed the login sound so that it actually plays (Harald Sitter, Plasma 6.0.3. Link)
Reverted to an older and better way of sending pointer events on Wayland, which fixes multiple issues involving windows and cursors teleporting unexpectedly while dragging to maximize or de-maximize windows (Vlad Zahorodnii, Plasma 6.1. Link 1, link 2, and link 3)
Fixed a bunch of weird cursor issues with GPUs that don’t support variable refresh rate properly (Xaver Hugl, Plasma 6.1. Link)
Fixed a source of xdg-desktop-portal crashes on boot (David Redondo, Frameworks 6.1 Link)
Fixed two issues with the “Get New [thing]” dialogs that caused them to not show installation progress correctly, and get stuck after uninstalling something (Akseli Lahtinen, Frameworks 6.1. Link 1 and link 2)
System Monitor charts now appear properly for users of 10+ year-old Intel integrated GPUs (Arjen Hiemstra, Frameworks 6.1. Link)
More UI elements throughout QtQuick-based KDE software stop animating when animations are globally disabled, which also fixes an issue where Plasma button highlights would disappear with animations are globally disabled (me: Nate Graham, Frameworks 6.1. Link 1 and link 2)
Other bug information of note:
- 3 Very high priority Plasma bugs (up from 2 last week). Current list of bugs
- 36 15-minute Plasma bugs (same as last week). Current list of bugs
- 207 KDE bugs of all kinds fixed over last week. Full list of bugs
Fixed a source of 25-second Plasma startup delays when using KDE Connect with Bluetooth disabled or absent (Simon Redman, the next KDE Connect release, though most distros have already backported it. Link)
Fixed another source of slow Plasma startups caused by using the Bing picture of the day wallpaper (Fushan Wen, Plasma 6.0.2. Link)
KWin now does direct scan-out even for rotated screens (Xaver Hugl, Plasma 6.1. Link)
Reduced the size of all the wallpapers in the plasma-workspace-wallpapers repo by 10 MB (Martin Rys, Plasma 6.1. Link)
Ported Kile to KDE Frameworks 6. Hopefully this should presage a new release soon (Carl Schwan, link)
Automation & SystematizationWrote a tutorial about setting up your app’s continuous integration system to package and publish to the Windows store (Ingo Klöcker, link)
Added some autotests for X11-specific window behavior (Vlad Zahorodnii, link)
OtherRewrote a some chunks of text on KDE neon’s website to make it reflect reality: it is a distro, its target users are those who want KDE stuff fast and can tolerate some instability, and you shouldn’t use the package manager to get apps (me: Nate Graham, link 1, link 2, link 3, and link 4)
…And Everything ElseThis blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.
How You Can HelpPlease help with bug triage! The Bugzilla volumes are extraordinary right now and we are overwhelmed. I’ll be doing another blog post on this tomorrow; for now, if you’re interested, read this.
Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!