--- - 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/conf.d" }}' state: directory mode: 0750 owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' - name: Copy base config file ansible.builtin.copy: src: 'config' dest: '{{ ansible_user_dir }}/.config/sway/' mode: 0640 - name: Render templates for sway config files 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 "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: - 00-variables - 10-input - 20-output - 30-theme - 40-workspaces - 50-keybindings any_errors_fatal: true - name: Copy default startup Sway conf file ansible.builtin.copy: src: '90-startup.config' dest: '{{ ansible_user_dir }}/.config/sway/conf.d/' mode: 0640