Plasma/Plasma 6: Difference between revisions

From KDE Community Wiki
(mention in https://invent.kde.org/plasma/kwin/-/merge_requests/4471 in user-facing changes section!)
(Re-order user-facing features section based on perceived user desire and/or awesomeness)
Line 74: Line 74:
== User-facing changes ==
== User-facing changes ==
=== New features ===
=== New features ===
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4336 Overview and Desktop Grid effect combined into one with better gestures]
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4471 Per-screen color management support on Wayland]
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4471 Per-screen color management support on Wayland]
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4044 Per-screen HDR support on Wayland]
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4044 Per-screen HDR support on Wayland]
* [https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1207 More types of default apps can be chosen]
* [https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1207 More types of default apps can be chosen]
* [https://bugs.kde.org/show_bug.cgi?id=340283 Custom sort ordering for KRunner search results]
* [https://bugs.kde.org/show_bug.cgi?id=438883 Desktop Cube effect returns]
* [https://bugs.kde.org/show_bug.cgi?id=474470 Colorblindness correction filters]
* [https://invent.kde.org/plasma/plasma-workspace/-/issues/47 Support for sound themes]
* [https://invent.kde.org/plasma/plasma-workspace/-/issues/40 New "Ocean" default sound theme]
* [https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/264 Conversion between time zones in KRunner]
* [https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/317 Islamic calendar support]
* [https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/317 Islamic calendar support]
* [https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/264 Conversion between time zones in KRunner]
* [https://invent.kde.org/plasma/powerdevil/-/merge_requests/186 Power profiles OSD]
* [https://invent.kde.org/plasma/powerdevil/-/merge_requests/186 Power profiles OSD]
* [https://invent.kde.org/plasma/plasma-workspace/-/issues/47 Support for sound themes]
* [https://bugs.kde.org/show_bug.cgi?id=447792 Display mirroring/reflection on Wayland]
* [https://invent.kde.org/plasma/plasma-workspace/-/issues/40 New "Ocean" default sound theme]
* [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3066 The Autostart KCM can now provide detailed technical information about why entries failed to start]
* [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3066 The Autostart KCM can now provide detailed technical information about why entries failed to start]
* [https://invent.kde.org/plasma/drkonqi/-/merge_requests/137 Optional automatic background crash reporting]
* [https://invent.kde.org/plasma/drkonqi/-/merge_requests/137 Optional automatic background crash reporting]
* [https://bugs.kde.org/show_bug.cgi?id=340283 Custom sort ordering for KRunner search results]
* [https://invent.kde.org/plasma/kwin/-/merge_requests/4336 Overview and Desktop Grid effect combined into one with better gestures]
* [https://bugs.kde.org/show_bug.cgi?id=474470 Colorblindness correction filters]
* [https://bugs.kde.org/show_bug.cgi?id=447792 Display mirroring/reflection on Wayland]
* [https://bugs.kde.org/show_bug.cgi?id=438883 Desktop Cube effect returns]


=== User interface changes ===
=== User interface changes ===

Revision as of 20:44, 25 October 2023

Plasma 6 is built on top of Qt 6 and is scheduled to be released in early February 2024. This page outlines important information and major changes coming in Plasma 6.

Known issues

On the KDE side:

  • Plasma 6 issues
  • Frameworks 6 issues + Plasma 6 issues
  • All Qt6-related issues across all KDE software
  • In a built-from-source dev session on top of a distro-provided Plasma 5 session, KWin effect IDs have changed, so they appear duplicated in the Effects KCM and you need to disable one of each, or else both play at the same thing and there are weird visual glitches.
  • In a built-from-source dev session on top of a distro-provided Plasma 5 session, Qt5-using QML apps don't launch because they'll try to use the KF6 Kirigami. Workaround: For those apps, create custom .desktop files with QML2_IMPORT_PATH set to the built-from-source KF5 location in the "Environment Variables" field, and an absolute path to to the built-from-source executable in the "Program" field. See also https://phabricator.kde.org/T16483.
  • In a built-from-source dev session on top of a distro-provided Plasma 5 session, all actions using KAuth are not working at the moment. Examples of such actions include changing the screen brightness and saving root-owned files in Kate and KWrite. See https://invent.kde.org/frameworks/kauth/-/merge_requests/45#note_754877.

Upstream:

How to use/test it

Developers and adventurous users are encouraged to test or even live on Plasma 6, to help get it into a releasable state faster. Before doing so, remember the rules of Plasma 6:

  • Read through the list of major bugs and only use Plasma 6 in production if none of them is a deal-breaker for you. Maintain regular backups! This is mandatory.
  • When you encounter an issue in Plasma 6 that was not present in Plasma 5, check the list of issues to see if it's already been reported. If you don't find anything, submit a bug report and add the "qt6" keyword to it.
  • If you are technically able, try to fix issues you encounter yourself.

Options for testing Plasma 6 include the following:

If you're a distro packager reading this and your distro offers a Plasma 6 ISO/repo/etc, please add it to this list in alphabetical order!

Developer-facing changes

  • PlasmaComponents 2 has been removed. All usages should be changed to their PlasmaComponents 3 equivalents.
  • Widget API has changed, and all widgets need to be ported. See the Plasma 6 widget porting guide to learn how
  • Icons in Plasma styles are no longer honored; all icons now come from the systemwide icon theme. Plasma themes should migrate their icons to their companion icon themes, if they have one. For more information, read this.
  • Icons requested by name with the -symbolic suffix will now always return a symbolic icon if the icon theme has one. Icon themes with colorful and symbolic versions of icons should suffix the symbolic versions with -symbolic. For more information, read this.
  • The first page in Welcome Center can now be customized. See the README file at https://invent.kde.org/plasma/plasma-welcome for details on how to do this.
  • The location on disk where Welcome Center finds custom pages has changed to /usr/share/plasma/plasma-welcome/extra-pages/.

User-facing changes

New features

User interface changes

Changes to default settings

(i.e. all of these things can be changed back if you don't like them)

Removals

Work that's been decided on but not implemented yet

In progress

Not started yet

Packaging notes

This section is aimed at packagers/distributors for information about correctly packaging a KF6/Plasma 6 session

Sources

Most of the required sources are not released. For Frameworks and Plasma the development work happens in master branch. Some applications use master for their KF6 development work and support building against Qt5 or Qt6, others have a dedicated kf6 branch. See here for machine-readable information for the right branch.

The following frameworks will not be part of KF6:

  • kdelibs4support
  • kdesignerplugin
  • kdewebkit
  • kemoticons
  • khtml
  • kinit
  • kjs
  • kjsembed
  • kmediaplayer
  • kross
  • kxmlrpcclient

The following non-frameworks modules are obsolete:

  • kross-interpreters
  • kwebkitpart
  • khotkeys

The following new frameworks will be part of KF6:

  • kcolorscheme
  • ktexttemplate
  • ksvg
  • kstatusnotifieritem

The following new non-frameworks modules are relevant:

  • kglobalacceld
  • plasma5support
  • kmoretools
  • kdsoap-ws-discovery-client
  • ocean-sound-theme

Coinstallability

For frameworks and other relevant libraries we aim for being able to install both a 5 and a 6 version without conflicts. However there are cases where this cannot be provided out of the box, e.g. because a framework contains runtime parts that must only exist once. Some projects have build flags to disable such problematic parts that should be applied to the KF5 build:

  • kguiaddons: -DBUILD_GEO_SCHEME_HANDLER=OFF
  • baloo: -DBUILD_INDEXER_SERVICE=OFF
  • kglobalaccel: -DKF6_COMPAT_BUILD=ON
  • kwallet: -DBUILD_KWALLETD=OFF
  • plasma-framework: -DBUILD_DESKTOPTHEMES=OFF
  • drkonqi: -DWITH_PYTHON_VENDORING=OFF - once the python deps are packaged

The icon frameworks only include assets. Only the KF6 one should be installed. These are:

  • breeze-icons
  • oxygen-icons

Qt5 compatibility

For compatibility with Qt5-based apps (first- and third-party) we need Qt5-based variants of several modules in addition to Qt6-based ones. These modules include:

  • Breeze/Oxygen, for correct application style. This also applies to third-party QStyles
  • plasma-integration, for correct Qt integration
  • kio-extras, for various kio-related things
  • various kio-* things
  • various non-Frameworks libraries as needed

A Qt5 build of kwayland-integration is needed for Qt5 apps to work properly on Wayland. No Qt6 builds is needed.

Breeze, Oxygen, and plasma-integration, support building for Qt5 and Qt6 in the same build.

AppStream

AppStreaam 1.0 is required, which no longer honors legacy metadata locations, including /usr/share/app-info/(xml|xmls) and /var/lib/app-info/(xml|xmls). If your distro is currently storing metadata in one of these locations, it needs to be moved to /usr/share/swcatalog/xml or /var/lib/swcatalog/xml. Icons also need to move. See https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html#spec-asxml-filenaming for more information.

If this migration is not performed, Discover in Plasma 6 will not be able to see any of your distro's apps.

Pending Upstream Changes

Several upstream changes that were necessary are not merged and/or released: