- name: Change default shell become: true ansible.builtin.shell: "usermod -s $(which zsh) {{ ansible_user_id }}" changed_when: true tags: - zsh - name: Create .zshenv ansible.builtin.shell: "echo \"ZDOTDIR=~/.config/zsh\" > ~/.zshenv" changed_when: true tags: - zsh - name: Install Oh My Zsh ansible.builtin.shell: zsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" changed_when: true tags: - zsh - name: Install zsh-autosuggestions plugin ansible.builtin.git: repo: 'https://github.com/zsh-users/zsh-autosuggestions.git' dest: "~/.config/zsh/ohmyzsh/plugins/zsh-autosuggestions" version: master tags: - zsh - name: Install zsh-syntax-highlighting plugin ansible.builtin.git: repo: 'https://github.com/zsh-users/zsh-syntax-highlighting.git' dest: "~/.config/zsh/ohmyzsh/plugins/zsh-syntax-highlighting" version: master tags: - zsh - name: Enable ZSH plugins ansible.builtin.lineinfile: path: "~/.config/zsh/.zshrc" regexp: '^plugins=' line: plugins=(git tmux zsh-autosuggestions zsh-syntax-highlighting) tags: - zsh - name: Enable tmux autostart ansible.builtin.lineinfile: path: "~/.config/zsh/.zshrc" line: | if [[ -z $TMUX ]]; then tmux -u attach || exec tmux -u new-session && exit fi tags: - zsh