Skip to content

Friday, 1 December 2023

MauiKit: A Toolkit for Multi Adaptable User Interfaces.

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.0.2, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, and an in-house developed set of convergent applications.

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, now fully documented.

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.

Community

To 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 translate the Maui Apps and Frameworks!

Downloads & Sources

You can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/

And if you are feeling a bit curious about the Maui DE, you can download the Manjaro-based image for **testing** the project’s state as a snapshot of MauiKit3.

https://master.dl.sourceforge.net/project/nulogicos/maui-shell/ISO/manjaro-maui-shell-23.0.0-minimal-230731-linux515.iso?viasf=1

Note: Please be aware that this is an ISO image from a third party.

All of the Maui repositories have the newly release branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui

What’s new?

With this update, we have focused on publishing the comprehensive documentation for the recently ported MauiKit4 Frameworks, polishing and updating the upcoming MauiKit4 frameworks code base, and starting to get the Maui Applications into shape for the migration to MauiKit4 – all while fixing bugs, improving performance, and fine-tuning all visual details.

MauiKit3 & 4

While documenting the source code – for the ported MauiKit4 frameworks – a lot of the implementation details of the visual controls have been reviewed and refined, this has resulted in a more curated set of UI elements, performance boost, cleaner code an early addition of new features.

Controls

All of the frameworks have a new information header, with information about the module, such as version number, build version, and all of the open-source tools that are part of it.

A quick overview of the changes made include:

  • Startup optimizations for the ApplicationWindow
  • The SettingsDialog layout is now cleaner when using the accompanying SectionGroup and SectionItem controls
  • Fix regressions introduced with the dialogs now based on QQC2 Dialog component
  • The TabView overview preview thumbnails are now correctly scaled and more tab information, such as the custom color and tooltip text – are now used.
  • Lazy loading elements until they are needed resulting in small performance boost
  • The AboutDialog links are clearer without using any special styling, and some parts have been refactored for a cleaner source code
  • Fixes to the GridBrowserDelegate and ListBrowserDelegate checkable state

Terminal, TextEditor & FileBrowsing

The FileDialog issues on mobile devices with the single click preference have been solved. Another bunch of small fixes include fixes to the dialog buttons, the FileBrowser action dialogs, information about tag locations, and the addition of more methods to the file management classes.

MauiKitTerminal now exposes more interface properties for handling processes that have gone silent, and functions to correctly change the current working directory.

Documents, Accounts, Calendar &ImageTools

Added the header with module information, and started the porting work.

And, as for MauiKit4:

  • The Holder control can now have an image source as the emoji
  • Many corrections in the QML syntax for the definition of catching signals.
  • The SettingsDialog is now a detached window on desktop environments
  • Added a new control DialogWindow and BaseWindow, from which ApplicationWindow now inherits. The new DialogWindow is correctly set as a dialog window and it’s modal.
  • Simplify the implementation of controls, such as the InputDialog
  • Fixes to CSD buttons controls, and now respects hints of no resizable windows or windows that should not be minimized.
  • Added a build flag `-DBUILD_DEMO=ON` for building or skipping the MauiKit4 demo app.
  • Added documentation to the sources and example files for all the visual controls
  • The SectionItem has been changed into two different variants: SectionItem and FlexSectionItem, more information about their use cases is in the documentation linked in the section below
  • Some of the previously public types that were only part of the implementation have now become private, such as the SideBar for the SideBarView

MauiKit4 Documentation

Documentation has been published for the ported MauiKit4 frameworks, as part of the migration plan. As new frameworks get ported, the accompanying documentation will be published. You can find the documentation online at https://api.kde.org/mauikit/index.html

At the time of this release, the following frameworks have now been fully documented, and have a comprehensive list of example source files:

The documentation effort also resulted in a complete set of example source files, which can be used for interested users to quickly hack and learn about MauiKit4, and for testers – and unit tests, to monitor all parts are functional.

If you are interested in contributing to the project, or in developing a MauiKit-based application, and you find any issues, bugs about the documentation text readability, or any other comments, please feel free to open a bug report on the corresponding repository issues page, and/or joining us at our telegram public chat group, where any concerns or questions will be answered promptly.

MauiKit3 Apps

Among specific new features and updates listed below, all of the Maui apps have been updated to the latest MauiKit3 changes, which also include fixes to some regressions introduced in the porting to MauiKit4 – and have also received an initial set of tweaks to get ready for their migration to MauiKit4.

