+-----------------------------------------------------------------------
| Running gnome on OpenBSD
+-----------------------------------------------------------------------

(see "Cheat sheet" at the end of this file for a quick setup)

The GNOME desktop is composed of 2 meta-packages:
    * gnome, for a standard GNOME installation
    * gnome-extras, for a full GNOME installation

The "gnome" package is focused on generic usage to give the user the
choice to install his favorite applications for daily usage (i.e. PIM,
WWW browser, office and development applications have been left out on
purpose).

Running GNOME
=============

DBus
----
GNOME needs a system-wide D-Bus daemon to be running:
    # rcctl enable messagebus
    # rcctl order messagebus

GDM
---
Session management requires the use of GDM as login manager, otherwise
some key features like screen locking, session tracking... will not work
properly.
    # rcctl disable xenodm
    # rcctl enable gdm

Locales
-------
Default language and character set for GNOME by the GDM greeter are set in:
    /etc/gdm/locale.conf

Note that the variables set in this file will be inherited by the user session.
They can be unset/overriden in the user's .profile file or by using
gnome-control-center.

mDNS/DNS-SD support
===================

The avahi-daemon(8) daemon provides Zeroconf support (aka. Bonjour /
Rendezvous) in GNOME. Several applications can optionally benefit from
it (e.g. the "Network" shortcut in nautilus(1)) while some others
will not work at all without it (e.g. seahorse-sharing(1)).

To make use of it, multicast and avahi-daemon must be enabled:
    # rcctl enable multicast avahi_daemon

Google account integration
==========================

Linking a Google account to GNOME requires running the
/usr/local/libexec/goa-oauth2-handler helper from a web browser.
Most of them have can only access a subset of the filesystem due to unveil(2).

For Chrome-based browsers, append the following rules to
    /etc/BROWSER/unveil.main
where BROWSER is one of chromium, iridium, or ungoogled-chromium:

# GNOME OAuth2 handler
/usr/local/libexec r
/usr/local/libexec/goa-oauth2-handler rx

Cheat sheet
===========
# rcctl disable xenodm
# rcctl enable multicast messagebus avahi_daemon gdm
# rcctl order messagebus
# reboot
