Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Thursday, 16 January 2025

Kirigami Addons is a collection of additional components for Kirigami applications. 1.7.0 is a relatively big release bringing a new convergent component for context menus as well as various quality of life APIs to existing components.

ConvergentContextMenu

This release bring a new component which wraps the tradional context menu Controls.Menu provided by Qt and on mobile will instead displays a BottomDrawer with the list of actions.

Using it, is really easy:

import QtQuick.Controls as Controls
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.components as Components
import org.kde.kirigamiaddons.formcard as FormCard

Components.ConvergentContextMenu {
 id: root

 // Only visible on mobile to show a bit of information about the selected element
 headerContentItem: RowLayout {
 spacing: Kirigami.Units.smallSpacing

 Kirigami.Avatar { ... }

 Kirigami.Heading {
 level: 2
 text: "Room Name"
 }
 }

 Controls.Action {
 text: i18nc("@action:inmenu", "Simple Action")
 }

 Kirigami.Action {
 text: i18nc("@action:inmenu", "Nested Action")

 Controls.Action { ... }

 Controls.Action { ... }

 Controls.Action { ... }
 }

 Kirigami.Action {
 text: i18nc("@action:inmenu", "Nested Action with Multiple Choices")

 Kirigami.Action {
 text: i18nc("@action:inmenu", "Follow Global Settings")
 checkable: true
 autoExclusive: true // Since KF 6.10
 }

 Kirigami.Action {
 text: i18nc("@action:inmenu", "Enabled")
 checkable: true
 autoExclusive: true // Since KF 6.10
 }

 Kirigami.Action {
 text: i18nc("@action:inmenu", "Disabled")
 checkable: true
 autoExclusive: true // Since KF 6.10
 }
 }

 // custom FormCard delegate only supported on mobile
 Kirigami.Action {
 visible: Kirigami.Settings.isMobile
 displayComponent: FormCard.FormButtonDelegate { ... }
 }
}

Icons on Android

Kirigami Addons components are using some breeze icons which needs to be packaged manually on android by calling kirigami_package_breeze_icons with the icons used. Now Kirigami Addons, provides a Cmake variable KIRIGAMI_ADDONS_ICONS listing all the icons used by Kirigami Addons, simplifying the maintainance work of applications to keep the list of icons used up-to-date.

kirigami_package_breeze_icons(ICONS
 ${KIRIGAMI_ADDONS_ICONS}

 // own icons
 ...
)

Shortcut Editor

Kirigami Addons’ shortcut editor can now be embedded in normal ConfigurationView via a new ConfigurationModule: ShortcutsConfigurationModule.

import org.kde.kirigamiaddons.settings as KirigamiSettings

KirigamiSettings.ConfigurationView {
 id: root

 required property TokodonApplication application

 modules: [
 ...
 KirigamiSettings.ShortcutsConfigurationModule {
 application: root.application
 },
 ]
}

 

FormCard

The FormCardPage now uses a slighly less grey to get more contrasts with the sidebar.

 

We cleaned up FormComboBoxDelegate to not relly on the applicationWindow() hack from Kirigami anymore. This fixes using FormComboBoxDelegate in Plasma Settings. Unfortunately some areas of Kirigami Addons still implicitely rely on applicationWindow() to set the parent of popups (Kirigami has a similar issue). If you are using dialogs or popup in your code, make sure to explicitely pass a valid Controls.Overlay.overlay as parent to them instead of rellying on applicationWindow() being valid all the time.

The FormCard.AboutPage now show the KDE Frameworks version in use rather than the one we built against. We are also using in the AboutKDEPage component, the same bug address as in the AboutPage component. And we fixed various other small issues with the about pages. Thanks Volker and Joshua!

Other

We now use clang-format automatically and various clang-tidy warnings were fixed. Thanks Alex!

Avatar are now loaded asynchronously which should make NeoChat, Tokodon and Merkuro list views smoother. Thank Kai! Addionally the text fallback is now only rendered as plain text, which should also be sligly faster.

