Pantheon - ArchWiki

Jump to content
From ArchWiki

Related articles

- Desktop environment

Pantheon is the desktop environment of elementary OS. It is written in Vala, using GTK 3 and Granite.

## Development

elementary OS releases are derived from Ubuntu's LTS releases, typically trailing Ubuntu's cycle by a few weeks or months. However, its constituent packages are updated continuously. See the official github repository and consult their community slack.

## Installation

### Package sources

#### Official repository

The Pantheon desktop environment and elementary OS's curated applications are provided by the pantheon group.

#### Unofficial repository

extra-alucryd contains a few packages not yet available in the pantheon group.

#### AUR

PKGBUILDs for many Pantheon-related packages, such as third-party applications developed for elementary OS and unstable development packages, are available in the AUR.

Warning: Do not install AUR packages indiscriminately.

### Desktop environment

For the minimal Pantheon shell, install pantheon-session, which pulls several dependencies and core components:

- gala: Window and compositing manager
- wingpanel: Top panel for application launcher, clock, and indicators
- pantheon-applications-menu: Application launcher formerly known as "Slingshot"
- plank: macOS-style Dock

### Services

These optional packages provide (background) services for Pantheon and elementary OS applications:

- pantheon-geoclue2-agent: Geoclue2 authentication agent
- pantheon-polkit-agent: Polkit authentication agent
- pantheon-print: Print settings dialog
- pantheon-settings-daemon: Supplemental settings daemon

### Theme and configuration

These optional packages contribute to the look and feel of the desktop:

- lightdm-pantheon-greeter: LightDM greeter
- pantheon-default-settings: Default appearance, behavior, and configuration.

Note: Contains settings for theme packages and fonts to be installed separately:

  - elementary-icon-theme: Vector icon theme from which elementary originated
  - elementary-wallpapers: elementary OS wallpaper collection
  - gtk-theme-elementary: elementary OS stylesheet
  - ttf-droid: General-purpose fonts from Google's Android
  - ttf-opensans: Sans-serif fonts from Google
  - ttf-roboto: Google’s signature family of fonts
  - sound-theme-elementary: A set of system sounds

- switchboard: Pluggable settings manager similar to gnome-control-center

### Applications

These are some of the original, patched, and selected packages that comprise the optional elementary OS software suite:

- capnet-assist: Easily log into public WiFi networks
- epiphany: Web browser
- pantheon-calculator: Calculator
- pantheon-camera: Webcam app formerly known as "Snap"
- pantheon-code: Text editor formerly known as "Scratch"
- pantheon-files: File explorer developed from Marlin
- pantheon-music: Audio player formerly known as "Noise"
- pantheon-photos: Photo manager developed from shotwell
- pantheon-screencastAUR: Simple screencaster forked from eidete-bzrAUR
- pantheon-screenshot: Screenshot utility
- pantheon-shortcut-overlay: OS-wide shortcut overlay
- pantheon-terminal: Terminal emulator
- pantheon-videos: Video player formerly known as "Audience" (GStreamer backend)
- simple-scan: Simple scan utility

## Launching Pantheon

### Via display manager

pantheon-session provides a gnome-session entry for display managers, such as LightDM.

#### Autostart applications with a display manager

- Use XDG Autostarts.
- Use systemd units.

### Via xinit

Use xinitrc to launch the Pantheon shell components by appending them at the end of the file, ie:

    io.elementary.wingpanel &
    plank &
    exec gala

#### Autostart applications with xinit

- Run something just once, when X starts, by adding it to xinitrc before the `exec gala` line.
- Use systemd units.
- Use XDG Autostarts via dapperAUR, dex-gitAUR, or fbautostartAUR.

## Configuration and workarounds

Configure Pantheon via switchboard and its plugs, which must be installed separately.

Pantheon components, except for plank, store their configuration in the `org.pantheon` or `io.elementary` dconf keys.

Note: switchboard-plug-pantheon-tweaks-gitAUR provides easy access to customizations for various aspects of the Pantheon desktop and applications, similar to gnome-tweaks.

### General

#### Missing D-Bus services

