My scripts and dot files
Consists of various DevOps-oriented configurations which are meant for my own personal Arch-based linux setup, but can be used in with other Linux distros such as Debian, Ubuntu, RHEL, etc.
My config overall consists of dotfiles and scripts/
that are meant to be fish
and bash
shell compatible as much as possible in cases where not all the components are allowed to be installed on certain servers for various reasons, etc.
Since Fish shell is not POSIX complaint, Bash is meant to be used as a backup shell in cases where it would be more comfortable.
But the main advantage of Fish shell, in my use case, is that outocompletion is setup automatically for tools such as docker
, kubectl
, etc, along with some other nice features.
The configs for Bash shell (.bashrc
) and Fish (config.fish
) reference aliases and commands defined in the scripts/
folder.
To take the most advantage of the config, a few tools are used, which are recommended for installation given that they are setup in _aliases
, .bashrc
and config.fish
:
- starship - A cross-shell prompt customizaion tool (Rust);
- mcfly - A cross-shell tool for browsing through shell history (Rust);
- fzf - A command-line fuzzy finder (Rust);
- eza - A modern replacement for
ls
, based onexa
(Rust); - zoxide - A modern replacement for
cd
(Rust). - bat - A modern replacement for
cat
(yes, you guessed it, Rust).
In order for the terminal to display those symbols correctly, you must install one of many Nerd Fonts and configure your terminal to use one of them.
Clone repo (It is important to clone with modules!):
git clone --recurse-submodules -j8 https://github.com/mbrav/dotfiles && cd dotfiles
Install dotfiles interactively:
./install.sh
Install dotfiles non-interactively
force=1 ./install.sh
Before you install these configs on your system, you can try them out in a docker container. This is a feature that is still a work in progress. You can build and run these configs by simply doing:
./docker.sh