The RadioSelector now uses the style from Marknote.

 

We updated the templates provided by Kirigami Addons to the latest version of the flatpak runtimes and some other minor improvements like using the new KLocalizedQmlContext.

AlbumMaximizeComponent now expose not only the currentItem from the internal view, but also the currentIndex.

The IndicatorItemDelegate and RoundedItemDelegate components are now easier to use with drag and drop interaction. You can see that in effect in last week update of Merkuro Mail.

MessageDialog now behaves better on mobile.

Packager Section

You can find the package on download.kde.org and it has been signed with my GPG key.

Haruna version 1.3.0 is out. There have been lots of code refactoring, so make sure to report any bugs you encounter. There's a "Report bug" menu entry under the "Help" menu or in settings in the about page.

The default actions for left and right mouse buttons have changed: left click is now play/pause and right click opens the context menu. Actions can be changed in settings in the Mouse page.

Another setting whose default changed is the Start playing setting which is now on by default.

Start playing controls the playback state, playing or paused, when restoring the position of the file.


flathub logo

Windows version:

Availability of other package formats depends on your distro and the people who package Haruna.

If you like Haruna then support its development: GitHub Sponsors | Liberapay | PayPal

Feature requests and bugs should be posted on bugs.kde.org, ignoring the bug report template can result in your report being ignored.


Changelog

1.3.0

Features
  • Changed the settings related to restoring the playback position, if you changed the defaults you might have to redo them
  • Playlist: added context menu entries for non local urls to be opened in the browser and to be removed (from the playlist)
  • Added setting (in General) to start app in fullscreen
  • Added setting (in Subtitles) to control subtitle auto selection
  • Changed left and right mouse button default actions: left click is now play/pause and right click opens the context menu. Actions can be changed in settings Mouse page
  • Dragging the seek/progress bar will update the main view as well as the seekbar preview
  • Decreased the minimum window size
  • Replaced hardware decoding checkbox with an option in the hardware decoding combobox/drop-down
Bugfixes
  • Improved scrolling performance of playlist, shortcuts and seekbar's chapters menu
  • Fixed issue with setting shortcuts with modifier keys (ctrl, alt etc.)
  • Fixed active audio and subtitle tracks not being correctly checked
  • Removed empty header toolbar from settings window
  • Fixed a bug where the app would freeze when loading a file with lots of tracks
  • Improved menubar animation
  • The floating footer now hides when the mouse leaves the app

Welcome to the @Krita-promo team's December 2024 development and community update.

Development Report

Krita 5.2.9 Coming Soon

After taking some time off for the holidays, the team is getting ready to start the year with a new bugfix release. This will contain all the stable fixes from the community bug hunt and more, so stay tuned!

Community Report

December 2024 Monthly Art Challenge Results

For the "Tropical" theme, 16 members submitted 23 original artworks. And the winner is… Tropical vibes by @steve.improvthis, with three entries.

Spotted Eagle Rays by @steve.improvthis
Be sure to check out the other two artworks in the link as well!

The January Art Challenge is Open Now

For the January Art Challenge, @steve.improvthis has chosen "Magical Adventure" as the theme, with the optional challenge of choosing a point of visual focus. See the full brief for more details, and embark on a fantastical new journey.

Best of Krita-Artists - November/Decemeber 2024

Six images were submitted to the Best of Krita-Artists Nominations thread, which was open from November 14th to December 11th. When the poll closed on December 14th, these five wonderful works made their way onto the Krita-Artists featured artwork banner:

Kurzschwardzenbuglen Nature Sanctuary by @Yaroslavus_Artem

Kurzschwardzenbuglen Nature Sanctuary by @Yaroslavus_Artem

Speedpainting 01122024 by @SylviaRitter

Speedpainting 01122024 by @SylviaRitter

Magicians Room by @Ape

Magicians Room by @Ape

Princess Mipha by @ynr_nohara and @zeki

Princess Mipha by @ynr_nohara and @zeki

