--- - name: Install Swaylock package ansible.builtin.package: name: swaylock state: present become: true - name: Create Swaylock config dirs ansible.builtin.file: path: '{{ ansible_user_dir ~ "/.config/swaylock" }}' state: directory mode: 0750 owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' - name: Render templates for Swaylock config file ansible.builtin.template: src: config.j2 dest: '{{ ansible_user_dir}}/.config/swaylock/config' owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' lstrip_blocks: yes trim_blocks: yes mode: 0640 - name: Render Swaylock keybinding for sway config file ansible.builtin.template: src: '{{ item }}.config.j2' dest: '{{ ansible_user_dir ~ "/.config/sway/conf.d/" ~ item ~ ".config" }}' owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' lstrip_blocks: true trim_blocks: true mode: 0640 validate: >- sh -c "cat {{ansible_user_dir}}/.config/sway/conf.d/* %s > /tmp/sway; if sway --config /tmp/sway --validate 2>&1 | grep -q sway/config.c; then >&2 echo \"Error validating sway configuration\"; rm /tmp/sway; exit 1; else rm /tmp/sway; exit 0; fi" loop: - 51-swaylock_keybindings any_errors_fatal: true