--- - name: "Ensure target config directories exist for {{ target_user.user }}" ansible.builtin.file: path: "{{ item }}" state: directory mode: '0755' owner: "{{ target_user.user }}" loop: - "{{ target_user.home }}/.config/tmux" - "{{ target_user.home }}/.config/zsh" - "{{ target_user.home }}/.vim" become: yes - name: "Sync tmux config directory for {{ target_user.user }}" ansible.posix.synchronize: src: /home/trey/.config/tmux/ dest: "{{ target_user.home }}/.config/tmux/" archive: yes delete: no rsync_opts: - "--exclude=matugen.conf" become: yes become_user: "{{ target_user.user }}" - name: "Sync zsh config directory for {{ target_user.user }}" ansible.posix.synchronize: src: /home/trey/.config/zsh/ dest: "{{ target_user.home }}/.config/zsh/" archive: yes delete: no rsync_opts: - "--exclude=colors.zsh" become: yes become_user: "{{ target_user.user }}" - name: "Sync vim directory for {{ target_user.user }}" ansible.posix.synchronize: src: /home/trey/.vim/ dest: "{{ target_user.home }}/.vim/" archive: yes delete: no rsync_opts: - "--exclude=.git/" - "--exclude=.netrwhist" - "--exclude=swap/" - "--exclude=vimrc" become: yes become_user: "{{ target_user.user }}" - name: "Deploy static fallback gruvbox colors for zsh for {{ target_user.user }}" ansible.builtin.copy: src: colors.zsh dest: "{{ target_user.home }}/.config/zsh/colors.zsh" mode: '0644' owner: "{{ target_user.user }}" become: yes - name: "Deploy static fallback gruvbox colors for tmux for {{ target_user.user }}" ansible.builtin.copy: src: matugen.conf dest: "{{ target_user.home }}/.config/tmux/matugen.conf" mode: '0644' owner: "{{ target_user.user }}" become: yes - name: "Copy .zshrc and modify prompt for root user" ansible.builtin.copy: content: | {% set zshrc_content = lookup('file', '/home/trey/.zshrc') %} {% if target_user.user == 'root' %} {{ zshrc_content | replace("export PS1='%F{$MATUGEN_PRIMARY}%n%F{$MATUGEN_SECONDARY}@%F{$MATUGEN_TERTIARY}%m%f", "export PS1='%F{red}%m%f") }} {% else %} {{ zshrc_content }} {% endif %} dest: "{{ target_user.home }}/.zshrc" mode: '0644' owner: "{{ target_user.user }}" become: yes - name: "Copy vimrc without matugen for {{ target_user.user }}" ansible.builtin.copy: content: "{{ lookup('file', '/home/trey/.vim/vimrc') | regex_replace('(?m)^colorscheme matugen', 'colorscheme gruvbox') }}" dest: "{{ target_user.home }}/.vim/vimrc" mode: '0644' owner: "{{ target_user.user }}" become: yes - name: "Ensure .vimrc symlink exists for {{ target_user.user }}" ansible.builtin.file: src: "{{ target_user.home }}/.vim/vimrc" dest: "{{ target_user.home }}/.vimrc" state: link owner: "{{ target_user.user }}" become: yes