Now that fedora 30 has been officially released (on time!), and I had some additional time to fix some last-minute bugs affecting the Pantheon session, I feel like it’s time to finally write and publish this “Guide”.

First, a short recap.

Pantheon on fedora: a short history

I’ve been working on packaging the Pantheon desktop environment and all elementary applications for fedora since December 2015 (!), when I was still using fedora 22. With the following releases, more and more pieces fell into place, and I was able to work on some portability issues with the upstream elementary developers.

At this point, some “enthusiasts” had already been using Pantheon on fedora for some time – and I’m really grateful for all their feedback and help with finding bugs in the “early days”.

Then, with fedora 28 and 29, the experience of using the Pantheon desktop environment on fedora became quite pleasant, and most bugs had been taken care of. So, I decided to make things “official” for fedora 30, and announce the Pantheon Desktop as an official feature of the release.

In the end, I had to slightly reduce the scope of the changes I had planned, and some really bad last-minute issues meant putting in additional hours around the release date of fedora 30.

Now, let’s temper some expectations.

What doesn’t work (yet)

Screen Saver / Lock Screen

One of the features / fixes that didn’t make it in time for fedora 30 was support for a screen saver and / or lock screen, when the Pantheon session was started from GDM (the default display manager on fedora Workstation). This is due to limitations of light-locker, which is the screen locker that’s used by elementary for Pantheon.

AppCenter

Another disappointment was that I felt like I had to remove AppCenter from fedora, for various reasons. For example, removing applications didn’t work due to debian-specific expectations in its PackageKit API usage, major features had to be disabled because there was no way to fix them for fedora, and, worst of all, it ended up completely bricking fedora 30 (black screen at boot, completely unresponsive to user input). So, for the time being, it’s gone from fedora. Maybe it will come back at some point, or maybe not.

In the meantime, use GNOME Software for your GUI package management needs. Some of the applications that were originally “made for AppCenter” are already available on fedora, as well.

Switchboard plugs

Due to the differences between debian / ubuntu and fedora-based distributions, some of the Settings plugs for Switchboard are not working as expected on fedora. I had hoped to get at least some issues fixed in time for fedora 30, but due to lack of time and help, this didn’t happen.

  • Date and Time: This plug doesn’t work correctly on fedora, probably because of differences in date / time and timezone system setup.
  • Locale: Because it relies on an apt-based backend for checking and installing language support, this obviously can’t work on fedora (and all other systems not derived from debian).
  • Power: This plug relies on some weird and broken components that don’t work at all with recent versions of GNOME (for example, dpms-helper).
  • Security and Privacy: The firewall functionality implemented here is dependent on ufw, the firewall implementation from ubuntu, and doesn’t support FirewallD, the default firewall on fedora.
  • Parental Controls: With no time to verify that this actually works as advertised, I do not feel comfortable with including this in the official fedora repositories.
  • User Accounts: While some issues have been fixed already, a lot of things don’t work correctly here, including the creation of new users. This is in part caused by the code relying on ubuntu-specific patches to accountsservice, which of course aren’t available on fedora.

More details and links to all upstream issues can be found listed on the TODO page.

(G)Signon stack upgrade issues

It appears that I didn’t cover all the cases when I made some changes to the way the dependencies between the components of the (G)Signon stack are defined. As a result, there’s a possibility that, either when upgrading from fedora 29, or when attempting to install the Pantheon desktop environment on fedora 30, it will fail during dependency resolution. I’ve submitted updated builds of both gsignond and signon to fedora 30 to cover more cases. So, hopefully, the upgrade path should be fixed now.

If you’re upgrading from fedora 29, with both gsignond and signon packages installed for some reason, and still get the error reported here, either remove gsignond before doing the upgrade, or supply dnf system-upgrade with the --allowerasing argument and check if nothing essential gets removed before continuing with the upgrade process.

However, once both updates have been pushed to the stable repository for fedora 30, no more issues with upgrading should occur.

Now, if this hasn’t put you off yet, then stay for the good parts.

What works

Basically, everything else works – or at least, should work. I’m regularly doing some basic testing of nightly builds of elementary components on fedora 29 and 30, which lets me catch some issues early. I’m then also doing some light testing of stable and testing updates on fedora 29 and 30 to make sure no issues slipped through the cracks.

With the latest updates for fedora 30 in place, there are no known issues other than the ones listed above.

Now comes the interesting bit – how to get the stuff.

How to get it

Basic installation

Installing the Pantheon desktop environment on fedora is pretty straight-forward. The following command should do the trick to pull in all desktop components and basic elementary applications:

sudo dnf group install "Pantheon Desktop"

However, due to some limitations (since Pantheon isn’t the primary desktop environment in such scenarios), this will not set the elementary GTK and icon themes as default. Primarily, this is caused by the fact that elementary shares these settings with other GTK-based desktop environments (including GNOME). So, I can’t just mess up your primary desktop environment when installing these packages.

Finishing touches

There are (at least) two ways to enable the elementary GTK and icon theme for the Pantheon session – either install GNOME Tweaks (gnome-tweaks package) and manually set the themes in the “Appearance” section, or execute the following two commands:

gsettings set org.gnome.desktop.interface gtk-theme elementary
gsettings set org.gnome.desktop.interface icon-theme elementary

If you want to make note of the values before overwriting them with elementary, use the same commands, but use get instead of set elementary.

Complete transformation

If you also want to use the same login screen as used on elementaryOS, you will need to install some additional packages. Note that these instructions are valid only for installations based on fedora Workstation. If LightDM is already the default display manager, these instructions won’t work!

sudo dnf install lightdm elementary-greeter light-locker

At this point, make sure you know what you’re doing. If things go wrong and you don’t know how to revert the following changes, you’ll get locked out from graphical sessions, and I won’t be able to help everyone who messes up their system this way ;)

The next step is to disable the GDM display manager, and to enable LightDM:

sudo systemctl disable gdm.service
sudo systemctl enable lightdm.service

Then reboot, and enjoy the elementary login screen and your transformed system.

Future work

Future plans include a spin of fedora that includes Pantheon as the default desktop environment. However, that will still require some polishing work, and – most of all – a lot of help.

Right now, I’m basically maintaining the whole Pantheon desktop environment and all elementary packages on fedora on my own, and I don’t have the time to invest in making a proper Pantheon spin of fedora (yet).

Stay tuned.