software
This role will install all necessary things to have the terminal pretty and useful.
Various tools:
- ZSH shell based on Oh-my-ZSH framework, with powerlevel10k theme, and some custom plugins.
- LS with GIT status - list files/directories with GIT info
- FZF Fuzzy finder - insane speed fuzzy finder with milion usage scenarios
- Diff-so-fancy - alternate GIT DIFF presentation
- Git fuzzy - managing GIT commands using FZF
- Gita - managing multiple GIT repositories at once (add groups, execute git or shell commands for those groups etc.)
- (temporarily disabled)
TheFuck - corrects errors in previous console commands - BAT - (much) better CAT
- Zoxide - traverse directories with ease (also with FZF)
- Helm - Kubernetes 'package manager'
- Ripgrep -
grep
on steroids. Blazing fast, easy to use - fd -
find
alternative, much faster - htop - process viewer, prettier
top
alternative - TMUX - terminal multiplexer
- LazyGIT - GIT wrapper for both terminal and VIM
- keychain - ssh-agent wrapper to keep SSH keys across terminal logins
- yq - awesome terminal YAML parser (also JSON, XML etc.)
Development-related software:
- Neovim - more handsome VIM brother
- AstroNvim - Neovim IDE-like extension with awesome plugins/configurations included out of the box
- RVM (Ruby enVironment Manager, installed using rvm1-ansible-role), along with Ruby
3.1.3
- PDK (Puppet Development Kit)
- NVM (Node Version Manager) with latest LTS Node version (by default). Among all - dependency for LunarVIM installation
- SDKMAN - Manage multiple versions of groovy/java and other JDKs/SDKs.
- pyenv - Python version manager not to mess system python
- 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