From Fedora Project Wiki

Revision as of 20:47, 5 November 2018 by Bcotton (talk | contribs) (Submitted to FESCo https://pagure.io/fesco/issue/2010)

Pantheon Desktop

Summary

The Pantheon desktop environment is the DE that powers elementaryOS. It builds on GNOME technologies, but utilizes components that were written from scratch in vala, using the GTK+3 toolkit.

Owner

  • Name: Fabio Valentini
  • Email: decathorpe AT fedoraproject DOT org
  • Release notes owner:

Current status

  • Targeted release: Fedora 30
  • Last updated: 2018-11-05
  • Tracker bug:

Detailed Description

The Pantheon desktop will be another viable choice for users of fedora. In particular, this is also interesting for users who like the Pantheon desktop, but would prefer to use fedora instead of an ubuntu-based distribution.

Most of the components of the Pantheon desktop shell and the applications developed by elementary have already been packaged for fedora.

Benefit to Fedora

This change will make fedora the first linux distribution other than elementaryOS to support the Pantheon Desktop environment and elementary applications.

It gives users of fedora another choice for their desktop environment, and it gives users of Pantheon and elementary applications the ability to choose a different linux distribution for the first time.

Scope

Proposal owners

Packaging Status

Package Status
appcenter
Pass pass
cerbere
Pass pass
contractor
Pass pass
editorconfig
Pass pass
elementary-calculator
Pass pass
elementary-calendar
Pass pass
elementary-camera
Pass pass
elementary-capnet-assist
Pass pass
elementary-code
Pass pass
elementary-files
Pass pass
elementary-greeter
Pass pass
elementary-icon-theme
Pass pass
elementary-music
Pass pass
elementary-photos
Pass pass
elementary-print
Pass pass
elementary-screenshot-tool
Pass pass
elementary-shortcut-overlay
Pass pass
elementary-sound-theme
Pass pass
elementary-terminal
Pass pass
elementary-theme
Pass pass
elementary-videos
Pass pass
elementary-wallpapers
Pass pass
gala
Pass pass
granite
Pass pass
gsignond
Pass pass
gsignond-plugin-oauth
Pass pass
gsignond-plugin-sasl
Pass pass
impallari-raleway-fonts
Pass pass
libgsignon-glib
Pass pass
mutter328
Pass pass
pantheon-agent-geoclue2
Pass pass
pantheon-agent-polkit
Pass pass
pantheon-session-settings
Pass pass
plank
Pass pass
switchboard
Pass pass
switchboard-plug-a11y
Pass pass
switchboard-plug-about
Pass pass
switchboard-plug-applications
Pass pass
switchboard-plug-bluetooth
Pass pass
switchboard-plug-display
Pass pass
switchboard-plug-keyboard
Pass pass
switchboard-plug-mouse-touchpad
Pass pass
switchboard-plug-networking
Pass pass
switchboard-plug-notifications
Pass pass
switchboard-plug-onlineaccounts
Pass pass
switchboard-plug-pantheon-shell
Pass pass
switchboard-plug-printers
Pass pass
switchboard-plug-sound
Pass pass
wingpanel
Pass pass
wingpanel-applications-menu
Pass pass
wingpanel-indicator-ayatana
Pass pass
wingpanel-indicator-bluetooth
Pass pass
wingpanel-indicator-datetime
Pass pass
wingpanel-indicator-keyboard
Pass pass
wingpanel-indicator-network
Pass pass
wingpanel-indicator-nightlight
Pass pass
wingpanel-indicator-notifications
Pass pass
wingpanel-indicator-power
Pass pass
wingpanel-indicator-session
Pass pass
wingpanel-indicator-sound
Pass pass
switchboard-plug-datetime
Inprogress inprogress
switchboard-plug-locale
Inprogress inprogress
switchboard-plug-parental-controls
Inprogress inprogress
switchboard-plug-power
Inprogress inprogress
switchboard-plug-security-privacy
Inprogress inprogress
switchboard-plug-sharing
Inprogress inprogress
switchboard-plug-useraccounts
Inprogress inprogress
gsignond-plugin-mail
Inprogress inprogress
RHBZ#1644719
gsignond-plugin-lastfm
Inprogress inprogress

TODO Items

  • investigate improving missing switchboard plugs for fedora support, and submit them for review:
    • Date and Time plug: behavioral differences between fedora / ubuntu
    • Locale plug: implement dnf / PackageKit backend for langpack installation
    • Power plug: remove dependency on ubuntu-specific patches to gnome-settings-daemon
    • Security and Privacy plug: implement FirewallD backend to replace ufw
  • do testing for components not yet in official fedora repositories, and package them:
    • Parental Controls plug: does this actually work on fedora?
    • Sharing plug: does this actually work on fedora?
    • User Accounts plug: investigate behavioral differences between fedora / ubuntu

All these switchboard plugs are already packaged and available from one of my COPR repositories:

https://copr.fedorainfracloud.org/coprs/decathorpe/elementary-staging/

The .spec files are maintained in a GitHub repository until the packages pass package review:

https://github.com/decathorpe/elementary-staging-rpms

  • improve screensaver / lock screen support: RHBZ#1644858
    • possibly patch Pantheon session components to use standard interfaces
    • consider implementing shim for GDM / gnome-screensaver and LightDM / light-locker compatibility, or
    • consider implementing adapter for translating different DBus calls for this
  • create metapackages or comps groups:
    • Pantheon Session (Desktop Environment without apps)
    • Pantheon Desktop (Desktop Enviromnent with apps)

Creating these meta-packages or comps groups is planned to happen well before the fedora 30 branch point.

Other developers

This is not a system-wide change - however, some components require the latest releases from the accounts-SSO / signon stack.

In particular, signon-glib needs an update to version 2.0 to allow packaging the Online Accounts support for switchboard and some elementary applications.

Release engineering

No impact

Trademark approval

N/A - not needed for this Change

This Change is about adding the missing components of the Desktop Environment to fedora, and fixing show-stopper bugs. If we decide to make this a spin in the future, that will be a separate Change.


Upgrade/compatibility impact

Packages for the Pantheon DE and elementary applications have been available since fedora 25 in some cases, and most components have been available since fedora 27. Upgrading to the latest fedora release brings users the latest versions of (most of) these packages.

However, due to upstream changes, some desktop applications might lose user settings when upgrading from fedora 28 to 29, because upstream changed their GSettings path between releases. For that reason, the updates containing these breaking changes were not pushed to stable releases < 29, following the Updates Policy for stable and beta releases.

How To Test

  • install the Pantheon Desktop Environment: pantheon-session-settings (metapackages / comps groups not yet available)
  • choose Pantheon session at login
  • use the system as usual
  • try out elementary applications
  • check if screensaver kicks in (possibly doesn't work yet)

When also testing the "WIP packages" from my elementary-staging COPR repository, there are two metapackages available:

  • pantheon-session: depends on all session and desktop shell components
  • pantheon-desktop: depends on session, shell, and applications

User Experience

  • no impact for users who don't already have the Pantheon session or elementary applications installed
  • usability and stablilty improvements for users who already use it

Dependencies

N/A

Contingency Plan

  • Contingency mechanism: N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change) - No
  • Blocks product? N/A

Documentation

The current status of the project and detailed instructions on how to install the Pantheon session on fedora are available here.

Release Notes

The improved Pantheon Desktop Environment and elementary applications found in the latest release of elementaryOS 5.0 "Juno" will officially be available on fedora 30 as well.