# This is a system unit for launching AGL compositor with auto-login as the
# user configured here.
#
# AGL compositor and Weston must be built with systemd support, and your
# weston.ini must load the plugin systemd-notify.so.
#
# Attention:
# If you will add new tty dependency setting, you need to update 
# agl-compositor-guest.conf.
[Unit]
Description=AGL compositor
Documentation=man:weston(1) man:weston.ini(5)
Documentation=http://wayland.freedesktop.org/

# Make sure we are started after logins are permitted.
Requires=systemd-user-sessions.service
After=systemd-user-sessions.service

# D-Bus is necessary for contacting logind. Logind is required.
Wants=dbus.socket
After=dbus.socket

# Ensure the socket is present
Requires=agl-compositor.socket

# Since we are part of the graphical session, make sure we are started before
# it is complete.
Before=graphical.target

# Prevent starting on systems without virtual consoles, Weston requires one
# for now.
ConditionPathExists=/dev/tty0

[Service]
# Requires systemd-notify.so Weston plugin.
Type=notify
EnvironmentFile=-/etc/default/agl-compositor
ExecStart=/usr/bin/agl-compositor --modules=systemd-notify.so

# Watchdog setup
TimeoutStartSec=60
WatchdogSec=20

# The user to run as.
User=agl-driver
Group=agl-driver

# Make sure the working directory is the users home directory
WorkingDirectory=/home/agl-driver

# Set up a full user session for the user
PAMName=agl-compositor-autologin

# A virtual terminal is needed.
TTYPath=/dev/tty7
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes

# Fail to start if not controlling the tty.
StandardInput=tty-fail
StandardOutput=journal
StandardError=journal

# Log this user with utmp, letting it show up with commands 'w' and 'who'.
UtmpIdentifier=tty7
UtmpMode=user

[Install]
# Note: If you only want weston to start on-demand, remove this line with a
# service drop file
WantedBy=graphical.target
