--- - name: Install needed Packages ansible.builtin.package: name: '{{ item }}' state: present loop: '{{ sway_packages }}' become: true - name: Copy systemd Sway target ansible.builtin.copy: src: 'sway-session.target' dest: '{{ ansible_user_dir }}/.config/systemd/user/' mode: 0640 - name: Create Sway config dirs ansible.builtin.file: path: '{{ ansible_user_dir ~ "/.config/sway/test.d" }}' state: directory mode: 0750 owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' - name: Render templates for sway config files ansible.builtin.template: src: '{{ item }}.config.j2' dest: '{{ ansible_user_dir ~ "/.config/sway/test.d/" ~ item ~ ".config" }}' owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' lstrip_blocks: true trim_blocks: true mode: 0640 validate: >- sh -c "if sway --config %s --validate 2>&1 | grep -q sway/config.c; then >&2 echo \"Error validating sway configuration\"; exit 1; else exit 0; fi" loop: - keybindings - theme - output - input any_errors_fatal: true