# yaml-language-server: $schema=https://json.schemastore.org/ansible-playbook.json --- - hosts: localhost tasks: - name: Install Zsh packages package: {name: zsh, state: present} - name: Install Zsh Debian packages when: ansible_os_family == "Debian" apt: {name: '{{item}}', state: present} become: true with_items: - zsh-doc - pinentry-curses - name: Clone Zsh Git Repositories git: repo: '{{item.repo}}' dest: '{{item.dest}}' with_items: - repo: https://github.com/zsh-users/zsh-autosuggestions.git dest: ~/.config/zsh/zsh-autosuggestions - repo: https://github.com/zsh-users/zsh-history-substring-search.git dest: ~/.config/zsh/zsh-history-substring-search - repo: https://github.com/zsh-users/zsh-syntax-highlighting.git dest: ~/.config/zsh/zsh-syntax-highlighting - repo: https://github.com/zsh-users/zsh-completions.git dest: ~/.config/zsh/zsh-completions - repo: https://github.com/junegunn/fzf.git dest: ~/.config/zsh/fzf - name: Install fzf command: cmd: ~/.config/zsh/fzf/install --bin creates: ~/.config/zsh/fzf/bin/fzf - name: Create zsh symboic links file: state: link src: '{{item.src}}' dest: '{{item.dest}}' with_items: - src: ~/.config/zsh/zlogin dest: ~/.zlogin - src: ~/.config/zsh/zlogout dest: ~/.zlogout - src: ~/.config/zsh/zprofile dest: ~/.zprofile - src: ~/.config/zsh/zshenv dest: ~/.zshenv - src: ~/.config/zsh/zshrc dest: ~/.zshrc - src: ~/.config/zsh/prompt_fresh_setup dest: ~/.local/share/zsh/site-functions/prompt_fresh_setup - src: ~/.config/zsh/build/_build-dir dest: ~/.local/share/zsh/site-functions/_build-dir - src: ~/.config/zsh/sandbox/_sandbox dest: ~/.local/share/zsh/site-functions/_sandbox - src: ~/.config/zsh/layout/_layout dest: ~/.local/share/zsh/site-functions/_layout - src: ~/.config/zsh/notes/_note dest: ~/.local/share/zsh/site-functions/_note - src: ~/.config/zsh/fzf/bin/fzf dest: ~/.local/bin/fzf - src: ~/.config/zsh/fzf/bin/fzf-tmux dest: ~/.local/bin/fzf-tmux - src: ~/.config/zsh/cmake-uninstall dest: ~/.local/bin/cmake-uninstall - name: Get absolute path to Zsh shell: which zsh register: zsh changed_when: false - name: Set users default shell to Zsh user: name: benie shell: '{{zsh.stdout}}' become: true