diff --git a/roles/desktop-environment/files/systemd/logind.conf.d/90-lidsensor.conf b/roles/desktop-environment/files/systemd/logind.conf.d/90-lidsensor.conf new file mode 100644 index 0000000..dd5390d --- /dev/null +++ b/roles/desktop-environment/files/systemd/logind.conf.d/90-lidsensor.conf @@ -0,0 +1,2 @@ +[Login] +HandleLidSwitch=suspend-then-hibernate \ No newline at end of file diff --git a/roles/desktop-environment/files/systemd/sleep.conf.d/90-hibernate-delay.conf b/roles/desktop-environment/files/systemd/sleep.conf.d/90-hibernate-delay.conf new file mode 100644 index 0000000..7e32da3 --- /dev/null +++ b/roles/desktop-environment/files/systemd/sleep.conf.d/90-hibernate-delay.conf @@ -0,0 +1,2 @@ +[Sleep] +HibernateDelaySec=15min \ No newline at end of file diff --git a/roles/desktop-environment/tasks/config.yml b/roles/desktop-environment/tasks/config.yml index b4e3462..9acb457 100644 --- a/roles/desktop-environment/tasks/config.yml +++ b/roles/desktop-environment/tasks/config.yml @@ -23,6 +23,18 @@ - "/usr/bin/systemctl reboot" - "/usr/bin/systemctl suspend" +- name: Copy sleep and hibernation config drop-ins for systemd on mobile platforms + become: yes + copy: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + loop: + - src: "{{ role_path }}/files/systemd/logind.conf.d" + dest: "/etc/systemd/" + - src: "{{ role_path }}/files/systemd/sleep.conf.d" + dest: "/etc/systemd/" + when: hostvars[ansible_hostname]['mobile_platform'] + - name: Copy static config files copy: src: "{{ item.src }}" @@ -34,6 +46,10 @@ dest: "{{ ansible_env.HOME }}/" - src: "{{ role_path }}/files/.zshrc" dest: "{{ ansible_env.HOME }}/" + - src: "{{ role_path }}/files/systemd/logind.conf.d" + dest: "/etc/systemd/" + - src: "{{ role_path }}/files/systemd/sleep.conf.d" + dest: "/etc/systemd/" - name: Ensure presence of required directories file: diff --git a/roles/desktop-environment/templates/.local/bin/hyprhelpr.j2 b/roles/desktop-environment/templates/.local/bin/hyprhelpr.j2 index 9180a3b..35cf40e 100644 --- a/roles/desktop-environment/templates/.local/bin/hyprhelpr.j2 +++ b/roles/desktop-environment/templates/.local/bin/hyprhelpr.j2 @@ -14,7 +14,8 @@ idle() { swayidle -w \ timeout 180 '~/.local/bin/hyprhelpr lock' \ timeout 240 'hyprctl dispatch dpms off' \ - resume 'hyprctl dispatch dpms on' + resume 'hyprctl dispatch dpms on' \ + before-sleep '~/.local/bin/hyprhelpr lock' } lock() {