[otsoa] Finished illustrations by @onde_hurlante

Corbeau by @onde_hurlante

Ways to Help Krita

Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors.

Visit Krita's funding page to see how user donations keep development going, and explore a one-time or monthly contribution. Or check out more ways to Get Involved, from testing, coding, translating, and documentation writing, to just sharing your artwork made with Krita.

The Krita-promo team has put out a call for volunteers, come join us and help keep these monthly updates going.

Notable Changes

Notable changes in Krita's development builds from Dec. 12 - Jan. 16, 2024.

Stable branch (5.2.9-prealpha):

  • Filters: Fix compatibility of Per-Channel filter with files from before Krita 5.1. (bug report) (Change, by Dmitry Kazakov)
  • General: Improve pattern icon rendering. Fix pattern preview scale. Fix aspect ratio of resource tooltips. (Change, by Freya Lupen)
  • File Formats: JPEG XL: Fix unable to set EPF value to -1 (encoder chooses) on export. (Change, by Rasyuqa A H)
  • G'MIC Filters: Update to latest version of G'MIC, 3.5.0.1. (Change)

Unstable branch (5.3.0-prealpha):

Bug fixes:

  • Brush Engines: Fix a regression causing opacity to be multiplied twice in some brush engines (Curve, Clone, Deform, Hairy, Hatching, Sketch, and Spray) since 5.2.0. (bug report) (Change, by Dmitry Kazakov)
  • Color Management: When Softproofing, use Blackpoint Compensation if enabled. (Change, Wolthera van Hövell)
  • Edit Shapes Tool: Fix first click on node being ignored. (bug report) (Change, by Dmitry Kazakov)
  • Edit Shapes Tool: Change "break path" shortcut in Shape Edit Tool to Ctrl+B to avoid conflict with the default Brush Tool shortcut B.(bug report) (Change, by Dmitry Kazakov)

Features:

  • General: Fix regressions in Bundle Creator. Fix regressions of resource icons. (Change, by Freya Lupen)
  • General: Add setting in General->Miscellaneous to make 'Copy of' on duplicated layer name optional. (Change, by Freya Lupen)

Nightly Builds

Pre-release versions of Krita are built every day for testing new changes.

