Skip to main content
Version: develop

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. LS with GIT status - list files/directories with GIT info
  3. FZF Fuzzy finder - insane speed fuzzy finder with milion usage scenarios
  4. Diff-so-fancy - alternate GIT DIFF presentation
  5. Git fuzzy - managing GIT commands using FZF
  6. Gita - managing multiple GIT repositories at once (add groups, execute git or shell commands for those groups etc.)
  7. (temporarily disabled) TheFuck - corrects errors in previous console commands
  8. BAT - (much) better CAT
  9. Zoxide - traverse directories with ease (also with FZF)
  10. Helm - Kubernetes 'package manager'
  11. Ripgrep - grep on steroids. Blazing fast, easy to use
  12. fd - find alternative, much faster
  13. htop - process viewer, prettier top alternative
  14. TMUX - terminal multiplexer
  15. LazyGIT - GIT wrapper for both terminal and VIM
  16. keychain - ssh-agent wrapper to keep SSH keys across terminal logins
  17. yq - awesome terminal YAML parser (also JSON, XML etc.)

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:

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