Fix regression to the new dialogs versus the previous implementation.

Updated translations to multiple languages, thanks to the KDE community.

Index, Vvave & Shelf

Index now allows previewing files by default instead of opening them in an external application, and the dialog can be detached on desktop environments. Some UI elements have been improved to be loaded only when needed.

In Index, the previewer model is now independent of the current directory model, and the previews of videos and audios now have a playback button for pausing and resuming.

The albums and artist view in Vvave, now display a quick play button on hovering over the cover, to quickly start playing a full album or artist collection.

Shelf correct browsing by categories.

Clip, Nota & Station

The alerts on Station, for inactive or silent processes are now optional and exposed in the settings dialog. Now the last session can be restored if preferred.

For Nota, the crashing issues on Android have been addressed. Menus and other elements are now being lazy-loaded, making the app quicker. Also, menus have been revised and the mobile contextual menu is now correctly working.

Fiery, Buho & More

Fiery now has detachable tabs.

Maui Shell

Cask, Maui Settings & More

The session startup manager now has been fully ported to Qt6 and it’s working correctly.

Many fixes were done to the Cask panels and dock, fixing regressions introduced in the migration to MauiKit4. This is still a work in progress and more development will go into this for the upcoming release of the Shell in February.

2024 Roadmap

For the upcoming release scheduled for February, most of the work will go into the Shell and its sub-projects, as decided in the release chronogram, however, this will also be the time when the remaining MauiKit frameworks will be ported from Qt5 to Qt6, those include Documents, Terminal,ImageTools, TextEditor, Accounts.

It is expected that most of the Maui Applications will be ported to MauiKit4 Frameworks and Qt6, for their new release around May 2024. And by August release it is expected that all of the Maui Project has been successfully migrated to Qt6.

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 schedule

 

The post Maui Release Briefing # 4 appeared first on MauiKit — #UIFramework.

Wednesday, 29 November 2023

KDiagram is two powerful libraries (KChart, KGantt) for creating business diagrams.

Version 3.0.0 is now available for packaging.

It moves KDiagram to use Qt 6. It is co-installable with previous Qt 5 versions and distros may want to package both alongside each other for app compatibility.

URL: https://download.kde.org/stable/kdiagram/3.0.0/
SHA256: 6d5f53dfdd019018151c0193a01eed36df10111a92c7c06ed7d631535e943c21

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell jr@jriddell.org
https://jriddell.org/esk-riddell.gpg

KWeatherCore is a library to facilitate retrieval of weather information including forecasts and alerts.

0.8.0 is available for packaging now

URL: https://download.kde.org/stable/kweathercore/0.8.0/
SHA256: 9bcac13daf98705e2f0d5b06b21a1a8694962078fce1bf620dbbc364873a0efeS
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>
https://jriddell.org/esk-riddell.gpg

This release moves the library to use Qt 6. It is not compatible with older Qt 5 versions of the library so should only be packaged when KWeather is released or in testing archives.

Tuesday, 28 November 2023

In the third installment of Off-Theme, we cover Shades of Purple, a global theme with a rather striking set of shades that sets it apart from many other flat themes.

Monday, 27 November 2023

We're happy to announce the new release 5.12.0 of KPhotoAlbum, the KDE photo management program!

20 years KPhotoAlbum

This is some kind of "special" release, as exactly 20 years ago, on 2003-11-27, version 1.0 was tagged (we tagged this release already on saturday, so that it will hit the mirrors and we can publish this release announcement at this very date though ;-).

20 years is quite a long time for such a "small" FLOSS project. Enough times, nice programs die from bit rot, because the only dev or too many of the few lose interest in it, don't need it anymore and/or nobody wants to take over maintainership. Happily, this is not the case for KPA! After all these years, the project is still alive and kicking, and – when the family, the job and everything else allow it (after all, we're all not fulltime KPA devs), we work on it to make it better.

Just speaking of me, I joined the project back in 2014, almost ten years ago now (which is arguably also quite a long period of time). And I'm really proud to still be a part of this great project :-)

So, I think it's time to especially thank Jesper Pedersen for initiating the project back then, and Johannes Zarl-Zierl for taking over the maintainership and being the project leader since 2019! Joyfully, Jesper never really stopped contributing to KPA and still works on it until now.

After all, we're still – without too much self-laudation – a small but excellent crew of FLOSS enthusiasts ;-)

But about the release itself:

