From 142ccb8815e2b3e0651398af41687b660d0af004 Mon Sep 17 00:00:00 2001 From: Bluemedia Date: Wed, 6 Aug 2025 10:40:02 +0200 Subject: [PATCH] Correctly configure sleep and hibernation --- .../systemd/logind.conf.d/90-lidsensor.conf | 2 ++ .../systemd/sleep.conf.d/90-hibernate-delay.conf | 2 ++ roles/desktop-environment/tasks/config.yml | 16 ++++++++++++++++ .../templates/.local/bin/hyprhelpr.j2 | 3 ++- 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 roles/desktop-environment/files/systemd/logind.conf.d/90-lidsensor.conf create mode 100644 roles/desktop-environment/files/systemd/sleep.conf.d/90-hibernate-delay.conf 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() {