From f19ac8bce8fafa1cdab90f68a01b5c36c1c57478 Mon Sep 17 00:00:00 2001 From: Marty Oehme <contact@martyoeh.me> Date: Tue, 25 Feb 2025 20:49:42 +0100 Subject: [PATCH] feat(power): Allow user to manage system power states User is put into the 'power' group, and everyone in the group can interact with system power events (hibernate, suspend, reboot, shutdown, halt, etc). --- books/void_wayland.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/books/void_wayland.yaml b/books/void_wayland.yaml index f7b02bc..de3d4ba 100644 --- a/books/void_wayland.yaml +++ b/books/void_wayland.yaml @@ -99,3 +99,30 @@ ## TODO: Enable its start in river init script # # TODO: Find way to install and enable pipewire-roc-sink module (and enable ~/.config/pipewire/pipewire.conf.d/roc-sink.conf) + + +- name: Allow user to manage system power + hosts: target_system + become: true + tags: + - power + tasks: + - name: Ensure user group "power" exists + ansible.builtin.group: + name: power + state: present + + - name: Put user in power group + ansible.builtin.user: + name: "{{ user_name }}" + groups: [power] + append: true + + - name: Enable power management for power group + ansible.builtin.copy: + content: "%power ALL=(ALL) NOPASSWD: /usr/bin/halt, /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/shutdown, /usr/bin/zzz, /usr/bin/ZZZ" + dest: "/etc/sudoers.d/20-wheel" + owner: root + group: root + mode: 0644 + force: true