Plasma/Plasma 6: Difference between revisions
(Re-arrange the TODO section into "in progress" and "not started yet" sub-sections) |
(→Packaging notes: Oxygen has now dual builds) |
||
Line 180: | Line 180: | ||
* various non-Frameworks libraries as needed | * various non-Frameworks libraries as needed | ||
Breeze, plasma-integration, and kwayland-integration support building for Qt5 and Qt6 in the same build. | Breeze, Oxygen, plasma-integration, and kwayland-integration support building for Qt5 and Qt6 in the same build. | ||
=== Pending Upstream Changes === | === Pending Upstream Changes === |
Revision as of 07:11, 30 August 2023
Plasma 6 is built on top of Qt 6 and is tentatively planned to be released in late 2023 or early 2024. This page outlines important information and major changes coming in Plasma 6.
Release date and schedule
Release date is currently undefined, but hopefully between the end of 2023 and the beginning of 2024. See Schedules/Plasma_6 for more information.
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 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 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.
Upstream:
- Deleting network connections doesn't work
- Clicking on apps' System Tray icons has no effect
- https://bugs.kde.org/show_bug.cgi?id=472003
- Fixed in Qt 6.5.3
- Plasma crashes when receiving a notification from KDE Connect
- https://bugs.kde.org/show_bug.cgi?id=472964
- Fixed in Qt 6.5.3
- System Settings crashes nearly constantly when switching pages
- https://bugreports.qt.io/browse/QTBUG-112306
- Fixed in Qt 6.5.3
- System Settings crashes when quitting
- https://bugs.kde.org/show_bug.cgi?id=470598
- Fixed in Qt 6.5.3
- Plasma and apps crash when dragging anything into another app
- https://bugs.kde.org/show_bug.cgi?id=470925
- Fixed in Qt 6.6
- Opening URLs/Links in many apps doesn't work at all
- https://bugs.kde.org/show_bug.cgi?id=472300
- Fixed in xdg-utils, but there's no new release yet
- On Wayland, with scaling, QML windows have content drawn at the wrong scale until manually resized
- https://codereview.qt-project.org/c/qt/qtdeclarative/+/447075
- Fixed in Qt 6.5.3
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 of 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:
- Build from source
- Fedora KDE - Discussion in #kde:fedoraproject.org on Matrix
- FreeBSD ports overlay
- KaOS ISO
- KaOS Install
- KDE Neon Unstable ISO
- OpenMandriva Cooker
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
- On Wayland, Plasma panels, sidebars, KRunner, and Yakuake are now positioned using the layer-shell protocol
- Icons in Plasma styles are no longer honored; all icons now come from the systemwide icon theme. Additionally, icons requested with the
-symbolic
suffix will now always return a symbolic icon if the icon theme has one. For more information about these changes, see https://pointieststick.com/2023/08/12/how-all-this-icon-stuff-is-going-to-work-in-plasma-6/
User-facing changes
New features
- Basic opt-in HDR support
- More types of default apps can be chosen
- Islamic calendar support
- Conversion between time zones in KRunner
- Power profiles OSD
- Support for sound themes
- New "Ocean" default sound theme
- The Autostart KCM can now provide detailed technical information about why entries failed to start
- Optional automatic background crash reporting
- Custom sort ordering for KRunner search results
User interface changes
- No more chunky page footers in System Settings
- Icons throughout Plasma now all come from the systemwide icon theme, not the Plasma Style
Changes to default settings
- Files and folders are now selected with a single-click and opened with a double-click
- "Thumbnail Grid" is the new default Task Switcher style. Plasma 5's default "Breeze" Task Switcher has been renamed to "Sidebar"
- Use "Clicking in scrollbar track: Scrolls to the clicked location" setting by default
- Scrolling on the desktop no longer switches virtual desktops
Removals
- KHotKeys (which provides the "Custom Shortcuts" page in System Settings) - it was unmaintained for over 7 years and its core functionality overlapped the newer, maintained, and better supported KGlobalAccel system
- The "Windowed widgets KRunner runner - it was confusing users into thinking that widgets (which are intentionally very small and limited) were apps
- The "Grid", "Informative", "Small Icons", "Text Only", and "Thumbnails" Task Switchers - they were worse than other existing ones
- The "Force Font DPI" setting on Wayland - the per-screen scaling system is now considered the only supported method of doing systemwide scaling
- The ability to configure (some) icon sizes semi-systemwide - It didn't work in more places than it did work, and people were trying unsuccessfully to use it instead of more suitable methods of scaling the system
- Per-Activity power settings - they were largely broken, increased code complexity of a fragile part of the system, and were and mostly possible to approximate using other settings
- The Air theme - it was unmaintained and somewhat broken
- Unsplash Picture of the Day provider - it stopped working after Unsplash revoked public API access due to abuse by AI data model training scrapers
- "Windows go above" and "Windows go below" Panel visibility modes - lost for technical reasons, not as a result of an intentional design decision; may return if we can find a way to support these features on Wayland with the layer-shell protocol
Work that's been decided on but not implemented yet
In progress
- Enable touchpad tap-to-click by default
- Remove System Settings Icon view
- Remove GUI support for the unmaintained Synaptics touchpad drivers
- Use Floating panel by default
- Make the Wayland session the default one
Not started yet
- Bring SDDM into KDE
- Make window titlebars (slightly) accent colored by default
- Consolidate desktop folder layouts
- Change the release schedule to two per year
- Remove the "Disable (Some Plasma) Tooltips" setting
- Remove some redundant and confusing Notification settings
- Split Battery & Brightness widgets and integrate Night color into one
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
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: -DBUILD_RUNTIME=OFF
- 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
- kwayland-integration, for several Wayland things to work
- kio-extras, for various kio-related things
- various kio-* things
- various non-Frameworks libraries as needed
Breeze, Oxygen, plasma-integration, and kwayland-integration support building for Qt5 and Qt6 in the same build.
Pending Upstream Changes
Several upstream changes that were necessary are not merged and/or released:
- appstream 1.0 is needed for Qt6 support. This means current main branch for now since 1.0 is not released
- xdg-utils needed a change to support KDE_SESSION_VERSION=6. A new release is needed
- libaccounts-qt and signond need changes for Qt6 support. MRs are pending. Meanwhile a fork of libaccounts-qt and signond can be used
- kdsoap Qt5/Qt6 is not fully coinstallable