Planet KDE
Plasma 6 and Beyond!
The Plasma Mobile team is happy to announce the release of Plasma 6 for mobile devices!
It has been a long year of development and porting since our last major release of the shell, as well as mobile applications. This post will outline many of the highlights!
HousekeepingThe website was refreshed in anticipation for this release. Notably, the installation page was enhanced to better outline information about the various distributions that provide Plasma Mobile.
During the Plasma 6 development period, postmarketOS graciously provided us with a "nightly" repository of KDE packages tracking git repositories. We have found this critically useful for development. You can find instructions on how to use this repository here.
PlasmaDevin wrote a blog post covering some technical details covering the big aspect of the work porting all of the shell components to Qt and Plasma 6 APIs. A lot of functional work was done as well.
HomescreenWith Plasma 6, we are once again switching back to the Folio homescreen as default. The homescreen will once again have customizable pages to place apps and widgets, as well as an app drawer and search. Devin spent time rewriting it from scratch, addressing the limitations that existed in Plasma 5, in particular the customizations are now tied to each page, no longer causing reordering issues from screen rotations.
Notable Features:
- Customizable pages to place apps and widgets
- Folders
- Drag and drop customization
- Widgets (still some known issues, see below)
- App drawer (swipe up)
- KRunner search (swipe down)
- Row-column flipping for screen rotations
- Customizable row and column counts
- Customizable page transitions
- Import and exporting of homescreen layouts as files
- and more!
In Plasma 5, Plasma Mobile required several config files to be installed on the system in order to set some settings needed in Plasma. For Plasma 6, Devin created a new settings service that automatically handles this situation. This allows for interoperability with Plasma Desktop being simultaneously installed on the system, and eliminates the need to install custom configuration.
First time setupDevin added an initial setup window that guides users to configure some basic aspects of the system, such as Wi-Fi and cellular settings.
Authentication dialogDevin worked on porting the authentication dialog so that it has a mobile form factor.
Docked modeDevin worked on adding a "docked mode" quicksetting which, when activated, enables window decorations and minimize/maximize/close buttons, and also stops enforcing application windows to be in fullscreen.
Navigation panelDevin added a setting to always show the keyboard toggle button. He also made it so that if there is enough screen space, the panel goes on the bottom for tablets rather than on the side.
Task switcherThe task switcher was moved from the Plasma shell and into KWin to improve code maintainability.
VibrationsIn Plasma 5, the default vibration speed was hardcoded to the PinePhone's motor, which could not register lower vibration durations. This resulted in other devices having overly strong vibration effects. Vibrations now default to an acceptable level for other devices, and can still be configured in the shell settings module.
FlashlightThe flashlight quicksetting in Plasma 5 is hardcoded to the PinePhone. Florian worked on making it so that it now works with all phones in Plasma 6!
SettingsDevin improved the cellular settings module so that interaction tasks are asynchronous and do not freeze the UI. He also fixed unnecessary password prompts from being shown when the module is first opened.
Devin ported the Wi-Fi settings module to mobile form components, making it consistent with other modules. He overhauled the time settings module to newer components as well, making setting the time and date more intuitive. He also did some work to ensure the UI does not freeze when applying settings.
Joshua refactored the look and feel of the Push Notifications KCM and added UnifiedPush support to NeoChat so you'll never miss a message, even when NeoChat is closed (that is, if you want to get notifications, of course!)
Mathis created a new icon for the application.
Known IssuesRegrettably, our team resources are limited, and so we still have several outstanding issues that were not addressed in time for this release:
- Scrolling in Qt6 with a touchscreen has very low inertia compared to Qt5 and we cannot change the platform default, see this, reported in upstream to Qt here
- Some homescreen widgets open popups every time they are moved around
- Limited widget selection. Currently we just have existing widgets from the Plasma Desktop
- The screen recording quicksetting was removed for the time being. It needs further investigation on porting it to new APIs
- Gesture-only mode was removed for the time being. We need to investigate making KWin's gesture infrastructure fit our needs
- Sometimes application windows extend under the navigation bar. We need to investigate this regression with KWin
- The task switcher is slow on the PinePhone in particular. We need to investigate the performance of the KWin effect
There are other issues also being tracked in our issue tracker.
ApplicationsA tremendous amount of work went into the massive effort behind porting all of our applications to Qt6 and KF6. We would like to extend a big thank you to everyone involved!
Many major announcements for applications are in the Megarelease post, so be sure to check there too!
Photos (Koko)While the application is still called Koko, user-facing text now calls it "Photos" to make it easier for you to find. (Devin Lin, KDE Gear 24.02, Link)
A new icon was created for the application, replacing the gorilla (Mathis Brüchert & Devin Lin, KDE Gear 24.02, Link)
ClockThe Clock app now pauses MPRIS media sources when an alarm or timer starts ringing and resumes (previously paused) sources once the alarm is dismissed (Luis Büchi, KDE Gear 24.02, Link)
CalculatorA new configuration page was added to the calculator app, allowing to set decimal places, angle units and a parsing mode (Michael Lang, KDE Gear 24.02, Link)
We improved the history view to allow for the removal of entries, and the drawer-style area for extra functions got replaced with a swipe view (Michael Lang, KDE Gear 24.02, Link 1, Link 2)
A number of new features and QoL improvements were added, including automatic font resizing when entering long expressions, better rendering of exponents, and more actual calculation features: random number, base n root/log, differential functions, standard deviations, and a lot more... Oh! and we switched math the engine to libqalculate! (Michael Lang, KDE Gear 24.02, Link 1, Link 2, Link 3, Link 4)
KastsApart from some minor visual changes related to the Qt6 and KF6 update and several fixes regarding images and playback controls, Kasts will now update podcasts dramatically faster by not parsing RSS feeds that haven't changed (Bart De Vries, KDE Gear 24.02 Link 1)
The color theme (e.g. Breeze light, Breeze dark) can now be selected manually (Bart De Vries, KDE Gear 24.02 Link 2)
Network checks for metered connections can now be disabled altogether. This can be useful on systems that are not able to reliably report the connection status (Bart De Vries, KDE Gear 24.02 Link 3)
Hash-o-MaticHash-o-Matic is a new application that lets you verify the authenticity of files by using their MD5, SHA-256 and SHA-1 hashes or their PGP signature.
Hash-o-Matic also let you generate hash for a file and compare two files.
ContributingDo you want to help with the development of Plasma Mobile? We are a group of volunteers doing this in our free time, and are desperately looking for new contributors, beginners are always welcome!
See our community page to get in touch!
We are always happy to get more helping hands, no matter what you want to do, but we especially need support in these areas:
-
Telephony
-
Camera support
-
You can also check out our Plasma Mobile issue tracker for more details.
Even if you do not have a compatible phone or tablet, you can also help us out with application development, as you can easily do that from a desktop!
Of course, you can also help with other things besides coding! For example, take Plasma Mobile for a spin to help us test bugs and triage reports! Check out the device support for each distribution and find the version which will work on your phone.
Another option would be to help us in making these blog posts more regular again. We really don't want another 6 months of silence, but writing these take a surprising amount of time and effort.
If you have any further questions, view our documentation, and consider joining our Matrix channel. Let us know what you would like to work on or where you need support to get going!
Our issue tracker documentation also gives information on how and where to report issues.
On a final note...We would like to thank all of the contributors across KDE that have made this megarelease possible! We could not have done it without you. Thank you!
Qt Creator 13 Beta2 released
We are happy to announce the release of Qt Creator 13 Beta2!
Punctuality Matters: Using Linux to Manage Time-Critical Situations
The robustness of Linux is widely acknowledged, but it can’t quite match the microsecond management of a real-time operating system (RTOS) for time critical situations such as CNC machine instructions, vehicular control, or health sensor collection. If your software must record, manage, or control events within a narrow and precise time window and you’re invested in Linux for core development, you can consider some of these strategies for handling time-critical tasks without abandoning your familiar environment.
Real-time patchesLinux can be nudged closer to real-time performance using kernel patches specifically designed for real-time applications like PREEMPT_RT. These patches modify the Linux kernel to reduce latency and improve the predictability of task scheduling by minimizing the duration of non-preemptible critical kernel code. This does not transform Linux into a hard real-time system, but it provides sufficient precision for many scenarios. Bear in mind that this solution requires you to keep your real-time patches aligned with your Linux kernel, which might slow down the frequency of kernel updates your team can manage. You also must navigate issues such as page swapping that can disrupt timing.
Embracing the hypervisorHypervisors offer a parallel environment beneath/beside Linux to manage time-sensitive tasks. They enable running virtual machines (VMs) alongside the main Linux system, each capable of hosting different operating systems. This allows you to place your real-time tasks into an RTOS while reserving Linux for higher-level functions. While hypervisors can improve real-time reliability and system flexibility, don’t forget to take their overhead and resource contention into account.
Onboard processingModern CPUs often feature integrated co-processors, like an ARM Cortex-M or a DSP, which is suitable for real-time operations as well as low-power needs while the main CPU is dormant. These can handle time-critical tasks independent of the CPU, effectively using available hardware resources without the need for additional components. These parallel processing environments can be highly efficient at specific tasks. However, this approach adds complexity in coordinating tasks and data flow between CPUs and co-processors – and not all hardware platforms have suitable co-processors.
Leverage a microcontrollerFor dedicated time-critical processing, especially in low-power applications, microcontrollers can be very effective. With a basic event loop or interrupt-driven sleep mode, they operate efficiently and independently, offering high reliability as dedicated systems, and potentially lower power consumption for battery-powered devices. The drawback is that they can increase costs due to additional hardware, potentially create a larger physical footprint, and add development complexity because of separate code bases.
Dedicated coresReserving a CPU core exclusively for real-time tasks might be overkill, but it’s a viable option when there’s sufficiently extra processing power. By using cores optimized for lower power consumption, this method can also have power-saving benefits. A real-time dedicated core ensures that time-critical tasks don’t get interrupted by other system activities. However, it almost always underutilizes the processor’s full capabilities and can be complex to properly manage memory pages and core affinities.
Which solution is the best?The appropriateness of these methods hinges entirely on the specifics of your time-critical hardware and access requirements. For instance, if essential hardware is only accessible via the main CPU, microcontrollers or co-processors won’t be viable. Implementing any of these solutions introduces complexity, often requiring dual software environments and toolsets, as well as solid communication between time-critical and non-critical processes (communication channels must be designed meticulously to avoid becoming performance bottlenecks).
ConclusionIncorporating time-critical capabilities into Linux systems is a balancing act of innovation and practicality. While Linux may never achieve ‘hard’ real-time status, with care and innovation it can be adapted to meet time-sensitive demands. Integrating real-time capabilities into a Linux-based system is a multifaceted challenge and each solution presents a unique set of trade-offs. To learn more about these challenges and related topics, read Designing Your First Embedded Device: Choosing Your Software Stack.
About KDAB
If you like this article and want to read similar material, consider subscribing via our RSS feed.
Subscribe to KDAB TV for similar informative short video content.
KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.
The post Punctuality Matters: Using Linux to Manage Time-Critical Situations appeared first on KDAB.
My work in KDE for February 2024
It’s February already, and as expected I didn’t have too much time on my hands this month. I have some exciting related news though:
KDE Megarelease 6If you somehow haven’t heard, a bunch of KDE 6-related stuff released yesterday! I highly recommend looking at the very nice announcement Carl and the rest of the KDE Promo team put together, it looks so good. Some of my changes in KCMs, Kiten, UnifiedPush support in Tokodon & NeoChat, PlasmaTube, and Tokodon are showcased there 🤩 One of my favorite changes is probably in KWin and the Wayland session, it’s near-perfect on my machine now.
NLnet GrantFor a while now, people have been asking about funding work on important Wayland features for artists and people who depend on accessibility features. We have been turning down offers from individual fundraisers, because behind the scenes my employer arranged a grant us to work on this task from NLnet! “Us” here means me and Nicolas Fella. I hope to begin in early April.
TokodonFeature I changed the thread visuals to improve the readability of replies. Note that it’s only one level deep, but even with that limitation I find it to be way better than it was before! 24.05
Better thread visualsFeature I did some neat notification changes, such as enabling group notifications by default and hiding the post actions unless required for notifications. The notifications page should have less visual noise now. 24.02.1
Less visual noise on the notifications pageFeature Tokodon now warns if replies may be hidden from your server and suggests to open the original post in your web browser. This isn’t the greatest solution yet, eventually I want a way to load the post on the original server within Tokodon. This is a good start though, instead of showing nothing. 24.05
The new replies message NeoChatBugfix Rebased and cleaned up my bugfix to prevent editing messages destroying the formatting. This should be integrated soon!
FrameworksBugfix Fixed my typo that caused KFileMetadata to fail when not building with KArchive support, oops! 6.1
Bugfix Add the missing and new Breeze icons dependency to kiconthemes. 6.1
My work in KDE for January 2024 HomeKDE 6 UK Release Party
There are release parties around the world, the UK has a party in Cambridge.
Action plan is to go to The Haymakers, High Street, Cambridge and get pizza, drinks and more pizza. at 19:00 Thursday the 29th Feb.
Look for the guy in the blue KDE T-shirt.
Sign up at https://community.kde.org/Promo/Events/Parties/KDE_6th_Megarelease#Cambridge
KDE neon 6 Available Now
Today KDE has made its biggest release ever, never before in the 25 year history of the project have we announced so many new products at the same time but it brings the newly refreshed base to keep our software foundation strong.
KDE neon User edition has now been updated with KDE Frameworks 6, Plasma 6 and all the apps from KDE Gear 24.02. You can upgrade through Discover or grab the newest installable ISO build.
If you just want to give it a try then give the Docker images a go.
Many thanks to Carlos, Harald and Jonathan for making this Neon release, to the 100s of KDE developers for writing the software and to Augustin and Paul for hosting the release sprint in Malaga.
Implicit Imports vs. QML Modules in Qt 6
Several versions of Qt have been released since my last treatise on QML modules. Most of it is in fact still very valid advice, but I feel I have to stress a few things that people often misunderstand.
KDE MegaRelease 6
Maui Release Briefing #5
Today, we bring you a report on the brand-new release of the Maui Project.
We are excited to announce the latest release of MauiKit version 3.1.0, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, an in-house developed set of convergent applications, and the upcoming convergent shell environment for desktop and mobile devices.
Built on the foundations of Qt Quick Controls, QML, and the power and stability of C++, MauiKit empowers developers to create adaptable and seamless user interfaces across a range of devices, and with this release, we are a step closer to finalizing the migration to a new major version – the upcoming MauiKit4 release.
Join us on this journey as we unveil the potential of MauiKit3 for building convergent interfaces, the roadmap towards MauiKit4 and its new additions, and finally discover the possibilities offered by the enhanced Maui App stack.
CommunityTo follow the Maui Project’s development or to just say hi, you can join us on Telegram @mauiproject
We are present on Twitter and Mastodon:
Thanks to the KDE contributors who have helped to translate the Maui Apps and Frameworks!
Downloads & SourcesYou can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/
All of the Maui repositories have the newly released branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui
MauiKit4 & DocumentationMauiKit Calendar, Accounts, and Image Tools have now been ported to Qt6, joining MauiMan, MauiKit, and File Browsing frameworks. Alongside with the porting efforts, the frameworks are now documented, and available on the KDE API documentation site [HERE]. The remaining frameworks to be ported to Qt6 are MauiKit Terminal, Documents, and Text Editor, which should be fully ported and documented by the upcoming release in May.
The porting also involved updating the framework CMake code to the latest ECM changes introduced for creating QML plugins.
For the upcoming porting of MauiKit Text Editor, there are plans to move to a different backend for rendering the text more efficiently, and for Documents, the comics and ebooks backends will be reviewed and refactored to address crashing issues under Android.
You can find more information about the roadmap and plans for the migration to Qt6 at: https://invent.kde.org/maui/mauikit/-/issues/35
MauiKit Frameworks & AppsA quick overview of the issues addressed and updates are covered in the following list:
- Updated translations and support for more languages
- Rebase MauiKit ApplicationWindow to QQC2 ApplicationWindow to resolve focus-stealing issues in Android
- Update all the applications’ source code syntax in QML for the upcoming Qt6 port
- Pick up the system light/dark preference for Android in MauiKit3, and move the handling of the Android status bar color from each app to MauiKit’s ApplicationWindow control. For MauiKit4 relay in the QStyleHints new properties
- Split the MauiApp code from the CSDControls. Thus register CSDControls as a new attached property: Maui.CSD [link to docs]
- Expose the MauiKit Application root element via the attached property MauiApp, as Maui.App.rootComponent [link to docs]
- Station fixes for handling the “terminate-session” shortcut and fixes to crashing issues when closing tabs, coming from MauiKit Terminal
- The MauiKit’s PageLayout control has been backported from MauiKit4 to MauiKit3, and its implementation has gained new features, such as moving the collapsable elements to the footer. [link to docs]
- Index app is now using MauiKit’s PageLayout control for splitting the toolbar actions for constrained spaces, the same as Pix
- Pix fix the tags hot-reloading on new tags created
- Fixes to nota syncing the terminal working directory
- Vvave has gained a new option to quickly start a playlist in shuffle mode and a sleep timer: to stop playback and/or close the app after a certain time or end of the playlist
- MauiKit’s AboutDialog has been revised and organized
- MauiKit FileBrowsing control for creating a new file now picks the icon from the name extension
- MauiKit Terminal and Text Editor now have a custom control exposing configurations for selecting custom color schemes
- Index now has options to tweak the embedded terminal in Linux, such as custom color schemes, and reorganized setting entries for the terminal configurations
- Nota now reuses the new Text Editor control for picking the color scheme and new options for tweaking the embedded terminal
- All of the apps now use an exported definition or the copyright notice
- Fixes for all of the apps where the names of developers and other non-translatable strings were being marked as such
- Fixed keyboard shortcuts for Station, Vvave, and other apps
- Added style for the ComboBox component
- MauiKit corrects the usage of singleton instances across threads for all the frameworks, which avoids the double instantiation from the CPP and QML side
- Fixes to MauiKit TextEditor long press actions on touch screens
- Fixes to style hints for the scrollbar policy coming from MauiMan
- Fixes to Nota’s recent view selection mode
- On mobile devices do not cache image or icon previews for the thumbnail delegates
- Nota crashes when opening a new file from the recent view under Android.
- MauiKit Documents fails to open large comic books on Android, causing the app to crash due to the current design of using multiple threads for different pages. This is planned to be solved at MauiKitDocuments4 porting
- MauiKit Text Editor TextArea has a flickering issue, which makes content jumpy on Android only. This is from upstream and should be solved on MauiKitTextEditor4 porting when moving to a different backend.
- MauiKit FileBrowsing support for browsing SD cards on Android is currently disabled due to missing bindings to the “new” Android storage API
For the next release, we plan to work on stabilizing the Maui Shell experience, by adding XWayland support, and a few more things:
- Finalize the porting of the MauiKit Frameworks to Qt6
- Finalize and review the MauiKit documentation
- Start the porting process of the Maui Apps to MauiKit4 AKA Qt6
- Review MauiKit4 on Android
- Review the migration of TextEditor to a new backend
- Fixes to bugs on the Maui Apps stack
- Update the Maui Apps features that are still pending
Maui Shell
For this release, Maui Shell and its components have received minimal updates coming from:
- MauiCore and Maui Settings new modules for Audio and Network
- Updated Maui Settings for MauiKit4 changes
- Review shell aka Cask elements to be up to date with the MauiKit4 changes
That’s it for now. Until the next blog post, that will be a bit closer to the 3.1.1 stable release.
To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.
We are present on Twitter and Mastodon:
New release scheduleThe post Maui Release Briefing #5 appeared first on MauiKit — #UIFramework.
Call for feeds: Make your region available in our open transit router
You may have already read about it on Volkers blog: we together with people from other public transport related projects are building a public transport routing service called Transitous. While of course our main motivation is to use it in KDE Itinerary, KDE’s travel planning app, it will be open for use in other apps.
We also have a little web interface running at transitous.org.
We are building this service based on great existing software, in particularly MOTIS.
Now, to make this really useful, we need data on more regions. Luckily, for most regions and countries that is fairly easy. Most transport agencies and countries make GTFS feeds available, that we can just use.
Adding an additional feed doesn’t take long and doesn’t need programming experience. It’s pretty much just creating a small text file that explains how and where to download the data from.
Those links don’t necessarily stay the same forever, so we would be happy if lots of people take care of their region, and update the link every few years. It is really little work if split up, but can’t all be handled by a small team.
To make it even easier, we can already use the Transitland Atlas feed collection, for which you just need to choose the feed to use. The url will then automatically be looked up.
You can find out how to add a feed here. Please let us know if the documentation is unclear anywhere.
If you are interested in using this service in your own application, it is probably a bit too early for production, but it makes sense to already implement support for the MOTIS API that we use. You can find an early version of our API documentation here.
If there is anything else you are interested in helping with, for example improving our ansible playbook, creating a website, improving MOTIS or working on integrating OpenStreetMap routing, you can find our open tasks here. We appreciate any help on those issues, and it of course speeds up the development of the project.
Plasma Pass 1.2.2
Plasma Pass is a Plasma applet for the Pass password manager
This release includes build fixes for Plasma 6, due to be released later this week.
URL: https://download.kde.org/stable/plasma-pass/
Sha256: 2a726455084d7806fe78bc8aa6222a44f328b6063479f8b7afc3692e18c397ce
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>
https://jriddell.org/esk-riddell.gpg
The Neon Powered Gears are Working on Plasma 6
It’s high tension in Neon towers this week as the distro packagers have been given access to the source tars for Plasma 6 along with Frameworks 6 and KDE Gear 24.02. This means our cloud of build servers have been powered up to compile them into .deb packages which go into our Apt archive. In principle we already have the packaging working in Unstable and Testing edition so it should be a case of just doing a fresh build in User edition but it involves several hundred source builds all done for the three editions and for libraries and plugins (such as KIO Workers) many of them twice over, once for Qt 6 and once for Qt 5 builds. So lots of bits which need aligned. Frameworks completed yesterday morning and this morning it looks like all of Plasma is built. The KDE Gear apps are churning away now. We’ll then need to tests it all including many configurations of upgrade to make sure it doesn’t break your laptops. The releases are due on Wednesday and with any luck we will have Neon builds available very shortly after, but of course we’ll wait until it’s ready if that’s what we have to do. It’ll be just a normal upgrade available to Discover but of course with a large number of packages to download. Who’s excited?
This week in KDE: real fake session restore
Welp, the mega-release is pretty much carved in stone now, and set for a release in four days! Lots of people have worked really hard on it for over a year, and we hope you love it! Nevertheless, I’m sure our diligent QA-obsessed users will waste no time in finding all the issues we missed, and we’ll work as hard as we can to fix them.
But once those are fixed too, the focus will eventually begin to shift once more towards features. And we have big ideas for new features to ship in Plasma 6.1 and beyond! With the architectural work done over the past year, a lot of very exciting possibilities have been unlocked. I think we’re going to see Plasma 6 as a pretty amazing springboard for next-gen stuff very quickly.
And to start things off, we have two nice new features that are landing in Plasma 6.1 already:
New FeaturesEven though we don’t have real session restore on Wayland yet (it’s still waiting for the protocol to be finalized), now we have the next best thing: fake session restore that simply re-opens apps you had open at the last logout and relies on them to have internally saved their own state appropriately. This works on X11 too (where apps that remember their window positions can do that as well), and it applies to all windows not covered by real session restore. As a result, now all your apps should always re-launch properly on login, rather than only the random-seeing assortment of session-restore-supporting apps re-launching on login. This feature is controlled by the existing setting that turns on or off session restore (David Edmundson, Plasma 6.1. Link)
In the Overview and Present windows effect, the way that windows are arranged is no longer configurable between two imperfect options: now there is only one layout algorithm and it’s waaaaaaay better than the old one! Windows are now arranged much more regularly and it ditches the very haphazard feeling of the old default algorithm, fixing multiple bugs causing weird window layouts including the infamous “stairway to heaven” arrangement (Yifan Zhu, Plasma 6.1. Link 1, link 2, link 3, link 4, link 5):
UI ImprovementsWhen dragging a file or folder over another folder in Dolphin with the option turned on that opens the folder if you hold the dragged file there for a moment, the hovered folder now displays a little animation showing it open a bit (Felix Ernst, Dolphin 24.05. Link):
https://i.imgur.com/ZSZRoN2.mp4Headsets that report their battery status properly now benefit from a nice icon in all the places in Plasma that can show battery status (Severin Von Wnuck-Lipinski Plasma 6.1. Link)
The desktop context menu has lost its “Refresh” action which was infrequently used and did not actually fix most problems of missing icons that people might want to use it for. This makes the context menu lean and mean, and now nobody will have reason to say it’s “bloated” ever again! You can still manually refresh with F5 if needed (me: Nate Graham, Plasma 6.1. Link):
Bug FixesWhen connecting an iPhone or other Apple mobile device to your machine using a cable, and that phone has a name with an apostrophe in it (e.g. “Konqi’s iPhone”), now it works (Kai Uwe Broulik, kio-extras 24.02. Link)
Fixed the most common KWin crash on X11, which was commonly seen when the screen arrangement changed (Xaver Hugl, Plasma 5.27.11. Link)
Changing the Address, Name Style, Paper Size, or Phone Numbers settings on System Settings’ Region & Language page now actually takes effect (Timo Velten, Plasma 5.27.11. Link)
Fixed an issue that could cause the screen to turn black with only a movable cursor after switching from one virtual terminal to another one with certain graphics hardware (Jakob Petsovits, Plasma 5.27.11. Link)
Wind speed is now properly refreshed over time in forecasts provided by EnvCan in the Weather widget (Ismael Asensio, Plasma 5.27.11. Link)
Fixed a bug that could causing dragging-and-dropping Task manager icons to sometimes stop working (Fushan Wen, Plasma 6.0. Link)
KWin’s Zoom effect can now fully zoom into all areas of complex multi-screen setups (Michael VanOverbeek, KWin 6.0. Link)
A process named “ksmserver-logout-greeter” no longer shows up in your Task Manager while the logout screen is visible (Akseli Lahtinen, Plasma 6.0. Link)
Fixed a visual glitch that could cause window outlines to become slightly disconnected from their windows at certain window sizes when using certain fractional scale factors (Akseli Lahtinen, Plasma 6.0.1 Link)
Fixed a visual glitch that could cause windows on rotated displays to be briefly rotated incorrectly after becoming visible when using the “Glide” effect (Vlad Zahorodnii, Plasma 6.0.1. Link)
Fixed a case where KWin could crash when using the relatively old 340-series of NVIDIA drivers (Vlad Zahorodnii, Plasma 6.0.1. Link)
Fixed a way that Plasma could crash when manually restarted using systemd (Harald Sitter, Plasma 6.1. Link)
The shortcut chooser in the panel configuration dialog now respects your Plasma style’s color scheme as expected (Marco Martin, Frameworks 6.0. Link)
Toast-style notifications sent by Kirigami-based apps no longer visually overflow when they have a large amount of text in them (Jack Hill, Frameworks 6.0. Link)
Other bug information of note:
- 3 Very high priority Plasma bugs (same as last week). Current list of bugs
- 30 15-minute Plasma bugs (same as last week). Current list of bugs
- 169 KDE bugs of all kinds fixed over last week. Full list of bugs
Improved Dolphin’s startup time by between 2% and 17% (Felix Ernst, Dolphin 24.05. Link)
Automation & SystematizationAdded an autotest to ensure the proper functionality of text field context menus in QtQuick-based software (Fushan Wen, link)
…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 HelpThanks to you, our Plasma 6 fundraiser has been a crazy success! I originally thought the goal of 500 new KDE e.V. supporting members was over-optimistic, but you’ve all proven me happily wrong. We’re now up to an amazing 850 members. Thank you everyone for the confidence you’ve shown in us; we’ll try not to screw it up! For those who haven’t donated to become members yet, spreading the wealth via this fundraiser is a great way to share the love.
If you’re a developer… sheesh, take a break for a few days. You’ve earned it!
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!
cursor-shape-v1 in Chromium and Electron
Just in time for KDE Plasma 6, Chromium 122 and Electron 29 have been released! They contain my patch that adds support for Wayland’s new cursor-shape-v1 extension protocol. When running natively in a Plasma 6 Wayland session, up-to-date Chromium-based browsers and Electron apps should now always use the correct mouse cursor theme and have the...
The post cursor-shape-v1 in Chromium and Electron first appeared on Ilya's Blog.
Software Heritage Symposium and FOSDEM 2024
Web Review, Week 2024-08
Let’s go for my web review for the week 2024-08.
Paying people to work on open source is good actually - Jacob Kaplan-MossTags: tech, foss, sustainability
Making sure maintainers are well paid is indeed an ongoing problem. There is currently no perfect solution within the world we live in. This is indeed no reason to blame the maintainers themselves for the approach they picked.
https://jacobian.org/2024/feb/16/paying-maintainers-is-good/
Tags: tech, anonymity, security
Interesting explanation of the guarantees such a system must provide and their consequences.
https://securedrop.org/news/anatomy-of-a-whistleblowing-system/
Tags: tech, gaming, culture
Happy birthday indeed. Was an excellent and culturally relevant game.
https://scottishgames.net/2024/02/14/it-was-33-years-ago-today-happy-birthday-lemmings/
Tags: tech, networking, security, history
A trip down memory lane when such attacks were indeed common. Nowadays, we know better though.
https://rachelbythebay.com/w/2024/02/21/bcast/
Tags: tech, phone, spam, hacking
Very funny glitch. This anti-spam system is smart… too bad the wrong victim got in the crosshair.
https://cohost.org/sirocyl/post/2891449-i-broke-ikea
Tags: tech, streaming, criticism
The streaming trap is getting obvious at this point.
https://blog.raed.dev/posts/goodbye_spotify
Tags: tech, self-hosting, blog
Lots of ideas indeed. Having your own website gives so much freedom in what you can do there.
https://jamesg.blog/2024/02/19/personal-website-ideas/
Tags: tech, infrastructure, reliability, self-hosting, raspberry-pi
Looks like an interesting and comprehensive reference to squeeze as much reliability as possible from a Raspberry Pi.
https://www.dzombak.com/blog/2023/12/Considerations-for-a-long-running-Raspberry-Pi.html
Tags: tech, fediverse
A little experiment to better understand how ActivityPub works.
https://shkspr.mobi/blog/2024/02/activitypub-server-in-a-single-file/
Tags: tech, git, command-line, tools
Plenty of good tips in there. I knew quite a few, but there are a few nuggets that I’ll test drive I think.
https://jvns.ca/blog/2024/02/16/popular-git-config-options/
Tags: tech, git, command-line, tools, project-management
Looks like a nice way to automate the creation of changelogs.
Tags: tech, api, design
Nice advices for API design. First time I see the term “inert” used in this context. Definitely one I should keep in mind and use when appropriate.
https://devblogs.microsoft.com/oldnewthing/20240216-00/?p=109409
Tags: tech, debugging, systemd, system
Nice tricks to debug the very early boot process, starting at PID 1. gdbserver saves the day here.
https://linus.schreibt.jetzt/posts/debugging-pid1.html
Tags: tech, linux, rust, system, processes
Interesting, I didn’t know that user space schedulers were coming to Linux. It opens the door to exciting experiments.
https://arighi.blogspot.com/2024/02/writing-scheduler-for-linux-in-rust.html?m=1
Tags: tech, floats, mathematics
Or how calculus can give a feel of why approximation errors can be great or small with floats.
https://a.exozy.me/posts/floats-weird/
Tags: tech, rust, bug, safety
Check out the docs branch for detailed explanations. This exhibits a loop hole in the Rust compiler allowing to break lifetime inference… and from there all the usual guarantees go through the window.
https://github.com/Speykious/cve-rs
Tags: tech, cloud, storage, ssd, performance
This is indeed an odd situation… there is no good explanation about why this is like this.
https://databasearchitects.blogspot.com/2024/02/ssds-have-become-ridiculously-fast.html?m=1
Tags: tech, gitlab, databases, sql, postgresql, performance
Nice exploration of the GitLab database schema. This highlights and finds quite a few of the choices made with an eye on performances.
https://shekhargulati.com/2022/07/08/my-notes-on-gitlabs-postgres-schema-design/
Tags: tech, web, frontend, javascript, quality
Something is definitely bonkers regarding the use of JavaScript on the web. The amount of bloat is staggering.
https://tonsky.me/blog/js-bloat/
Tags: tech, web, frontend, htmx
Looks like an interesting trick for more dynamic HTML frontends with very limited used of Javascript. Inspired by htmx it seems to go one step further in the same direction.
Tags: tech, ux
Or why wording matters… this is clearly a user design fail in this case.
https://www.kmjn.org/notes/message_existence.html
Tags: tech, gui, colors, mathematics
Neat article about colorspaces. Definitely worth reading if you’re curious about the topic. It also has interactive bits to ease the understanding.
https://ericportis.com/posts/2024/okay-color-spaces/
Tags: tech, modules, design, shell
Turns out to be an interesting discussion about modularity. It’s probably a good approach even for a one liner in a script.
https://two-wrongs.com/useful-uses-of-cat
Tags: tech, agile, project-management, change
Definitely true. This is why I refrain from using the term nowadays… this allows to focus on the principles instead. Takes more time to explain but allow for slow and steady change management. Indeed it’s not perceived as an all or nothing situation anymore.
https://www.pcloadletter.dev/blog/agile/
Tags: management, business, communication
Definitely this. Managing expectations is a big part of management. It’s also important for customer relationship. In both cases, clear communication and finding misunderstandings early are key.
https://poczwardowski.substack.com/p/on-managing-expectations
Tags: tech, hiring, interviews
Definitely true, this is mostly about avoiding false positives. Still I don’t like online assessments platforms either… you need to see how the candidate is doing, interact with them, etc.
https://www.pcloadletter.dev/blog/coding-interviews/
Tags: management, conference
Very comprehensive list of tips and ideas to organize events and get together. Nice for inspiration if you need to organize such a thing.
https://maggieappleton.com/gathering-structures
Bye for now!
Want to visit Gothenburg
It’s time for another foss-north again and the Call for Papers is open (as is the Call for Sponsors, hint, hint, nudge, nudge). Make sure to save the dates (April 15-16), get yourself a ticket, and submit your talk!
Happy weekend!
Kubuntu: Week 3 wrap up, Contest! KDE snaps, Debian uploads.
It has been a very busy 3 weeks here in Kubuntu!
Kubuntu 22.04.4 LTS has been released and can be downloaded from here: https://kubuntu.org/getkubuntu/
Work done for the upcoming 24.04 LTS release:
- Frameworks 5.115 is in proposed waiting for the Qt transition to complete.
- Debian merges for Plasma 5.27.10 are done, and I have confirmed there will be another bugfix release on March 6th.
- Applications 23.08.5 is being worked on right now.
- Added support for riscv64 hardware.
- Bug triaging and several fixes!
- I am working on Kubuntu branded Plasma-Welcome, Orca support and much more!
- Aaron and the Kfocus team has been doing some amazing work getting Calamares perfected for release! Thank you!
- Rick has been working hard on revamping kubuntu.org, stay tuned! Thank you!
- I have added several more apparmor profiles for packages affected by https://bugs.launchpad.net/ubuntu/+source/kgeotag/+bug/2046844
- I have aligned our meta package to adhere to https://community.kde.org/Distributions/Packaging_Recommendations and will continue to apply the rest of the fixes suggested there. Thanks for the tip Nate!
We have a branding contest! Please do enter, there are some exciting prizes https://kubuntu.org/news/kubuntu-graphic-design-contest/
Debian:
I have uploaded to NEW the following packages:
- kde-inotify-survey
- plank-player
- aura-browser
I am currently working on:
- alligator
- xwaylandvideobridge
KDE Snaps:
KDE applications 23.08.5 have been uploaded to Candidate channel, testing help welcome. https://snapcraft.io/search?q=KDE I have also working on bug fixes, time allowing.
My continued employment depends on you, please consider a donation! https://kubuntu.org/donate/
Thank you for stopping by!
~Scarlett
MOTIS support in KPublicTransport
Two weeks ago I showed a screenshot of initial support for the MOTIS routing engine in KTrip in my FOSDEM 2024 report. Driven by the Transitous work this is meanwhile nearing completion and will ship with the 24.05 release.
Adding new KPublicTransport backendsKDE’s apps consuming public transport data such as KTrip or Itinerary are built on top of the KPublicTransport library, which abstracts various different protocols and services providing that data.
As questions about adding new backends have been coming up recently, I tried to improve documentation, developer convenience and common infrastructure while adding the MOTIS support:
- KPublicTransport::AbstractBackend now has more documentation especially about the not so obvious aspects like paging support.
- Backend configuration files can now also be loaded from $XDG_DATA_DIRS/org.kde.kpublictransport/networks rather than just from the compiled-in QRC data. By symlinking the corresponding source directory you can therefore see the effect of modifications without recompiling. This also allows having configurations for e.g. the public MOTIS demo instance or a local one in the repository without those being visible to users.
- Improved the built-in infrastructure for paging through arrival query results, to the point where this now also works for subsequent arrivals with backends not having any native paging support.
When it comes to MOTIS support, almost every feature of MOTIS’ API that is modelled in KPublicTransport has been implemented:
- Station queries by name or coordinate.
- Arrival and departure queries for a given station, including paging in all combinations.
- Journey searches between a specific station and/or a coordinate, with paging support.
- When search to/from a coordinate, intermodal routing is used, supporting the following options:
- Walking
- Biking
- Taking a car
- Taking a car to an available parking space and then walking to the station
A few things still remain to be done:
- Intermodal routing using shared scooters/bikes etc.
- Retrieving routing paths for intermodal journey sections.
And there’s a few more very interesting features in MOTIS that we’d like to support eventually but that are currently not yet represented in the KPublicTransport API:
- “ontrip” journey queries, that is starting not at a fixed location but on a train or bus already, finding the best route to a destination given the current realtime situation (which can change along the way).
- Retrieving the realtime status of parking spaces. While in Germany that is always synonymous with car parking, the excellent bike parking infrastructure in the Netherlands in some places apparently also has API for the amount of currently available parking spots.
- Support for routing profiles for walking sections. That is things like walking speed or your willingness or ability to deal with steps/stairs, steep elevation, etc.
One thing that made the work on the MOTIS support somewhat unique is that this is the first KPublicTransport backend for which I had a fully functional local server setup, and one where I could debug and modify things even.
This allowed identifying a nasty API issues and subsequently getting that fixed, fixing a bug in location queries and even adding a missing feature. Ie. finally working the way we are used to in the Free Software world.
The wishlist for MOTIS has been growing over the past weeks as well, so there’s more to do here. MOTIS has a very strong focus on the routing algorithms, and their performance and optimality guarantees (ie. the hard part), but only exposes the bare minimum of information not relevant for routing in its API. From a client and UX perspective we’d like to get all details that could possible be important for users from the GTFS or GBFS source data though.
According to MOTIS’ Github stats two out of its top 10 contributors are meanwhile from KDE, so we’ll probably get all that eventually :)
OutlookAll of this work is motivated by the ongoing effort to set up a MOTIS instance for a free and open public transport routing service, which is continuing at a rapid pace. If that succeeds we’d be able to bring public transport routing coverage also to some areas where our apps are currently useless.
As I’m writing this I’m on the way to the upcoming OSM Hack Weekend in Karlsruhe, where I hope to discuss some of the challenges we encountered with scaling up the OSM-based first/last mile routing in MOTIS. More on that hopefully next week then.
Kirigami Addons 1.0
A new version of Kirigami Addons is out! Kirigami Addons is a collection of helpful components for your QML and Kirigami applications. With the 1.0 release, we are now supporting Qt6 and KF6 and added a bunch of new components and fixed various accessibility issues.
FormCardWe added a bunch of new FormCard delegates:
- FormPasswordFieldDelegate: A password field
- FormDataTimeDelegate: A date and/or time delegate with integrated date and time picker which use the native picker of the platform if available (currently only on Android).
The existing delegates also recevied various accessibility issues when used with a screen reader.
Finally we droped the compatibility alias MobileForm.
BottomDrawerMathis added a new Drawer component that can be used a context menu or to display some information on mobile.
Bottom Drawer in Itinerary showing the information about a station on the map
FloatingButton and DoubleFloatingButtonThese two components received significant sizing and consistency improvements which should improve their touch area on mobile.
Packager sectionYou can find the package on download.kde.org and it has been signed with my GPG key.