Distributions/Packaging Recommendations: Difference between revisions

From KDE Community Wiki
No edit summary
Line 3: Line 3:


= General packaging recommendations =
= General packaging recommendations =
* For every KDE package you pre-install, also pre-install its optional CMake dependencies; it's okay if the user can to remove them later, but they should be installed by default
* For every KDE package you pre-install, also pre-install its optional CMake dependencies; it's okay if the user can remove them later, but they should be installed by default
* Avoid patching out mandatory or optional dependencies, as this will lead to KDE software missing functionality in ways that will be mysterious for users
* Avoid patching out mandatory or optional dependencies, as this will lead to KDE software missing functionality in ways that will be mysterious for users
* Mark the `qt5ct` package in your packaging as something that conflicts with `plasma-integration` and overrides its functionality; the user should only be able to have one installed at a time, but not both!
* Mark the `qt5ct` package in your packaging as something that conflicts with `plasma-integration` and overrides its functionality; the user should only be able to have one installed at a time, but not both!
* Use the Libinput input drivers by default; don't use Synaptics on X11 as it is unmaintained and provides a subpar experience with modern large buttonless touchpads compared to Libinput
* Use the Libinput input drivers by default; don't use Synaptics on X11 as it is unmaintained and provides a subpar experience with modern large buttonless touchpads compared to Libinput


= Recommended packages to pre-install =
= Recommended packages to pre-install =

Revision as of 20:21, 25 October 2022

This page collects recommendations for how to ship the highest-quality and most complete Plasma session to your users.


General packaging recommendations

  • For every KDE package you pre-install, also pre-install its optional CMake dependencies; it's okay if the user can remove them later, but they should be installed by default
  • Avoid patching out mandatory or optional dependencies, as this will lead to KDE software missing functionality in ways that will be mysterious for users
  • Mark the `qt5ct` package in your packaging as something that conflicts with `plasma-integration` and overrides its functionality; the user should only be able to have one installed at a time, but not both!
  • Use the Libinput input drivers by default; don't use Synaptics on X11 as it is unmaintained and provides a subpar experience with modern large buttonless touchpads compared to Libinput

Recommended packages to pre-install

These are packages that we recommend you pre-installed by default, or install when the user installs your "KDE Plasma Desktop" metapackage.

Plasma packages

Generally pre-install every package in https://download.kde.org/stable/plasma/[latest release], except for the following:

Optional packages:

  • oxygen5 (it's the old Oxygen Plasma theme; this doesn't need to be installed by default)

Do not pre-install these Plasma packages for Plasma Desktop:

  • plasma-mobile (not needed for the desktop shell)
  • plasma-nano (not needed for the desktop shell)
  • plasma-sdk (developer apps for Plasma; not generally user-relevant)
  • plasma-tests (internal testing harness; not user-relevant)
  • qqc2-breeze-style (not needed for the desktop shell)
  • plasma-bigscreen (not needed for the desktop shell)
  • aura-browser (not intended for the desktop)
  • plank-player (not intended for the desktop)

Non-Plasma packages

These packages are add-ons, extensions, and system tools that are not released with Plasma itself, but make the overall Plasma session nicer to use. They should be pre-installed:

  • baloo-widgets (provides extra information for Dolphin's Information Panel when the Baloo file indexer is on)
  • dolphin-plugins (provides a variety of useful plugins for Dolphin, including ISO mounting)
  • kdenetwork-filesharing (provides the Samba file sharing setup wizard)
  • kdepim-addons (provides a variety of useful addons for the PIM suite; only needed if you pre-install the PIM suite!)
  • ffmpegthumbs (provides video thumbnailing plugin)
  • kdeconnect-kde (provides remote mobile phone control; also make sure to whitelist its system service in your firewall, if you ship one)
  • kdegraphics-thumbnailers (provides PDF thumbnailing plugin, among others)
  • kdeplasma-addons (provides more plasmoids)
  • kio-extras (provides the thumbnailing engine and many thumbnailing plugins, among other things)
  • kio-fuse (provides transparent access to non-KDE apps for files on remote locations)
  • kio-gdrive (provides transparent KIO access to Google Drive)
  • plasma-workspace-wallpapers (provides more wallpapers)
  • print-manager (provides the Printers KCM and widget)

3rd-party packages

It is recommended to pre-install the following 3rd-party packages:

  • iio-sensor-proxy (allows automatic screen rotation on Wayland)
  • maliit-keyboard (provides on-screen keyboard on Wayland)
  • power-profiles-daemon (enables the power profile functionality in Plasma. Make sure its systemd service is automatically started when the package is installed!)
  • xdg-desktop-portal-gtk (syncs font settings to Flatpak apps when run in Plasma)


PulseAudio/PipeWire configuration

Enable the module-x11-bell module by default; this makes GTK apps run in Plasma (i.e. without Mutter, which does this itself) play nice sounds instead of horrible jarring system bell beeps!


Samba sharing configuration

The aforementioned `kdenetwork-filesharing` package provides a wizard for setting up Samba shares. It's capable of fixing various omissions and misconfigurations, but it cannot edit the `/etc/samba/smb.conf` file, as such changes would be overwritten by package updates. So the `/etc/samba/smb.conf` file installed by your distro or its relevant Samba package should include the following lines in its [globals] section:

  usershare path = /var/lib/samba/usershares
  usershare max shares = 100
  usershare allow guests = yes # optional line
  usershare owner only = yes

It's also helpful if the path specified at `usershare path` exists on disk, has a group owner named something like "usershares", and if all user accounts are members of that group. But these are optional steps as kdenetwork-filesharing is capable of doing these things itself.


Firefox configuration

You can offer your users a better touchpad scrolling experience on X11 by setting the `MOZ_USE_XINPUT2=1` environment variable in the environment. There are no longer any remaining known side effects. On Wayland, this has no effect and is not needed.

Set `widget.use-xdg-desktop-portal.file-picker=1` in about:config to make Firefox always use XDG portals for file pickers, which will make it use KDE's file picker instead of the GTK one.

Install the Plasma Integration addon, and turn off Firefox's built-in media controls (which conflict with the ones offered by PBI) by setting `media.hardwaremediakeys.enabled` to false in about:config.