Distributions/Packaging Recommendations

From KDE Community Wiki
Revision as of 22:56, 20 October 2022 by Ngraham (talk | contribs) (Add a section for Firefox configuration)

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
  • 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)


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.