What's new?

Bugfixes

Most notably, we could fix a really big amount of crashes and unexpected behavior. The following bug reports could be closed as "fixed": #472427, #472523, #473231, #473324, #473587, #473762, #474151, #474392, #475387, #475388, #475529, #475585, #476131, #476561, #476651, #476862 and #477195. That's quite an impressive list, isn't it?!

Kudos to our new super-diligent beta tester Victor Lobo for filing 17 of those bug reports alone, always providing meaningful information about how to reproduce the issue and tirelessly testing the fixes. Thank you! As a dev, you really appreciate this! Apart from that, also big thanks to Pierre Etchemaïté and Andreas Schleth for providing equivalently excellent bug reports!

Thanks to you all for helping making KPhotoAlbum better!

New features and changes

Apart from that, there are also some new interesting features:

  • Support annotating images from the viewer by using letters to assign tags. Use the context menu and select "Annotate | Assign Tags" to enable. More information is available in the KPhotoAlbum handbook.
  • Add option to sort category page by natural order (feature #475339). Natural sort order takes the locale into account and sorts numeric values properly (e.g. sort "9" before "10").
  • Allow selecting a date range in the DateBar via keyboard (Use "Shift + Left|Right")
  • Allow closing the annotation dialog's fullscreen preview using the Escape key.

… as well as sone changes:

  • In the viewer window, using the letters A-Z to assign tokens now needs to be explicitly enabled. You can do this by opening the context menu and selecting "Annotate | Assign Tokens".
  • When KPhotoAlbum is started in demo mode and a previously saved demo database exists, the old demo database is no longer overwritten.
  • The ui.rc file (kphotoalbumui.rc) is now deployed as a Qt resource instead of an on-disk file.
  • Improved usability of "Invoke external program" menu (#474819)
  • No longer set the default shortcut for "Use current video frame in thumbnail view" to Ctrl+S and avoid shortcut conflict.
  • Restrict context menu entries for fullscreen preview of annotation dialog to a sane set of actions.
  • It is no longer possible to annotate images from the viewer by pressing "/" and typing tag names.
  • It is no longer possible to change an image through the annotation dialog's fullscreen image preview.

Thanks to everybody involved!

According to git, the following individuals pushed commits:

  • Yuri Chornoivan
  • Friedrich W. H. Kossebau
  • Nicholas Leggiero
  • Tobias Leupold
  • Alexander Lohnau
  • Scarlett Moore
  • Jesper K. Pedersen
  • Johannes Zarl-Zierl

Thanks for spending your time with coding on KPA and for contributing your work!

Have a lot of fun with the new release, and keep KPA the best photo management program out there, also for the 20 years to come :-)

— Tobias

We’re already in November, but I managed to do a lot of work this month which I’m really happy about.

Quickly something that’s not strictly programming: I was accepted as a member of KDE e.V. early this month, thank you all very much! I was also given moderation powers on Discuss so maybe it will stop rate limiting me when moving posts around.

I also went on a crusade of merging and triaging merge requests on Invent, which some of you might’ve seen. Notably I was able to take care one or two pages worth of open MRs, which I’m really happy about.

Without further ado, let’s begin.

Plasma

[Feature] Merged the Game Controller KCM into Plasma, starting with a simple rewrite in QML. I’m aiming to add back the visual representation in 6.1 (which still exists in the standalone repository if you want to take a shot at it.) At least for right now the code is much better and it supports more devices than the 5.X Joystick KCM ever could. [6.0]

The new and not much improved Game Controller KCM

My hope is that since it’s much cleaner and easier to work with, it would invite more contributors… and it’s already doing that as we speak! :-)

NeoChat

[Feature] Blockquotes now look more like quotes, and no longer just somewhat indented blocks of text. [24.02]

New blockquote stylings

[Bugfix] You can now right-click (or long tap) on rooms to access the context menu without switching to it. I gave the treatment for spaces a while back. [24.02]

[Feature] Added UnifiedPush support! It’s functional already and I have used it to receive push notifications even when NeoChat is closed. [24.02]

Tokodon

[Feature] I merged the post redesign I was teasing on Mastodon, which includes better margins and standalone tags. [24.02]

The new post design, which includes standalone tags!

[Feature] The language selector is now a regular dialog and not the buggy custom combo box we had before. It now displays the native language name, if available. [24.02]

The new language selector

