Pantheon

Pantheon is the default desktop environment originally created for the elementary OS distribution. It is written from scratch using Vala and the GTK3 toolkit. With regards to usability and appearance, the desktop has some similarities with GNOME Shell and macOS.

Installation

Pantheon is split into several packages which are available in an unofficial repository which is daily updated with recent changes from upstream. To use the repository add the following lines at the top of your sources in /etc/pacman.conf:

[pantheon]
SigLevel = Optional
Server = https://pkgbuild.com/~alucryd/$repo/$arch
Note: All Pantheon related PKGBUILDs can be found in Alucryd's GitHub repository.

Alternatively, all packages provided by the repository are also available in the AUR for those who prefer to build the packages from source.

To get a minimal desktop interface, you may start by installing pantheon-session-bzrAUR. This will pull the following core components:

However,it is recommended to install the following packages to get a fully working Pantheon Shell:

Note: Problems can occur when using (non)-mixed bzr packages! You can install the latest release, by adding -bzr to its install package-name.
Note: You will also need to install plugs, look for "switchboard-plug-*" in the AUR or in Alucryd's GitHub repository.

It is also recommended to install the following fonts:

Additional Info

Packages based on older evolution-data-server

dexter-contacts-bzrAUR[broken link: archived in aur-mirror] and feedler-bzrAUR[broken link: archived in aur-mirror] do not build because they are based on evolution-data-server 3.2. Arch Linux provides version 3.10 which uses a different Vala API.

Launching Pantheon

Note: Either install cerbere-bzrAUR or add 'gala' to org.pantheon.desktop.cerbere.monitored-processes in cerbereAUR's dconf to avoid errors such as no visible mouse cursor, failure to start, etc.

Via a Display Manager

pantheon-session-bzrAUR provides a gnome-session entry for display managers such as gdm or lightdm.

Via .xinitrc

Alternatively, you can use ~/.xinitrc to launch the Pantheon shell, such as:

#!/bin/sh
 
if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

gsettings-data-convert &
xdg-user-dirs-gtk-update &
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
/usr/lib/gnome-settings-daemon/gnome-settings-daemon &
/usr/lib/gnome-user-share/gnome-user-share &
eval $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg)
export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK
exec cerbere

Autostart applications with ~/.xinitrc

This method does not support XDG autostart. However, there are 3 other ways to achieve this for applications which do not provide a systemd unit:

  • You may add any program to your ~/.xinitrc, preferably right before the exec cerbere line. This is the better choice for one-shot programs.
  • Or you may edit the org.pantheon.cerbere.monitored-processes key using dconf-editor and add the programs of your choice. This method is best for applications which keep running in the background.
  • Or you may use a program like dapperAUR, dex-gitAUR, or fbautostartAUR to add support for XDG autostart in your ~/.xinitrc.
Note: Keep in mind that applications started via cerbere cannot be terminated, they will keep respawning up to org.pantheon.desktop.cerbere.max-crashes

Configuration

Configuring Pantheon is done via switchboard-bzrAUR and its plugs, most of which are available in the AUR and Alucryd's repo as switchboard-plug-*-bzr. All pantheon settings, except plank's, can also be altered via dconf and are located in the org.pantheon key. Use dconf-editor for easy editing.

Note: Although the ElementaryOS devs' intent is to replace gnome-control-center, not all of its settings have been ported. You may prefer to use gnome-control-center itself and gnome-tweak-tool instead.
Note: Although it seems to have been abandoned by the ElementaryOS devs, switchboard-plug-elementary-tweaks-bzrAUR remains a useful tool for configuring many aspects of the pantheon desktop, including plank.

Pantheon Files

Enable context menu entries

If you want to enable context menu entries such as for file-roller to extract/compress archives, then you have to additionally install contractor-bzrAUR.

Terminal

Opacity (transparency)

You can set a certain opacity to make Pantheon Terminal (semi-)transparent. Open dconf-editor and go to org.pantheon.terminal.settings.opacity to set your desired opacity.

Note: For pantheon-terminal-bzrAUR, the background color and transparency are set by org.pantheon.terminal.settings.background

Known Issues

Indicators not appearing in wingpanel

Wingpanel does not come with any indicators, they must be installed individually.

Note: wingpanelAUR and wingpanel-bzrAUR implement different kinds of indicators. The standard release wingpanel--poorly--supports the same kind of indicators as Unity, including some patched for Pantheon, while there are native indicators for the bzr version, available in the AUR and Alucryd's repo as wingpanel-indicator-*-bzr.

If you launch pantheon from a display manager, make sure third-party indicators' /etc/xdg/autostart/indicator-*.desktop file contains Pantheon in OnlyShowIn=, eg:

OnlyShowIn=Unity;XFCE;GNOME;Pantheon;

Additionally, indicators designed for Unity depend on wingpanel-indicator-ayatana-bzrAUR to appear in wingpanel-bzrAUR.

Note: Indicator support itself is a complex issue, due to discrepancies between Ubuntu and Gnome's differing implementations of KDE's status notification indicators.

Indicator-session menus not working

This version of indicator-session relies on dbus methods native to Unity for most of its fuctions; it can be made to work by patching out the use of Unity dialogs, such as in indicator-session-pantheon-bzr

This version of indicator-session fails to interact with the session manager somehow; a (crudely hacked) version that uses systemd/logind instead is available indicator-session-systemdAUR[broken link: archived in aur-mirror]

About This Computer, Lock and Sound Settings (indicator-soundAUR or indicator-sound-pantheon-bzr) rely on gnome components that may not be installed, such as gnome-control-center and gnome-screensaver.

For Lock functionality (including "Ctrl+L" hotkey), replace gnome-screensaver with light-locker or XScreenSaver and a script that emulates the gnome-screensaver dbus.

No transparency in pantheon-terminal

Transparency in pantheon-terminal is not yet fully functional with GTK themes other than the elmentaryOS theme. Either use gtk-theme-elementaryAUR or add this code to your theme.

White icons in pantheon-files

Currently there seems to be a bug which displays the view icons in the top location in a white colour instead of black. This can be fixed by installing gtk-theme-elementary-bzrAUR or adding the following line to gtk-widgets.css or gtk-widgets.css of your gtk-theme-elementaryAUR theme:

GtkToolItem { color: @text_color; }

Wingpanel is transparent

Wingpanel is transparent by design when using the elementary GTK theme. It becomes black when a maximized window occupies your screen. However, using other GTK themes will produce a solid panel most of the time.

To achieve the former behavior within other themes just add the following lines to the end of it's css. It is mostly found within /usr/share/themes/<theme-name> or ~/.themes/<theme-name>. Depending on your theme the filename may be apps.css or gtk.css:

/*********************
 * wingpanel support *
 ********************/
.panel {
    background-color: transparent;
    transition: all 1s ease-in-out;
}

.panel.maximized {
    background-color: #000;
}

Corrupted graphics in canonical indicators

Indicators behave incorrectly with every theme I have tried. They are very ancient, all of them date back to 2012 because the newer indicators depend on Ubuntu patches, and they should be killed with fire anyway. Wingpanel is doing just that and I hope the next major release will ship their new plugin system.

Cannot interact with the LightDM Pantheon greeter

You need to delete /var/lib/lightdm/.pam_environment. Do note however that this file is a workaround for the following LightDM bug: https://bugs.launchpad.net/ubuntu/+source/unity-greeter/+bug/1024482

Troubleshooting

GTK+ applications surrounded by awful black shadow box

Elementary GTK theme seems to be using its own files and ignoring ~/.config/gtk-3.0/gtk.css config file. This has been reported on https://bugs.launchpad.net/elementaryos/+bug/1592441. To work around the issue, go to the file /usr/share/themes/elementary/gtk-3.0/gtk-widgets.css and look for the following (around line 3669):

decoration,
.window-frame {
    border-radius: 4px 4px 0 0;
    box-shadow: 0 0 0 1px alpha (#000, 0.3),
                0 14px 28px rgba(0,0,0,0.35),
                0 10px 10px rgba(0,0,0,0.22);
    margin: 12px;
}

Replace the above by the the code below

decoration,
.window-frame {
    box-shadow: none;
    border: none;
    padding: 0;
    margin: 0;
}

Gala crashes on start

It appears that unconfigured gala tries to use default gnome wallpaper as a background. However, the corresponding file is absent unless you have gnome-themes-standard installed. Thus, install gnome-themes-standard to workaround the crash. It is safe to remove this package after you configure pantheon in a way you want.

How can I add new applications to the dock?

Either drag and drop a desktop file on it, or right click on a running application and select "Keep in dock". You can then reorder icons by drag and drop.

How can I change the default appearance such as GTK theme, font size, etc?

Install switchboard-plug-elementary-tweaks-bzrAUR. Alternatively, use gnome-tweak-tool or see GTK+.

I do not have any mouse cursor

The 'gala' window manager is most likely not running. #Via .xinitrc Add 'gala' to the list of cerbere's monitored processes.

Wingpanel is empty except for Applications

The indicators that are displayed in the wingpanel are split into separate packages. #Installation Install additional indicators such as wingpanel-indicator-datetime-bzrAUR, indicator-powerAUR[broken link: archived in aur-mirror] or indicator-soundAUR.