Skip to content

mbrav/dotfiles

Repository files navigation

License tokei Hits-of-Code

dotfiles

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.

Overview

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.

Programs

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 on exa (Rust);
  • zoxide - A modern replacement for cd (Rust).
  • bat - A modern replacement for cat (yes, you guessed it, Rust).

Font configuration

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.

Installation

⚠️ Warning: This will overwrite your configs!

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

Trying out these configs in a Docker container

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