Pantheon components and elementary OS software are increasingly delegating certain functions to the gala window manager, in preparation for the transition to Wayland. If you are using another window manager with Pantheon components or elementary OS software, you may see errors like the following:

    ** (io.elementary.screenshot:10150): ERROR **: 15:17:28.099: ScreenshotBackend.vala:37: Couldn't get dbus proxy: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell.Screenshot was not provided by any .service files

In this situation, you have a few options:

1. Downgrade to a version of the software prior to when this dbus request was implemented.
2. Use the gala window manager.
3. Implement the missing interfaces on your own.
4. Find a different software for the functionality you are seeking (e.g. a different screenshot tool)

#### "No such key" when installing packages

Several dconf keys pantheon-default-settings expects are missing, as it is written for an older version of gnome-settings-daemon. This is not a problem, but if the messages are an annoyance, comment out or remove the specified keys from `/usr/share/glib-2.0/schemas/25_pantheon-default-settings.gschema.override`.

### Desktop

#### Crashes at login

##### "Oh no! Something has gone wrong."

One of the `RequiredComponents` in Pantheon's session file may be failing.

This may be worked around by removing the failed component from `/usr/share/gnome-session/sessions/pantheon.session`.

Tip: Most often, the culprit is one or more of the gnome-settings-daemon services.

##### Returns to display manager

See gnome-session crashes on session startup.

Tip: Most of the time, waiting a little longer to log in is sufficent to clear whatever blockage the previous session has left behind.

#### Incorrect screen resolutions with multiple monitors

lightdm-pantheon-greeter attempts to setup monitors from `monitors.xml`, instead of Xorg configuration, which does not seem to work reliably.

An alternative is to use another greeter, such as lightdm-gtk-greeter.

#### Touchpad gestures

Install toucheggAUR. However, this package comes with some gestures that could conflict with pantheon's gestures. You can copy `/usr/share/touchegg/touchegg.conf` to `~/.local/share/touchegg/` and delete these gesture settings. For more instructions, refer to Touchegg.

#### Change wallpaper and text scaling

Install switchboard-plug-desktop and configure in switchboard.

### Files

#### Enable context menu entries

To enable context menu entries, such as for file-roller-pantheonAUR to extract/compress archives, additionally install contractor.

### Plank

See Plank.

#### Not launching at startup

Since cerbere was retired, pantheon-session expects plank to use this xdg autostart to initiate and request gnome-session's built in management to maintain it.

Note: X-GNOME-Autostart-Phase=Panel should be commented out to avoid stalls on startup.

Either install pantheon-dock-gitAUR, or create `/etc/xdg/autostart/plank.desktop`.

### Terminal

#### Opacity

Set the dconf key `io.elementary.terminal.settings.background` to your desired background color and opacity with an RGBA value, ie the default: `rgba(46, 46, 46, 0.95)`.

### Wingpanel

#### Indicators

Wingpanel does not come with any indicators; they must be installed separately.

At the minimum, you will probably want to install:

- pantheon-applications-menu: Applications menu and "Run" dialog
- wingpanel-indicator-datetime: Clock and calendar widget
- wingpanel-indicator-session: User and session menu (Switch user, Logout, Shutdown, etc.)

##### Third-party indicators

- When launched #Via display manager, if third-party indicators' XDG Autostarts contain `OnlyShowIn=`, append `Pantheon;` to it.

- Ayatana Indicators require wingpanel-indicator-ayatanaAUR or wingpanel-indicator-namarupa-gitAUR.

##### Session indicator menus unresponsive

- The Lock menu item requires a Lock dbus method provided by an `org.gnome.ScreenSaver` dbus service.
- The Shutdown... and Log Out.. menu items request dialogs which require the gala window manager to appear. If you intend to use any other window manager, an alternative is required—such as wingpanel-indicator-session-standalone-gitAUR.

#### Dynamic transparency

The gala window manager provides Wingpanel with dynamic transparency.

With gtk-theme-elementary, it becomes opaque when a maximized window occupies the screen and otherwise blends with the wallpaper; using other GTK themes may produce a statically opaque panel.

To achieve the behavior within another theme, add the following code to its css or the override file, `~/.config/gtk-3.0/gtk.css`:

    /*********************
     * wingpanel support *
     ********************/

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

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

Category:

- Desktop environments