--- - name: Install Mako package ansible.builtin.package: name: '{{ mako_package[ansible_distribution] | default("mako")}}' state: present become: true - name: Create Mako config dirs ansible.builtin.file: path: '{{ ansible_user_dir ~ "/.config/mako" }}' state: directory mode: 0750 owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' - name: Render templates for Mako config file ansible.builtin.template: src: mako.j2 dest: '{{ ansible_user_dir}}/.config/mako/config' owner: '{{ ansible_user_uid }}' group: '{{ ansible_user_gid }}' lstrip_blocks: yes trim_blocks: yes mode: 0640 register: config_file - name: Copy Mako systemd service file ansible.builtin.copy: src: 'mako.service' dest: '{{ ansible_user_dir }}/.config/systemd/user/' mode: 0640 register: service_file - block: - name: Reload Systemd daemon ansible.builtin.systemd: scope: user daemon-reload: true - name: Activate Mako service ansible.builtin.systemd: name: 'mako.service' scope: user state: started enabled: true when: service_file is change and not ansible_check_mode - name: Restart Mako service ansible.builtin.systemd: name: mako.service state: restarted scope: user when: config_file is changed and not service_file is changed - name: Render Mako 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-mako_keybindings any_errors_fatal: true