Get the latest bugfixes in Stable "Krita Plus" (5.2.9-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Wednesday, 15 January 2025

I run Home Assistant Core on a Raspberry Pi. I installed it in a Python venv and now and then I feel a need to upgrade. Today was such a day.

So, having backed everything up, I went for the plunge. Let’s install version 2025.1.2.

The usual dance goes a bit like this:

sudo systemctl stop homeassistant
sudo su homeassistant
cd /opt/homeassistant
source bin/activate
pip install --upgrade homeassistant
exit
sudo systemctl start homeassistant

Then all the dependencies are installed, so I usually go for a coffee, and once things have settled down (I use top to check that the system is idle), I usually restart homeassistance, just to make sure that it stops and starts nicely.

This time, I had no such luck. Lots of little issues. The major one seemed to be that import av in one of the core modules suffered from some sort of ValueError exception.

Having duckducked the issue for a while, I realized this meant that I had to do the upgrade from Python 3.12 to 3.13. Upgrading va to version 14.x using pip does not help. Since I always forget how to do this, I’m now writing this blog post.

Recollecting the steps, the moves are, more or less these:

sudo apt-get install python3.13 python3.13-venv python3.13-dev
sudo systemctl stop homeassistant
sudo su homeassistant
cd /opt/homeassistant
mkdir old
mv bin/ cache/ include/ lib/ lib64 LICENSE pyvenv.cfg share/ old
python3.13 -m venv .
source bin/activate
pip install homeassistant
exit
sudo systemctl start homeassistant

Again, restarting Home Assistant takes a while and a bit more since all the dependencies are built. Go grab a snack or just a quiet coffee and, viola, you will end up with a fresh install of Home Assistant version 2025.1.2

Qt Network Authorization module was released 8 years ago in Qt 5.8. Since those days, the role and use of OAuth2 has grown significantly.  Today, many people use OAuth2 in one form or another; be it by clicking a “Sign-in with ...” button or allowing your favorite online drawing application to store the results on your cloud drive. 

Tellico 4.1 is available, with some improvements and bug fixes. This release and any subsequent bugfix dot releases (such as 4.1.1) will be the last ones that build with Qt5.

Improvements

  • Improved image loading to be on-demand only, improving load time for local and remote images (Bug 490922).
  • Redesigned the welcome screen.
  • Added option to disable the welcome screen.
  • Added property to disable line feed replacement in Paragraph fields.
  • Added tooltips in the Settings for configured image location.
  • Added a tooltip to show the internal field name for custom fields.
  • Tweaked the report templates to follow color settings.
  • Added option to disable building of documentation.
  • Improved logging for data searches.

Bug Fixes

Tuesday, 14 January 2025

The first maintenance release of the 24.12 series is out packed with important fixes and enhancements. This update focuses on polishing the newly introduced built-in effects, resolving issues with bin effects and the effect stack, and addressing some recently introduced crashes. Other highlights include fixing an issue where hiding a track in a sequence could alter the length of the parent sequence, ensuring tags and markers are maintained when reloading proxy clips, fixing Whisper model downloads and installation of Python virtual environment (venv) issues on some Linux distributions.

Full changelog:

  • Ensure sequence clips in timeline are not resized to smaller when hiding a track. Commit. Fixes bug #498178.
  • Fix crash moving build-in effect with feature disabled. Commit.
  • Fix crash saving effect stack. Commit. Fixes bug #498124.
  • Fix layout order with > 9 layouts. Commit.
  • Fix use after free from last commit. Commit.
  • Fix reload or proxy clip losing tags, markers, force aspect ratio. Commit. Fixes bug #498014.
  • Fix bin clips effects sometimes incorrectly applied to timeline instance. Commit.
  • Fix typo. Commit. Fixes bug #497932.
  • Fix title widget braking text shadow and typewriter settings. Commit. Fixes bug #476885.
  • Math operators not supported in xml params. Commit. Fixes bug #497796.
  • Fix track resizing. Commit.
  • Fix bin effects cannot be removed from timeline instance. Commit.
  • Fix crash trying to move bin effect before builtin effect. Commit.
  • Fix venv packages install on some distros. Commit.
  • Fix Whisper models download. Commit.
  • Fix delta display when resizing clip, add duration info when resizing from start. Commit.
  • Fix line return when pasting text with timecodes inside project notes. Commit.
  • Fix transparent rendering ffv1 profile. Commit.
  • Bring back presets to build in effects. Commit.

The post Kdenlive 24.12.1 released appeared first on Kdenlive.

Monday, 13 January 2025

If you’re old enough, you probably remember that there was a meme from the 4.x days is that Plasma is all about clocks.

I’ve started working on some new artwork, and ended up sidetracked spending more time designing fun clocks for Plasma than on what I planned to work on, proving there’s some truth to the meme.

These are based on one of the coolest watch designs I’ve seen in recent years – a Raketa Avant Garde:

Clocks
Clocks

Sunday, 12 January 2025

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

This week we look at the usability improvements landing in Alligator, Dolphin, and Itinerary; new features for KMyMoney, Tokodon and NeoChat; and updated versions of Amarok and Skrooge.

Alligator RSS feed reader

You can now mark one feed or all feeds as read (Mark Penner, 25.04.0. Link), and save the settings when the application is suspended (Mark Penner, 24.12.3. Link).

Amarok Rediscover your music

Amarok 3.2.1 is out with a more complete Qt6 support and some small UI bug fixes. You can find the full announcement on Amarok's development Squad blog.

Note that this version is still marked as experimental.

Arianna EBook reader

Arianna will once again remember the current reading progress of your books with the new backend. (Ryan Zeigler. 25.04.0. Link)

It is now possible to add multiple books in your library at the same time. (Onuralp SEZER, 25.04.0. Link)

Dolphin Manage your files

Dolphin now visually elides the middle portion of long file names rather than the end. So rather than Family Gathering 2….jpg you might see Family Gath…ng 2018.jpg. Depending on your naming schemes, this might be a good or a bad change for you, so sorry in advance if it affects you negatively, but on average it should be an improvement (Nate Graham, 25.04.0. Link 1).

The right-click context menu in the Trash had the "Restore" action right next to the "Delete" action, which made it easy to accidentally click the opposite of what you wanted leading to data loss. This week Nate moved the "Delete" action to the very end of the menu so this no longer happens. Also the "Restore" wording was changed to "Restore to Former Location" for clarity (Nate Graham, 25.04.0. Link 1).

Felix fixed a regression in Dolphin 24.12.0 on X11 which caused the keyboard focus to move to the Places or Terminal panels when Dolphin is minimized and then unminimized (Felix Ernst, 24.12.2. Link).

KDE Itinerary Digital travel assistant

The Itinerary team improved travel document extractors for Bilkom and PKP PDF tickets (Grzegorz Mu, 24.12.2. Link 1 and link 2), International Trenitalia ticket barcodes (Volker Krause, 25.04.0. Link), and the Danish language support for Booking.com (Volker Krause, 24.12.3. Link).

The team also switched the querying public transport information feature from Deutsche Bahn to a new API after the previous one was disabled. This unfortunately results in the loss of some previously available trip information (Volker Krause, 24.12.2. Link).

Note that this same issue affects KTrip and for the same reason.

Keysmith Two-factor code generator for Plasma Mobile and Desktop

It's now possible to import accounts via otpauth:// URIs in QR codes (Jack Hill, 25.04.0. Link).

KDE Connect Seamless connection of your devices

The list of devices in the sidebar is now properly scrollable (Christoph Wolk, 25.04.0. Link).

Kdenlive Video editor

The scaling algorithm has been improved and now, when you zoom, individual pixels without blur are clearly displayed (Jean-Baptiste Mardelle, 24.04.0. Link).

Note that this change is currently only available on Linux.

KMyMoney Personal finance manager based on double-entry bookkeeping

Thomas added a new feature that shows paid out dividends in investment reports and in the calculation of returns (Thomas Baumgart. Link), and Ralf added a column showing the annualized return in the investment performance reports (Ralf Habacker Link).

LabPlot Interactive Data Visualization and Analysis

Israel made it possible for LabPlot to read the value generated by a formula from a cell instead of the formula text iself when importing data from Excel files (Israel Galadima. Link).

Merkuro Mail Read and write emails

The email lists in Merkuro Mail now supports selecting multiple emails at once, dragging and dropping and keyboard navigation (Carl Schwan, 25.04.0. Link 1 and link 2).

It's also now possible to move or copy emails to another folder manually.

NeoChat Chat on Matrix

Joshua implemented requests for user data erasure (Joshua Goins, 25.04.0. Link) and Carl fixed the bug that stopped the context menu froma appearing in the maximized image preview (Carl Schwan, 24.12.3. Link).

Skrooge Single-entry bookkeeping for home use

The Skrooge Team announced the release of version 25.1.0 of its Personal Finances Manager. This is the first version ported to Kf6/Qt6. You can find the full announcement here.

Tokodon Browse the Fediverse

Joshua improved the compatibility with GoToSocial servers even more (Joshua Goins, 25.04.0. Link) and also made it possible to share an account handle via a QR code (Joshua Goins, 25.04.0. Link).

Meanwhile Carl ported the remaining menus from Tokodon to the new convergent alternative (Carl Schwan, 25.04.0. Link).

Packaging

We updated the Craft packages to use Qt 6.8.1 and KDE Frameworks 6.10.0.

…And Everything Else

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

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

Get Involved

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

You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things.

You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world.

To get your application mentioned here, please ping us in invent or in Matrix.

In the latest Plasma 6.3 Beta, you will find a new executable named kcursorgen in /usr/bin. It can convert an SVG cursor theme to the XCursor format, in any sizes you like. Although this tool is intended for internal use in future Plasma versions, there are a few tricks you can play now with it and an SVG cursor theme.

(Unfortunately, the only theme with the support that I know, besides Breeze, is Catppuccin. I have this little script that might help you convert more cursor themes.)

Requirements

  1. The qt6-svg library.
  2. The xcursorgen command, usually found in xorg-xcursorgen package.

Trick 1: Cursors at any size you like

You should be able to set any cursor size with SVG cursors, right? Well, not at the moment, because:

  1. Only those apps using the Wayland cursor shape protocol would be using SVG cursors. Other apps still use the XCursor format, with a limited list of sizes.
  2. Plasma's cursor setting UI hasn't been updated to allow arbitrary sizes.

But we can do it manually with kcursorgen. Take Breeze for example:

Step 1: Make a copy of the theme

First, copy the cursor theme to your home directory. And let's change the directory name, so the original one is not overriden:

mkdir -p ~/.local/share/icons
cp -r /usr/share/icons/breeze_cursors ~/.local/share/icons/breeze_cursors.my

Then open ~/.local/share/icons/breeze_cursors.my/index.theme in the editor. Change the name in Name[_insert your locale_]= so you can tell it from the original in the cursor settings.

Step 2: Regenerate the XCursor files

For example, if we want a size 36 cursor, and the display scale is 250%:

cd ~/.local/share/icons/breeze_cursors.my
rm -r cursors/
kcursorgen --svg-theme-to-xcursor --svg-dir=cursors_scalable --xcursor-dir=cursors --sizes=36 --scales=1,2.5,3

Some Wayland apps don't support fractional scaling, so they will round the scale up. So we need to include both 2.5 and 3 in the scale list.

The above command generates XCursor at size 36, 90 and 108. Note that the max size of the original Breeze theme is 72, so this is something not possible with the original theme.

(kcursorgen also adds paddings when necessary, to satisfy alignment requirements of some apps / toolkits. E.g., GTK3 requires cursor image sizes to be multiple of 3 when the display scale is 3. So please use --sizes=36 --scales=1,2.5,3, not --sizes=36,90,108 --scales=1, because only the former would consider alignments.)

Then you can go to systemsettings - cursor themes, select your new theme, and choose size 36 in the dropdown.

(Yes, you can have HUGE cursors without shaking. Size 240.)

Yes, you can have HUGE cursors without shaking

Trick 2: Workaround for the huge cursor problem in GTK4

As explained before, Breeze theme triggers a bug in GTK4 when global scaling is used, resulting in huge cursors. It's because Breeze's "nominal size" (24) is different from the image size (32).

We can work around this problem by changing the nominal size to 32.

Step 1 is same as above. Then we modify the metadata:

cd ~/.local/share/icons/breeze_cursors.my
find cursors_scalable/ -name 'metadata.json' -exec sed -i 's/"nominal_size": 24/"nominal_size": 32/g' '{}' \;
rm -r cursors/
kcursorgen --svg-theme-to-xcursor --svg-dir=cursors_scalable --xcursor-dir=cursors --sizes=32 --scales=1,1.5,2,2.5,3

Then you can go to systemsettings - cursor themes, select your new theme, and choose size 32 in the dropdown. Cursors in GTK4 apps should be fixed now.

Extra idea: (For distro maintainers) reduce cursor theme package size to 1/10

It might be possible to only package the index.theme file and cursors_scalable directory for the Breeze cursor theme (and other SVG cursors themes), then in an postinstall script, use kcursorgen to generate the cursors directory on the user's machine.

This would greatly reduce the package size. And also you can generate more sizes without worrying about blown package size.

But the fact that kcursorgen is in the breeze package might make some dependency problems. I have an standalone Python script that does the same. (But it requires Python and PySide6.)