diff --git a/tasks/i3.yaml b/tasks/i3.yaml index 2ed6f18..6c8f380 100644 --- a/tasks/i3.yaml +++ b/tasks/i3.yaml @@ -19,7 +19,14 @@ path: ~/.config/i3blocks state: directory -- name: i3blocks config +- name: i3wm graphical-session service template: - src: i3/i3blocks.config.j2 - dest: ~/.config/i3blocks/config + src: i3/i3wm.service.j2 + dest: ~/.config/systemd/user/i3wm.service + notify: systemd daemon-reload + +- name: i3wm graphical-session service enabled + systemd: + name: i3wm.service + enabled: true + scope: user diff --git a/tasks/x11.yaml b/tasks/x11.yaml index 82f5094..2d41d50 100644 --- a/tasks/x11.yaml +++ b/tasks/x11.yaml @@ -22,6 +22,12 @@ dest: ~/.xsession.reload.fish mode: 0755 +- name: xsession systemd target + template: + src: x11/xsession.target.j2 + dest: ~/.config/systemd/user/xsession.target + notify: systemd daemon-reload + - name: xsessionrc template: src: x11/xsessionrc.j2 diff --git a/templates/i3/i3wm.service.j2 b/templates/i3/i3wm.service.j2 new file mode 100644 index 0000000..42bbe78 --- /dev/null +++ b/templates/i3/i3wm.service.j2 @@ -0,0 +1,11 @@ +[Unit] +Description=i3 Window Manager +PartOf=graphical-session.target + +[Service] +ExecStart=/usr/bin/i3 +ExecStopPost=/bin/systemctl --user stop graphical-session.target +Restart=on-failure + +[Install] +RequiredBy=xsession.target diff --git a/templates/x11/xsession.target.j2 b/templates/x11/xsession.target.j2 new file mode 100644 index 0000000..a97f5ed --- /dev/null +++ b/templates/x11/xsession.target.j2 @@ -0,0 +1,3 @@ +[Unit] +Description=X session managed by systemd +BindsTo=graphical-session.target diff --git a/templates/x11/xsessionrc.j2 b/templates/x11/xsessionrc.j2 index 6ae1eec..5c40785 100644 --- a/templates/x11/xsessionrc.j2 +++ b/templates/x11/xsessionrc.j2 @@ -2,13 +2,4 @@ {{ansible_managed|comment}} -if [ -d /etc/profile.d ]; then - for i in /etc/profile.d/*.sh; do - if [ -r $i ]; then - . $i - fi - done - unset i -fi - -exec fish ~/.xsession.fish +exec systemctl --user start --wait xsession.target