λ ryan. himmelwright. net

Pantheon Desktop on Fedora 35

test

Surf City, NC

I recently wrote about how I started using ElementaryOS 6 on my work computers. While I love using elementaryOS, one thing I mentioned in that post still holds true: right now, my ideal Linux setup would be the ElementaryOS UI/UX, but on top of a Fedora base. So, this month I set out to achieve just that.

Background

Elementary OS Desktop
Elementary OS 6 with several applications opened.

The more I used ElementaryOS for work, the more my desire to have a Fedora base grew. This was especially true for my laptop, as earlier this year I choose the portable option for my laptop refresh. By itself, it is fine. However, it is annoying to partition the laptop’s limited resources for a fedora VM. Running Fedora as the host OS (instead of Elementary) would make it easier when I only have my laptop available (in the office, for example).

But… I still love the pantheon desktop environment. It’s clean, looks great, and has wonderful support for global font-scaling (which is the best option I’ve found for using a 4k monitor with ‘fractional scaling’ on Linux).

I remembered there being a pantheon desktop group in the dnf group list options a bit back, but there isn’t a dedicated Fedora Spin for pantheon. So, here’s how I cobbled together my own solution.

Installing Pantheon Desktop Environment

First, I used dnf to install the Pantheon Desktop package group:

sudo dnf group install `Pantheon Desktop`

That simple step took care of most of what I needed. After installing the group, you should be able to reboot, and select the pantheon desktop environment at the login screen.

Swapping gdm with lightdm

lightdm Pantheon Fedora
Lightdm Display Manager in Fedora.

Speaking of the login screen…

After installing pantheon, I wanted to take an additional step of switching the display manager (the login screen). Specifically, I swapped gnome’s gdm for lightdm, the display manager that elementaryOS uses. To do this, I first made sure lightdm was installed:

sudo dnf install lightdm

Then, I disabled gdm and enabled lightdm:

sudo systemctl disable gdm
sudo systemctl enable lightdm

After rebooting, I as greeted with a lightdm login window, with the same layout and theming I had on elementaryOS!

Building additional packages

As I started working in pantheon on Fedora, I did notice that there seemed to be a few things were still missing…

Pantheon-Tweaks

Universal Access Settings
Pantheon Tweaks Menu.

First, I wanted to install pantheon-tweaks. Like the ‘Tweaks’ tool for Gnome, this adds a few more settings to further customize pantheon. However, pantheon-tweaks doesn’t appear to be in the Fedora repos, and I could only find deb builds of it. So, I built it from source.

First, I downloaded the source code and entered the directory:

git clone https://github.com/pantheon-tweaks/pantheon-tweaks.git
cd pantheon-tweaks

Next, I determined what the required build dependencies were (and named), when building in Fedora. After some sleuthing, I had the list figured out:

sudo dnf install cmake vala ninja-build meson switchboard-libs switchboard-devel switchboard-plug-a11y granite-devel

With all the dependencies installed, I was ready to run the build and install commands:

meson build --prefix=/usr
cd build
ninja
ninja install

After that, I had the Tweaks page available in the system settings.

Universal Access Settings in Wingpanel

Universal Access Settings
Pantheon Universal Access Settings Page.

Next, I wanted to flip the switch to show the Universal Access settings in the top panel. However, every time I clicked on the Universal Access settings tab, my settings app crashed! By launching the settings application from the command line (io.elementary.switchboard), I was able to observe it was crashing because wingpanel-idicator-a11y wasn’t installed. So, I found that on Github (I love open source!), and prepared to build it:

git clone https://github.com/elementary/wingpanel-indicator-a11y.git
cd wingpanel-indicator-a11y

In addition to the build dependencies I had already installed for pantheon-teaks, I also needed to install the wingpanel libraries:

sudo dnf install wingpanel-devel

Then, I was able to build and install, just like before:

meson build --prefix=/usr
cd build
ninja
sudo ninja install

Once installed, I could view the Universal Access settings, and even enable the dropdown setting in the top panel! (which I use to quickly change my font scaling)

Concerns

Pantheon Settings Menu
Pantheon Settings Menu.

So far, this setup has worked surprisingly well. However, I do have one main concern about the viability of using this long-term…

Will this continue to work? If so, how much of a pain will it be to maintain? I had to build some packages from source, and while I can pull the latest and rebuild, I worry that they might have version compatibility problems with the packages I’m able to pull from the repos, which would be an undesired headache.

I would love to see a team in Fedora grow to make this an official and maintained spin. I saw that there is a pantheon sig, but I’m not sure how current or active it is…

Conclusion

Fedora with Pantheon
Fedora 35 running the Pantheon Desktop.

Thus far, pantheon on Fedora 35 has worked fine. I’m going to try to keep using it over the next few weeks, and keep an eye on it. In the best case scenario, maybe it will be an offical spin one day. At the very least… I hope my cobbled together version stays stable enough for me to continue using!

Next Post:
Prev Post:

Traded in my M1 MacBook Air for the 14" MacBook Pro Bitwarden CLI