Skip to main content
Version: stable

software

This role will install all necessary things to have the terminal pretty and useful.

Various tools:

  1. ZSH shell based on Oh-my-ZSH framework, with powerlevel10k theme, and some custom plugins.
  2. EZA - modern replacement for ls with icons, colours, Git integration and ZSH completions. Aliased as ls and ll.
  3. LS with GIT status - list files/directories with GIT info
  4. FZF Fuzzy finder - insane speed fuzzy finder with milion usage scenarios
  5. Diff-so-fancy - alternate GIT DIFF presentation
  6. Git fuzzy - managing GIT commands using FZF
  7. Gita - managing multiple GIT repositories at once (add groups, execute git or shell commands for those groups etc.)
  8. pay-respects - corrects errors in previous console commands
  9. BAT - (much) better CAT
  10. Zoxide - traverse directories with ease (also with FZF)
  11. Helm - Kubernetes 'package manager'
  12. Ripgrep - grep on steroids. Blazing fast, easy to use
  13. fd - find alternative, much faster
  14. htop - process viewer, prettier top alternative
  15. TMUX - terminal multiplexer
  16. LazyGIT - GIT wrapper for both terminal and VIM
  17. keychain - ssh-agent wrapper to keep SSH keys across terminal logins
  18. yq - awesome terminal YAML parser (also JSON, XML etc.)
  19. FX - terminal JSON viewer and processor

Development-related software:

  1. Neovim - more handsome VIM brother
  2. AstroNvim - Neovim IDE-like extension with awesome plugins/configurations included out of the box
  3. RVM (Ruby enVironment Manager, installed using rvm1-ansible-role), along with Ruby 3.1.3
  4. PDK (Puppet Development Kit)
  5. NVM (Node Version Manager) with latest LTS Node version (by default). Among all - dependency for LunarVIM installation
  6. SDKMAN - Manage multiple versions of groovy/java and other JDKs/SDKs.
  7. pyenv - Python version manager not to mess system python
  8. pyenv-virtualenv - Python virtual environment manager to have separate environments with different packages for projects using same Python version

Also, common useful packages, like tree (directory tree), jq/yq (JSON/YAML parser) and many others.

In ansible/roles/software/vars/main.yml file, you can find everything that can be configured in terms of software. See Configuration customizations for details.

To disable installation of anything, you can add an array in your overrides file, for example:

software_tasks_exclude:
- bat
- keychain

See excluding code for details.

Available software excludes:

  • fx
  • eza
  • packages (default apt packages installation, including dependencies)
  • git
  • ripgrep
  • fd
  • lsg
  • fzf
  • diff-so-fancy
  • git-fuzzy
  • lazygit
  • gita
  • bat
  • zoxide
  • helm
  • zsh
  • w32yank
  • tmux
  • docker
  • kubectl
  • kind
  • k9s
  • rvm
  • sdkman
  • nvm
  • rust
  • ansible
  • neovim
  • astronvim
  • puppet
  • kubecolor
  • pay-respects
  • kubeswitch
  • az-account-switcher