A curated setup combining Chris Titus's Bash logic with Dacrab's Fastfetch visuals.
- Source/Inspiration: ChrisTitusTech/mybash
- Files I Clone:
.bashrc,starship.toml
- Source/Inspiration: dacrab/fastfetch-config
- Files I Clone: Custom
.jsoncconfig
Before cloning the files, I ensure that my system has the required dependencies and fonts.
Run this one-liner to check for missing packages or commands:
for i in bash tar bat tree unzip fc-list fontconfig bash-completion fastfetch starship fzf trash-cli multitail zoxide ripgrep; do if pacman -Qi "$i" &>/dev/null; then echo "[OK-PKG] $i"; elif type -P "$i" &>/dev/null; then echo "[OK-CMD] $i"; else echo -e "\e[31m[MISSING] $i\e[0m"; fi; done
Example Output:
[OK-PKG] bash
[MISSING] starship
[MISSING] trash-cli
If any items were [MISSING] above, install them (using yay covers both official repos and the AUR):
yay -S starship trash-cli multitail
A Nerd Font is strictly required for the Starship prompt icons to render correctly.
- Search for a font (e.g., Meslo, JetBrains, Hack):
pacman -Ss nerd | grep meslo
- Install (Example for Meslo):
sudo pacman -S ttf-meslo-nerd
- Verify installation:
fc-list | grep -i "meslo"
Instead of copying files, can consider symlinking them.
Assuming this repository is cloned to /home/sfarhan/homelab/systems, run the following commands:
# 1. Fastfetch (Create directory if missing, then symlink chosen config)
mkdir -p ~/.config/fastfetch
ln -sf /home/sfarhan/homelab/systems/fastfetch/custom-config.jsonc ~/.config/fastfetch/config.jsonc
# 2. Starship Prompt
ln -sf /home/sfarhan/homelab/systems/starship/starship.toml ~/.config/starship.toml
# 3. Bash Configuration (Backup existing first)
mv ~/.bashrc ~/.bashrc.bak
ln -sf /home/sfarhan/homelab/systems/bash/.bashrc ~/.bashrc
If using a terminal that supports image rendering (like Kitty or Konsole), adjust the logo path near the top of the chosen config.jsonc file to point to the custom asset:
"logo": {
"type": "kitty",
"source": "/home/sfarhan/homelab/systems/assets/customlogo.png",
"width": 25,
"height": null,
"preserveAspectRatio": true,
"padding": {
"top": 3,
"left": 2,
"right": 4
}
},
The default is like so, if wish to go basic:
"logo": {
"padding": {
"top": 2,
"left": 1,
"right": 2
}
},
To apply logo changes, run: fastfetch --logo-recache
This .bashrc file has been heavily tailored to remove some bloats from the original upstream source, leaving behind only the functionalities and additions I personally require for my environment.
To apply changes and load:
source ~/.bashrc