# CLI Standardization Ansible project to deploy a modern CLI environment (Fish + Starship + modern coreutils) to Arch and Ubuntu/Debian hosts. ## What it installs - **Fish shell** 4.x (PPA on Ubuntu, pacman on Arch) - **Starship** prompt (official binary installer) - **fzf** — fuzzy finder - **zoxide** — smarter cd - **bat** — cat with syntax highlighting - **eza** — modern ls - **fd** — modern find - **ripgrep** — fast grep - **Fisher** plugin manager + plugins ## Dev workflow ```bash # Lint ansible-lint playbook.yml # Syntax check ansible-playbook playbook.yml --syntax-check # Dry run ansible-playbook playbook.yml -i inventory.yml --check --diff # Deploy ansible-playbook playbook.yml -i inventory.yml ansible-playbook playbook.yml -i inventory.yml --limit manjaro-dev ``` ## Role structure ``` roles/cli_modern/ ├── defaults/main.yml # All configurable variables ├── tasks/ │ ├── main.yml # Task dispatcher │ ├── packages-archlinux.yml # Arch/Manjaro packages │ ├── packages-debian.yml # Ubuntu/Debian packages + Fish PPA │ ├── starship.yml # Starship binary install │ ├── fisher.yml # Fisher + plugin sync │ ├── config.yml # Deploy config templates │ └── default-shell.yml # Set Fish as login shell └── templates/ ├── config.fish.j2 # Fish shell config ├── starship.toml.j2 # Starship prompt config └── fish_plugins.j2 # Fisher plugin list ``` ## Configuration All options are in `roles/cli_modern/defaults/main.yml`. Override per-host in `host_vars/` or per-group in `group_vars/`.