# [bashrc][bashrc_repo] ![Bash](https://img.shields.io/badge/bash-1f425f.svg?style=for-the-badge&logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D) ![Debian](https://img.shields.io/badge/Debian-D70A53?style=for-the-badge&logo=debian&logoColor=white) ![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white) **bashrc** is a collection of dotfiles dedicated to environment setup for Debian based server/desktop systems. - I use these files on my personnal desktops and most semi-professional projects. - The most powerful features are related to my own setup for tmux, ssh, nfty or keepassxc. - It alse contains many aliases and functions of interest. ---- ## Features - Include [Liquid Prompt][liquidprompt_repo], an intelligent and non-intrusive prompt for Bash and zsh. - Ready for FZF bindings. - Full TMUX experience, even surviving desktop user reconnexions. - Ready to use [KeePassXC][KeePassXC_website] as ssh-agent and keyring. - Command notifications with [NTFY][NTFY_repo]. - And many more aliases and functions to discover ... ## Licence This repository include some original lines of code and others gathered throught many years and available publicly or known as best practices. There will be no licence attached to this code except for the content listed below and coming from a licenced source: - [Liquid Prompt][liquidprompt_repo]: AGPL-3.0 license. Original source in file `.bashrc.d/22-prompt.bashrc`. ### Issues - function `lf` (ls alternative with filters and sorting throught fzf): some outputs are broken, I will fix it soon. ## Requirements - debian 9+ based distro ### Recommended - bash 5+ - bash_completion - systemd, systemd-container - vim - ncdu - fzf (get the latest release) - pipx - keepassxc - keyring (python) - tmux (get the latest release) - fzf-tmux - exa (get the latest release) - fd - xclip - [MOTDfetch][MOTDfetch_repo] - curl - bat (get the latest release) - dunstify - wget2 - emoji-fzf (python) - ssh - ... ## Installation ### Current user ```bash # backup current files mkdir -p $HOME/.backups cp -r --backup=t {"$HOME"/.bashrc,"$HOME"/.bashrc.d,"$HOME"/.bash_logout,"$HOME"/.bash_profile,"$HOME"/.profile} $HOME/.backups/ # download new files from repository wget -c -nv https://git.tkapias.net/tkapias/bashrc/archive/master.tar.gz -O - \ | tar -xzv --strip-components=1 -C $HOME/ \ bashrc/.bash_logout \ bashrc/.bash_profile \ bashrc/.bashrc \ bashrc/.bashrc.d/ \ bashrc/.profile chmod 700 ~/.bashrc.d chmod 600 ~/.bashrc ~/.bashrc.d/* ~/.bash_logout ~/.bash_profile ~/.profile # check if you need to customize the secrets file cat ~/.bashrc.d/02-secrets.bashrc ``` ### SKEL If you want to get the same base for every new user on the system. - Execute as root: ```bash # backup current files mkdir -p /root/.backups/skel cp -r --backup=t /etc/skel $HOME/.backups/ # download new files from repository wget -c -nv https://git.tkapias.net/tkapias/bashrc/archive/master.tar.gz -O - \ | tar -xzv --strip-components=1 -C /etc/skel/ \ bashrc/.bash_logout \ bashrc/.bash_profile \ bashrc/.bashrc \ bashrc/.bashrc.d/ \ bashrc/.profile chmod 700 /etc/skel/.bashrc.d chmod 600 /etc/skel/.bashrc /etc/skel/.bashrc.d/* /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.profile # check if you need to customize the secrets file cat /etc/skel/.bashrc.d/02-secrets.bashrc ``` ---- [//]: # (LINKS) [bashrc_repo]: https://git.tkapias.net/tkapias/bashrc [liquidprompt_repo]: https://github.com/nojhan/liquidprompt [KeePassXC_website]: https://keepassxc.org [NTFY_repo]: https://github.com/binwiederhier/ntfy [MOTDfetch_repo]: https://git.tkapias.net/tkapias/MOTDfetch