[Feature] Muting and blocking users has been accessible through profile pages, and now those actions are present in the post menu like on Mastodon Web. Useful for taking action against harmful users without navigating to a cesspool of a profile too. [24.02]

[Feature] Added a report dialog. It’s a little basic right now, which I want to improve before release. [24.02]

The new report dialog

[Feature] Rebased and merged Rishi’s Moderation Tool, which works fantastic and I used this to test my reporting feature! [24.02]

[Feature] Added a way to filter out boosts and replies from timeline pages. [24.02]

New filter controls

[Feature] Added supports for lists. You can’t add people to lists (you must use another client to do that) but you can at least view and manage them. [24.02]

New list management

Kiten

[Bugfix] Marked the X11 socket as fallback. This removes a warning on the Flathub page about the deprecated windowing system. [23.08]

Now the Flathub page is all green!

[Bugfix] Numerous UI improvements, such as improving the margins of configuration dialogs. I also redid the toolbar layout. [24.02]

The new toolbar layout

[Feature] Added a search function to the Kanji browser. [24.02]

Kirigami

[Bugfix] Fixed an edge cases of ToolBar incubation, which liked to spam logs. I squashed some other log spam, so Kirigami applications should be less noisy. [6.0]

[Feature] Added a property to FlexColumn that allows you to read the inner column’s width. We use this in Tokodon to set the width of the separator between posts. [6.0]

Craft

I’m getting addicted to fixing Craft recipes, and there’s a lot to fix in the upcoming 6.0 megarelease:

KUnifiedPush

[Feature] Improved the look of it’s KCM. Not only does it look nice, and it’s design is more in line with other list based ones.

The new look for the Push Notifications KCM!

PlasmaTube

[Feature] Added better hover effects for video items. I did a bunch of refactoring to unify the two types (list and grid) so they work better in general (especially for keyboard-only navigation.) [24.02]

[Feature] Added a video queue system, which is exactly what you think it is. You can queue up an entire playlist, or add videos manually like on YouTube. [24.02]

[Feature] Different types of search results is supported now, so you can find channels and playlists. [24.02]

[Feature] Public Piped instances are now fetched and displayed on initial setup. [24.02]

[Feature] Features of PlasmaTube that are unsupported by the current video source are now disabled or hidden. This should result in less buggy and broken looking behavior depending on which video source you use. [24.02]

[Feature] Added support for MPRIS, which is used by the Media Player applet, the lockscreen and KDE Connect. [24.02]

Accessibility

[Bugfix] Fixed our spinboxes not being read correctly by screen readers, since they were editable by default. Now the accessible descriptions and other data is passed down to the text field. Fixed in QQC2 Desktop Style (used on Plasma Desktop) and QQC2 Breeze Style (Plasma Mobile and Android.) [6.0]

Documentation

Found lots more missing Bugzilla links in Invent, and did some more README updating!

KWeather

[Bugfix] Fixed the setup wizard. [24.02]

Upcoming

[Feature] Not merged yet, but I’m adding a pen calibration tool to the Tablet KCM. If you have the required equipment and can test, please help out! It’s cutting it close to the feature freeze, so this will most likely be pushed off until 6.1.

The new calibrator

See you in December!

Friday, 24 November 2023

Hello, RHI – How to get started with Qt RHI

For some time now, Qt has been internally utilizing RHI (Rendering Hardware Interface), a new cross-platform technology for graphic rendering. Since Qt 6.6, this API has been semi-public, meaning that the API is mature for practical use but may still be subject to potential changes between major Qt versions.

In this blog post, we demonstrate how to to get started with RHI.

Continue reading Hello, RHI – How to get started with Qt RHI at basysKom GmbH.

Tuesday, 21 November 2023

Fedora 39 has been released! 🎉 So let’s see what comes in this new release for the Fedora Silverblue, Kinoite, Sericea and Onyx variants. This post is a summary of the “What’s new in Fedora Silverblue, Kinoite, Sericea and Onyx?” talk I did with Joshua Strobl for the Fedora 39 Release Party (see the full slides).

What’s new?

Welcome to Fedora Onyx!

Fedora Onyx is a new variant using the Budgie desktop, with a (nearly) stock experience. It follows up on the Fedora Budgie Spin which has been introduced in Fedora 38.

The experience is similar to other Fedora Atomic Desktops (what’s that? see below 🙂): ships toolbx out-of-the-box and access to Flatpaks.

