--- - name: Ensure /etc/apt/keyrings directory exists ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: "0755" become: true - name: Download and save Gierens repository GPG key ansible.builtin.get_url: url: https://raw.githubusercontent.com/eza-community/eza/main/deb.asc dest: /etc/apt/keyrings/gierens.asc mode: "0644" register: gpg_key_result become: true - name: Add Gierens repository to apt sources ansible.builtin.apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/gierens.asc] http://deb.gierens.de stable main" state: present update_cache: true become: true - name: Install eza package ansible.builtin.apt: name: eza state: present become: true - name: Install bottom package ansible.builtin.apt: deb: https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_amd64.deb state: present become: true - name: Check if Neovim is already installed ansible.builtin.command: "which nvim" register: neovim_installed changed_when: false ignore_errors: true - name: Download Neovim AppImage ansible.builtin.get_url: url: https://github.com/neovim/neovim/releases/download/v0.10.0/nvim.appimage dest: /tmp/nvim.appimage mode: "0755" when: neovim_installed.rc != 0 register: download_result - name: Extract Neovim AppImage ansible.builtin.command: cmd: "./nvim.appimage --appimage-extract" chdir: /tmp when: download_result.changed register: extract_result - name: Copy extracted Neovim files to /usr ansible.builtin.copy: src: /tmp/squashfs-root/usr/ dest: /usr/ remote_src: true mode: "0755" become: true when: extract_result.changed - name: Clean up extracted Neovim files ansible.builtin.file: path: /tmp/squashfs-root state: absent when: extract_result.changed - name: Remove Neovim AppImage ansible.builtin.file: path: /tmp/nvim.appimage state: absent when: download_result.changed - name: Check if Neovim config directory already exists ansible.builtin.stat: path: ~/.config/nvim register: nvim_config - name: Clone LazyVim starter to Neovim config directory ansible.builtin.git: repo: https://github.com/LazyVim/starter dest: ~/.config/nvim clone: true update: false when: not nvim_config.stat.exists - name: Remove .git directory from Neovim config ansible.builtin.file: path: ~/.config/nvim/.git state: absent when: not nvim_config.stat.exists