[Unit]
Description=SHIFT shell session for tty1
Documentation=https://invent.kde.org/marcoa/shift-shell

# replaces the getty
Conflicts=getty@tty1.service
After=getty@tty1.service

# Needs all the dependencies of the services it's replacing
# (currently getty@tty1.service):
After=rc-local.service plymouth-quit-wait.service systemd-user-sessions.service

OnFailure=getty@tty1.service

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

# This scope is created by pam_systemd when logging in as the user.
# This directive is a workaround to a systemd bug, where the setup of the
# user session by PAM has some race condition, possibly leading to a failure.
After=session-c1.scope

# 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
ConditionPathExists=/dev/tty0

[Service]
Environment=LANG=C.UTF-8
Environment=XDG_SEAT=seat0
Environment=XDG_VTNR=tty1
ExecStart=/usr/bin/startplasmamobile
TimeoutStartSec=30
User=1000
PAMName=login
WorkingDirectory=~
Restart=always
RestartSec=5s

# A virtual terminal is needed.
TTYPath=/dev/tty1
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=tty1
UtmpMode=user

[Install]
Alias=display-manager.service
