Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ You'll need the following dependencies:
- libjson-glib-dev
- libpantheon-wayland-1-dev
- libpwquality-dev
- libsystemd-dev
- libxkbregistry-dev
- [distinst](https://github.com/pop-os/distinst/)
- valac
Expand Down
10 changes: 0 additions & 10 deletions session/autostart.desktop

This file was deleted.

11 changes: 0 additions & 11 deletions session/compositor-autostart.desktop

This file was deleted.

40 changes: 40 additions & 0 deletions session/compositor.service.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[Unit]
Description=Greeter Compositor
# On X11, try to show the GNOME Session Failed screen
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
CollectMode=inactive-or-failed
RefuseManualStart=on
RefuseManualStop=on

After=gnome-session-manager.target

Requisite=gnome-session-initialized.target
PartOf=gnome-session-initialized.target
Before=gnome-session-initialized.target

#NOTE: ConditionEnvironment works with systemd >= 246
ConditionEnvironment=XDG_SESSION_TYPE=%I

# Limit startup frequency more than the default
StartLimitIntervalSec=15s
StartLimitBurst=3

[Service]
Slice=session.slice
Type=notify
ExecStart=@bindir@/io.elementary.greeter-compositor

# On X11 we do not need to unset any variables

# On X11 we want to restart on-success (Alt+F2 + r) and on-failure.
Restart=always
# Do not wait before restarting the shell
RestartSec=0ms
# Kill any stubborn child processes after this long
TimeoutStopSec=5

# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
OOMScoreAdjust=-1000


12 changes: 12 additions & 0 deletions session/installer.service.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Unit]
Description=Installer
After=gnome-session-initialized.target

[Install]
WantedBy=io.elementary.installer.target

[Service]
Type=exec
ExecStart=@bindir@/io.elementary.installer
Restart=on-failure
Slice=session.slice
9 changes: 9 additions & 0 deletions session/installer.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Unit]
Description=Installer
DefaultDependencies=no

Requisite=gnome-session-initialized.target
PartOf=gnome-session-initialized.target
Before=gnome-session-initialized.target

Wants=io.elementary.installer.compositor.service
41 changes: 29 additions & 12 deletions session/meson.build
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
autostartdir = get_option('sysconfdir') / 'xdg' / 'autostart'
schemadir = get_option('datadir') / 'glib-2.0' / 'schemas'

install_data(
'autostart.desktop',
install_dir: autostartdir,
rename: meson.project_name() + '.desktop'
)

install_data(
'compositor-autostart.desktop',
install_dir: autostartdir,
rename: meson.project_name() + '.compositor.desktop'
)

install_data(
'installer.desktop',
install_dir: get_option('datadir') / 'xsessions'
Expand All @@ -33,3 +21,32 @@ install_subdir(
install_dir: autostartdir,
strip_directory: true
)

prefix = get_option('prefix')

systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')

service_config = configuration_data()
service_config.set('bindir', prefix / get_option('bindir'))

configure_file(
input: 'compositor.service.in',
output: 'io.elementary.installer.compositor.service',
install: true,
install_dir: systemd_userunitdir,
configuration: service_config
)

install_data(
'installer.target',
rename: 'io.elementary.installer.target',
install_dir: systemd_userunitdir
)

configure_file(
input: 'installer.service.in',
output: 'io.elementary.installer.service',
configuration: service_config,
install: true,
install_dir: systemd_userunitdir
)
Loading