User:Quequotion/Pantheon

From ArchWiki

This article is being considered for redirection to Pantheon.

Notes: This draft's purpose has been fulfilled; redirect in the unlikely case anything anywhere links to it instead of the official page. (Discuss in User talk:Quequotion/Pantheon)

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

Comment: Messaging is still problematic: users seem to be installing a hodge-podge of packages instead of the ones recommended here. Recommending pantheon-session-gitAUR, even though it has been revised to depend on [community] packages, may be part of the problem. At least until we have a pantheon-session package in [community], this is likely to continue. quequotion (talk) 12:00, 14 January 2021 (UTC)

Official respository

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

Unofficial repository

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

AUR

PKGBUILDs for many Pantheon and elementary OS related packages are available in the AUR.

Warning: Do not install AUR packages indiscriminately.

Desktop environment

Comment: Hopefully, the release of elementary OS 6.0 will see the current pantheon-session-gitAUR ready to be released as "pantheon-session" in [community]. quequotion (talk) 14:35, 14 January 2021 (UTC)

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

Services

Comment: Several under-the-hood changes are coming with elementary OS 6.0; namely that dpms-helper is deprecated and there will be a new settings-daemon (which looks intended to supplement gnome-settings-daemon). quequotion (talk) 14:57, 14 January 2021 (UTC)

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

Theme and configuration

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

Applications

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

Launching Pantheon

Via display manager

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

Autostart applications with a display manager

Via xinit

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

wingpanel &
plank &
exec gala

Autostart applications with xinit

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.

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.

Subsequent login attempts return 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.

"No such key" when installing packages

Several dconf keys pantheon-default-settingsAUR 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.

Files

Enable context menu entries

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

Plank

Comment: elementary OS is no longer shipping Plank for its dock, but their own fork of it they call "Dock". There are differences, and theirs is more recently updated. Ultimately, they plan either to port Dock to libgala (and wayland) or write a completely new dock. quequotion (talk) 14:40, 18 January 2021 (UTC)

See Plank.

Not launching at startup

Comment: Following the release of elementary OS 6, the only reason to have this problem would be continuing to use plank instead of dock. quequotion (talk) 15:32, 18 January 2021 (UTC)

Pantheon-dock is expected to use this xdg autostart to initiate and request gnome-session's built in management to maintain it.

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

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'll probably want to install:

Third-party indicators
Session indicator menus unresponsive
  • The Lock menu item requires light-locker or, more specifically, a Lock dbus method provided by an org.freedesktop.ScreenSaver dbus service.

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;
}