Difference between revisions of "Pantheon"

From ArchWiki
Jump to: navigation, search
(Installation)
m (dyslexic link)
 
(235 intermediate revisions by 34 users not shown)
Line 1: Line 1:
 
[[Category:Desktop environments]]
 
[[Category:Desktop environments]]
{{Article summary start}}
+
[[ja:Pantheon]]
{{Article summary text|This article covers basic installation procedures and configuration methods for Pantheon, the default desktop environment of elementary OS.}}
+
[[pl:Pantheon]]
{{Article summary heading|Related}}
+
[[zh-hans:Pantheon]]
{{Article summary wiki|GNOME}}: A DE which is also based on GTK3.
+
[https://bbs.archlinux.org/viewtopic.php?id=152930 Pantheon] is the default desktop environment originally created for the [http://elementary.io/ elementary OS] distribution. It is written from scratch using [[Wikipedia:Vala (programming language)|Vala]] and the GTK3 toolkit. With regards to usability and appearance, the desktop has some similarities with [[GNOME]] Shell and macOS.
{{Article summary end}}
 
  
[http://elementaryos.org/ 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 Mac OS X.
+
== Project Status ==
  
==Installation==
+
Although the [https://elementary.io/ elementary OS] release schedule and toolchain are bound to [[Arch_compared_to_other_distributions#Ubuntu|Ubuntu's]] LTS release cycle, [https://plus.google.com/communities/104613975513761463450 development] moves quickly and has recently moved to [https://github.com/elementary github].
  
Pantheon is split into several packages which are available in the [[AUR]]. To get a minimal desktop interface, you may start by installing {{AUR|pantheon-session-bzr}}. This will pull the following core components:
+
== Installation ==
+
 
* {{AUR|cerbere-bzr}}: Watchdog service to keep core Pantheon apps running
+
{{Warning|Installing {{AUR|pantheon-git-meta}} is ''not'' a recommended method. This package attempts to install the entire desktop environment and software suite, with all extras, all at once and is likely to fail as some packages may not build.}}
* {{AUR|gala-bzr}}: Window Manager
+
 
* {{AUR|wingpanel-bzr}}: Top panel
+
=== Unofficial repository ===
 +
 
 +
[https://github.com/alucryd/aur-alucryd/tree/master/pantheon Alucryd's unofficial repo] contains more and more up-to-date packages than the few available in [[community]]. To use it add the following lines at the top of your sources in {{Ic|/etc/pacman.conf}}:
 +
{{bc|<nowiki>
 +
[pantheon]
 +
SigLevel = Optional
 +
Server = https://pkgbuild.com/~alucryd/$repo/$arch
 +
</nowiki>}}
 +
{{Note|The PKGBUILDs for these packages are also available in the [[AUR]].}}
 +
 
 +
=== Desktop Environment ===
 +
 
 +
For the minimal Pantheon shell, install {{AUR|pantheon-session-git}}, which pulls--among other dependencies--the core components:
 +
* {{AUR|cerbere-git}}: Watchdog service; restarts core components if they crash.
 +
* {{AUR|gala-git}}: Window and composting manager
 +
* {{AUR|wingpanel-git}}: Top panel (holds the launcher, clock, and indicators)
 +
* {{AUR|pantheon-applications-menu-git}}: Application launcher formerly known as "Slingshot"
 +
* {{Pkg|plank}}: macOS-style Dock
 +
 
 +
=== Services and Configuration ===
 +
 
 +
These packages provide background services and default settings for Pantheon and elementary OS applications:
 +
* {{AUR|pantheon-default-settings-git}}: Default appearance, behavior, and configuration; pulls in theme packages {{Pkg|elementary-icon-theme}},  {{AUR|gtk-theme-elementary-git}}, and {{AUR|elementary-wallpapers-git}}
 +
* {{AUR|gnome-settings-daemon-elementary}}: A patched {{AUR|gnome-settings-daemon-ubuntu}} required by {{AUR|pantheon-dpms-helper-git}} and {{AUR|wingpanel-indicator-power-git}}
 +
* {{AUR|pantheon-print-git}}: Print settings dialog
 +
* {{AUR|pantheon-polkit-agent-git}}: Polkit authentication agent
  
{{Note|You will need to install at least one indicator, otherwise wingpanel will not launch.}}
+
=== Theme ===
  
* {{AUR|slingshot-launcher-bzr}}: Application launcher
+
These packages contribute to the look and feel of the desktop:
* {{AUR|plank-bzr}}: Pantheon bottom dock
+
* {{Pkg|elementary-icon-theme}} or {{AUR|elementary-icon-theme-git}}: Icon theme designed to be smooth, sexy, clear, and efficient (development version)
 +
* {{AUR|lightdm-pantheon-greeter}} or {{AUR|lightdm-pantheon-greeter-git}}: LightDM greeter
 +
It is also recommended to install the following fonts:
 +
* {{AUR|ttf-opensans}}: Open Sans Fonts
 +
* {{AUR|ttf-raleway}}: Raleway Font
 +
* {{Pkg|ttf-dejavu}}: Font family based on the Bitstream Vera Fonts
 +
* {{Pkg|ttf-droid}}: General-purpose fonts released by Google as part of Android
 +
* {{Pkg|ttf-freefont}}: Set of free outline fonts covering the Unicode character set
 +
* {{Pkg|ttf-liberation}}: Red Hats Liberation fonts
  
Additionally, you may install the following packages:
+
=== Applications ===
  
* {{AUR|audience-bzr}}: Video player
+
These are some of the original, patched, and selected packages that comprise the elementary OS software suite:
* {{AUR|contractor-bzr}}: Service for sharing data between apps
+
* {{Pkg|pantheon-files}} or {{AUR|pantheon-files-git}}: File explorer developed from Marlin
* {{AUR|dexter-contacts-bzr}}: Contacts manager (does not build)
+
* {{Pkg|pantheon-terminal}} or {{AUR|pantheon-terminal-git}}: Terminal emulator
 +
* {{Pkg|scratch-text-editor}} or {{AUR|pantheon-code-git}}: Text editor formerly known as "Scratch"
 +
* {{AUR|pantheon-calculator}} or {{AUR|pantheon-calculator-git}}: Calculator
 +
* {{Pkg|pantheon-music}} or {{AUR|pantheon-music-git}}: Audio player formerly known as "Noise"
 +
* {{Pkg|pantheon-videos}} or {{AUR|pantheon-videos-git}}: Video player formerly known as "Audience"
 +
* {{AUR|pantheon-calendar-git}}: Calendar application formerly known as "Maya", integrates with {{AUR|wingpanel-indicator-datetime-git}}
 +
* {{AUR|epiphany-pantheon-bzr}}: Web browser replacing {{AUR|midori-granite}}
 +
* {{AUR|pantheon-mail-git}}: Email client developed from {{Pkg|geary}}
 +
* {{AUR|pantheon-screenshot}} or {{AUR|pantheon-screenshot-git}}: Screenshot tool
 
* {{AUR|eidete-bzr}}: Simple screencaster
 
* {{AUR|eidete-bzr}}: Simple screencaster
* {{Pkg|elementary-icon-theme}}: elementary icons
+
* {{Pkg|pantheon-photos}} or {{AUR|pantheon-photos-git}}: Photo manager developed from {{Pkg|shotwell}}
* {{AUR|elementary-scan-bzr}}: Simple scan utility
+
* {{AUR|pantheon-camera-git}}: Webcam app developed from {{AUR|snap-photobooth}}
* {{AUR|gtk-theme-elementary}}: elementary GTK theme
+
* {{AUR|elementary-scan-bzr}}: Simple scan utility (does not build)
* {{AUR|feedler-bzr}}: RSS feeds reader (does not build)
+
* {{AUR|switchboard}} or {{AUR|switchboard-git}}: Pluggable settings manager similar to {{Pkg|gnome-control-center}}
* {{AUR|footnote-bzr}}: Note taking app
+
 
* {{Pkg|geary}}: Email client
+
== Launching Pantheon ==
* {{AUR|indicator-pantheon-session-bzr}}: Session indicator
+
 
* {{AUR|lightdm-pantheon-greeter-bzr}}: LightDM greeter
+
=== Via [[Display manager]] ===
* {{AUR|maya-calendar-bzr}}: Calendar
+
 
* {{AUR|midori-granite}}: Web browser
+
{{AUR|pantheon-session-git}} provides a {{Pkg|gnome-session}} entry for display managers such as {{Pkg|gdm}} or {{Pkg|lightdm}}.
* {{Pkg|noise}}: Audio player
+
 
* {{AUR|pantheon-calculator-bzr}}: Calculator
+
==== Autostart applications with a display manager ====
* {{AUR|pantheon-files-bzr}}: File explorer
+
 
* {{AUR|pantheon-notify-bzr}}: Notification daemon
+
Pantheon is a gnome-session, and as such implements [[GNOME#Autostart|XDG Autostart]].
* {{AUR|pantheon-print-bzr}}: Print settings
+
 
* {{AUR|pantheon-terminal-bzr}}: Terminal emulator
+
=== Via [[xinit]] ===
* {{AUR|plank-theme-pantheon-bzr}}: Pantheon theme for plank
+
 
* {{AUR|scratch-text-editor-bzr}}: Text editor
+
Alternatively, you can use {{Ic|~/.xinitrc}} to launch the Pantheon shell, by adding {{ic|exec cerbere}} to the end of the file.
* {{AUR|snap-photobooth-bzr}}: Webcam app
+
 
* {{AUR|switchboard-bzr}}: Settings manager
+
==== Autostart applications with ''xinit'' ====
 +
 
 +
For applications which do not provide a [[Systemd#Using_units|systemd unit]], consider these options:
 +
 
 +
* Run once when X starts:
 +
:Add it to your [[#Via_xinit|{{Ic|~/.xinitrc}}]] [[Shell]] script, before the {{ic|exec cerbere}} line.
 +
 
 +
* Keep running in the background:
 +
:Add it to the [[#Configuration|dconf key]] {{Ic|org.pantheon.desktop.cerbere.monitored-processes}}.
 +
:Should the process stop, {{AUR|cerbere}} will respawn it.
  
{{Note|You will also need to install plugs, look for "switchboard-plug-*" in the [[AUR]].}}
+
* Launch from a [[.desktop]] file:
 +
:Use a program like {{AUR|dapper}}, {{AUR|dex-git}}, or {{AUR|fbautostart}} to implement [[XDG Autostart]].
 +
 
 +
==Configuration==
  
* {{AUR|webcontracts-bzr}}: Web services contracts for use with contractor-bzr
+
Configure Pantheon via {{AUR|switchboard}} or {{AUR|switchboard-git}} and its plugs (''switchboard-plug-*''), which must be installed separately. Not all of {{Pkg|gnome-control-center}}'s settings panels have been ported. In addition, except [[plank]], all the Pantheon components store their configuration in the {{Ic|org.pantheon}} or {{Ic|io.elementary}} [[GNOME#Configuration|gsettings keys]], which can be edited with {{Pkg|dconf-editor}}.
  
===Additional Infos===
+
{{Note|{{AUR|switchboard-plug-elementary-tweaks-git}} provides easy access to [https://raw.githubusercontent.com/elementary-tweaks/elementary-tweaks/master/docs/screenshot.png customizations for various aspects of the Pantheon desktop and applications], similar to {{Pkg|gnome-tweaks}}.}}
  
====Unofficial repository====
+
=== Wingpanel ===
  
I have set up an unofficial repository for pantheon packages: http://pkgbuild.com/~alucryd/pantheon/. Add the following lines at the top of your sources in {{Ic|/etc/pacman.conf}}:
+
Wingpanel does not come with any indicators; they must be installed separately.
  
[pantheon]
+
At the minimum, you'll probably want to install:
SigLevel = Optional
+
* {{AUR|slingshot-launcher}} or {{AUR|pantheon-applications-menu-git}}: Applications menu and "Run" dialog
Server = http://pkgbuild.com/~alucryd/$repo/$arch
+
* {{AUR|wingpanel-indicator-datetime}} or {{AUR|wingpanel-indicator-datetime-git}}: Clock and calendar widget
 +
* {{AUR|wingpanel-indicator-session}} or {{AUR|wingpanel-indicator-session-git}}: User and session menu (Switch user, Logout, Shutdown, etc.)
  
{{Note|This repository only contains some stable packages atm. A bug in {{Pkg|devtools}} makes it impossible to build bzr packages. Patch has already been submitted, but since the build server cannot be patched, we need to wait for the next devtools release.}}
+
{{Note|{{AUR|wingpanel}} supports [[Unity|Ayatana indicators]], while {{AUR|wingpanel-git}} has native indicators (''wingpanel-indicator-*-git'').}}
  
====Github repository====
+
==== Third-party indicators ====
  
All Pantheon related PKGBUILDs can be found on my GitHub repository: https://github.com/alucryd/aur-alucryd/tree/master/pantheon
+
* If launched by a [[#Via Display manager|display manager]], append {{Ic|Pantheon;}} to {{ic|1=OnlyShowIn=}} in third-party indicators' [[XDG_Autostart|*.desktop files]]
  
====Packages based on older evolution-data-server====
+
* If launched by [[#Via xinit|~/.xinitrc]], add third-party indicators to one of the start-up methods described [[#Launching Pantheon|above]].
  
{{AUR|dexter-contacts-bzr}} and {{AUR|feedler-bzr}} do not build because they are based on evolution-data-server 3.2. Arch Linux provides version 3.8 which uses a different Vala API.
+
* [[Unity|Ayatana Indicators]] require {{AUR|wingpanel-indicator-ayatana}} or {{AUR|wingpanel-indicator-ayatana-git}} to appear in {{AUR|wingpanel-git}}.
  
====Wallpaper drawer====
+
==== Indicator-session menus unresponsive ====
  
The pantheon wallpaper drawer, {{AUR|pantheon-wallpaper-bzr}},  has been deprecated in favor of the GNOME drawer. This used to be handled by nautilus, but since GNOME 3.8 it is handled directly by gnome-shell, which means we can't have GNOME drawing the wallpaper anymore.
+
* {{AUR|indicator-session}} relies on dbus methods provided by [[Unity]] for most of its functions and fails to fallback to gnome or systemd methods in its absence.
  
Somehow, we can't use {{Pkg|nitrogen}} either because gala seems to paint a black background all over it (kill gala and the wallpaper appears). Please keep using the deprecated drawer until a solution is found.
+
* {{AUR|wingpanel-indicator-session-git}} needs [[light-locker]] or {{AUR|xscreensaver-dbus-screenlock}} installed for the {{Ic|Lock}} menu item.
  
{{Note|There is a branch of gala which supports mutter 3.8. This branch enables gala to draw the wallpaper specified by the GNOME gsettings key directly. You can install {{AUR|gala-mutter38-bzr}} from the AUR to try it out.}}
+
=== Plank ===
  
==Launching Pantheon==
+
==== Adding new application icons ====
  
===Via a Display Manager===
+
Either drag and drop a desktop file on to the dock, or right click on a running application and select "Keep in dock". You can then reorder icons by drag and drop.
 +
{{Note|Plank stores .dockitem launchers in {{ic|~/.config/plank/}} and configuration in the gsettings key {{ic|net.launchpad.plank}}}}
  
{{AUR|pantheon-session-bzr}} provides a session entry for display managers such as {{Pkg|gdm}} or {{Pkg|lightdm}}.
+
=== Pantheon Files ===
  
{{Note|Either use the bzr version of ''cerbere'' or add 'gala' to the monitored processes for this to work.}}
+
==== Enable context menu entries ====
  
===Via .xinitrc===
+
If you want to enable context menu entries such as for {{Pkg|file-roller}} to extract/compress archives, then you have to additionally install {{Pkg|contractor}} or {{AUR|contractor-git}}.
  
You can also use {{Ic|~/.xinitrc}} with {{Pkg|slim}} to launch the Pantheon shell. The following code will successfully launch a Pantheon session:
+
=== Terminal ===
  
#!/bin/sh
+
====Opacity====
 
 
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
 
  
{{Note|Either use the bzr version of ''cerbere'' or add 'gala' to the monitored processes for this to work.}}
+
To make {{Pkg|pantheon-terminal}} (semi-)transparent, [[#Configuration|set the dconf key]] {{ic|org.pantheon.terminal.settings.opacity}} to your desired opacity; for {{AUR|pantheon-terminal-git}}, the background color and transparency are set by {{ic|io.elementary.terminal.settings.background}}.
  
===Autostart applications===
+
== Known Issues ==
 +
{{Out of date|This information is quite old; some of these issues may have been resolved.}}
 +
=== Appearance ===
  
Pantheon, when launched via {{Ic|~/.xinitrc}}, does not support XDG autostart. However, there are 2 other ways to achieve this for applications which do not provide a systemd unit:
+
==== Pantheon-terminal transparency ====
  
* You may add any program to your {{Ic|~/.xinitrc}}, preferably right between the ''cerbere'' and ''gala'' lines. This is the better choice for one-shot programs.
+
Transparency in pantheon-terminal is not yet fully functional with GTK themes other than the elmentary OS theme. Either use {{AUR|gtk-theme-elementary}}, {{AUR|gtk-theme-elementary-git}} or add [http://bazaar.launchpad.net/~elementary-design/egtk/4.x/revision/210 this] code to your theme or the override file in {{ic|~/.config/gtk-3.0/gtk.css}}.
* Or you may edit the {{Ic|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.
 
  
{{Note|Keep in mind that applications started via ''cerbere'' cannot be terminated, they will keep respawning.}}
+
==== Wingpanel transparency ====
  
==Configuration==
+
Wingpanel is transparent by design when using {{AUR|gtk-theme-elementary}} or {{AUR|gtk-theme-elementary-git}}, and becomes opaque when a maximized window occupies your screen. However, using other GTK themes will produce a solid panel most of the time.
  
Configuring Pantheon is done via {{AUR|switchboard-bzr}} and its plugs, some of which are available in the AUR, but close to none work as intended for the moment. Instead, most pantheon settings can be altered via ''dconf'', they are located in the {{Ic|org.pantheon}} key. Use ''dconf-editor'' for easy editing.
+
To achieve the former behavior within other themes, add the following lines to the end of its css or the override file in {{ic|~/.config/gtk-3.0/gtk.css}}:
  
Also, part of the configuration is handled by {{Pkg|gnome-control-center}} via a dedicated plug, which unfortunately does not support GNOME 3.8. Use {{Pkg|gnome-control-center}} itself and {{Pkg|gnome-tweak-tool}} instead.
+
/*********************
 +
  * wingpanel support *
 +
  ********************/
 +
.panel {
 +
    background-color: transparent;
 +
    transition: all 1s ease-in-out;
 +
}
 +
 +
.panel.maximized {
 +
    background-color: #000;
 +
}

Latest revision as of 04:29, 10 June 2018

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.

Project Status

Although the elementary OS release schedule and toolchain are bound to Ubuntu's LTS release cycle, development moves quickly and has recently moved to github.

Installation

Warning: Installing pantheon-git-metaAUR is not a recommended method. This package attempts to install the entire desktop environment and software suite, with all extras, all at once and is likely to fail as some packages may not build.

Unofficial repository

Alucryd's unofficial repo contains more and more up-to-date packages than the few available in community. To use it 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: The PKGBUILDs for these packages are also available in the AUR.

Desktop Environment

For the minimal Pantheon shell, install pantheon-session-gitAUR, which pulls--among other dependencies--the core components:

Services and Configuration

These packages provide background services and default settings for Pantheon and elementary OS applications:

Theme

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

It is also recommended to install the following fonts:

Applications

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

Launching Pantheon

Via Display manager

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

Autostart applications with a display manager

Pantheon is a gnome-session, and as such implements XDG Autostart.

Via xinit

Alternatively, you can use ~/.xinitrc to launch the Pantheon shell, by adding exec cerbere to the end of the file.

Autostart applications with xinit

For applications which do not provide a systemd unit, consider these options:

  • Run once when X starts:
Add it to your ~/.xinitrc Shell script, before the exec cerbere line.
  • Keep running in the background:
Add it to the dconf key org.pantheon.desktop.cerbere.monitored-processes.
Should the process stop, cerbereAUR will respawn it.
Use a program like dapperAUR, dex-gitAUR, or fbautostartAUR to implement XDG Autostart.

Configuration

Configure Pantheon via switchboardAUR or switchboard-gitAUR and its plugs (switchboard-plug-*), which must be installed separately. Not all of gnome-control-center's settings panels have been ported. In addition, except plank, all the Pantheon components store their configuration in the org.pantheon or io.elementary gsettings keys, which can be edited with dconf-editor.

Wingpanel

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

At the minimum, you'll probably want to install:

Note: wingpanelAUR supports Ayatana indicators, while wingpanel-gitAUR has native indicators (wingpanel-indicator-*-git).

Third-party indicators

  • If launched by ~/.xinitrc, add third-party indicators to one of the start-up methods described above.

Indicator-session menus unresponsive

  • indicator-sessionAUR relies on dbus methods provided by Unity for most of its functions and fails to fallback to gnome or systemd methods in its absence.

Plank

Adding new application icons

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

Note: Plank stores .dockitem launchers in ~/.config/plank/ and configuration in the gsettings key net.launchpad.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 or contractor-gitAUR.

Terminal

Opacity

To make pantheon-terminal (semi-)transparent, set the dconf key org.pantheon.terminal.settings.opacity to your desired opacity; for pantheon-terminal-gitAUR, the background color and transparency are set by io.elementary.terminal.settings.background.

Known Issues

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: This information is quite old; some of these issues may have been resolved. (Discuss in Talk:Pantheon#)

Appearance

Pantheon-terminal transparency

Transparency in pantheon-terminal is not yet fully functional with GTK themes other than the elmentary OS theme. Either use gtk-theme-elementaryAUR, gtk-theme-elementary-gitAUR or add this code to your theme or the override file in ~/.config/gtk-3.0/gtk.css.

Wingpanel transparency

Wingpanel is transparent by design when using gtk-theme-elementaryAUR or gtk-theme-elementary-gitAUR, and becomes opaque 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, add the following lines to the end of its css or the override file in ~/.config/gtk-3.0/gtk.css:

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

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