We will hopefully re-brand it from “Onyx” to “Fedora Budgie Atomic” and later aspire at having the Atomic variant be the “Fedora Budgie” and have the “mutable” spin be re-branded.

Fedora Atomic Desktops

We have created a new Special Interest Group (SIG) focused on (rpm-)ostree based desktop variants of Fedora (Silverblue, Kinoite, Sericea and Onyx). The “Fedora Atomic Desktops” name will also serve as an umbrella to regroup all those variants under a common name.

Note that the new name is still pending approval by the Fedora Council. A Fedora Change Request has been opened to track that for Fedora 40.

We will progressively centralize the work for this SIG in the fedora/ostree GitLab namespace. We already have an issue tracker.

What’s new in Silverblue?

Silverblue comes with the latest GNOME 45 release. Loupe replaces Eye of GNOME (EOG). For now, the new Flatpaks are not automatically installed on updates so you will have to replace EOG by Loupe manually.

Fedora Flatpaks are now available ppc64le and included in the installer.

For more details about the changes that comes with GNOME 45, see the What’s new in Fedora Workstation 39 on the Fedora Magazine.

Update (2024-03-29): See also Fedora Workstation 39 and beyond from Christian F.K. Schaller.

What’s new in Kinoite?

Kinoite stays on Plasma 5.27. Plasma 6 is coming for Fedora 40.

A subset of KDE Apps is now available as Flatpaks from Fedora. They are built from Fedora RPM source and build options and are also available for all releases (not just the latest) and even other distributions due to the nature of Flatpaks.

Thanks a lot to Yaakov Selkowitz and the Flatpak SIG for making this happen!

With the Flatpaks being available in the Fedora remote, we have removed some apps from the base image: Okular, Gwenview, Kcalc. The Flatpaks are not installed on updates but you can install them from the Fedora Flatpak remote or from Flathub.

Fedora Flatpaks will be installed by Anaconda by default for new installations in Fedora 40.

What’s new in Sericea?

No major changes this release.

rpm-ostree unified core

Ostree commits are now built via rpm-ostree unified core mode. The main benefits are cleanups and stricter build constraints (that sometimes surface bugs in RPMs). This is also how Fedora CoreOS is being built right now.

This change should be completely transparent to users.

This is needed to get bootupd support and a step towards moving to ostree native container images (discussed below).

What’s next?

bootupd support

Adding bootupd support to Atomic Desktops will finally let users easily update their bootloader on their systems (issue#120). We needed the commits to be built using rpm-ostree unified core mode, which is a change that landed in Fedora 39.

We are now waiting on Anaconda installer fixes that are in progress. This should hopefully land in Fedora 40.

Ostree Native Containers

The idea behind Ostree Native Containers is to package ostree commits as OCI containers. The main benefits are:

  • OCI containers are easier to manage, deploy and mirror than ostree repos
  • It makes it possible to create derived images via a Containerfile/Dockerfile
  • As it is a regular container, you can inspect its content, scan it for vulnerabilities or run it like a container
  • Signing is made easier via support for cosign/sigstore

You can take a look at the following examples that take advantage of this functionality:

Work is currently in progress to add support to build those images via Pungi. Initially, they will be built alongside the current ostree commits. This is currently planned for Fedora 40 (the change page needs to be updated / rewritten).

We will be looking at fully transitioning to containers in a future release.

Universal Blue, Bluefin and Bazzite

Those projects build on the in-progress support for the Ostree Native Containers format and the Fedora Atomic Desktops images. All the changes that are included are made via Containerfiles/Dockerfiles.

They include lots of options, offer a wide choice of images, include additional fixes, enable more platform support, UX fixes, etc.

Universal Blue is the general project, Project Bluefin is the developer focused one and Bazzite is focused on gaming, including on the Steam Deck and other similar devices.

Check them out!

Support for Asahi Linux?

Help us make that happen! One notable missing part is support in Kiwi (issue#38) to build the images. See Fedora Asahi Remix for more details.

Where to reach us?

We are looking for contributors to help us make the Fedora Atomic Desktops the best experience for Fedora users.

Sunday, 19 November 2023

This weekend Sofia and I celebrated her birthday with her family. Lars Winnerbäck, Wicked at the opera and a wonderful dinner at Natur.

There are plenty of articles about different remote set ups written by people who work remotely, as I have been for many years now. As a home based but frequent short-term traveller kind of remote worker I have 3 basic set ups: Use case Frequently I travel to a specific destination for a week or … Continue reading My remote office set up