143 lines
3.0 KiB
Markdown
143 lines
3.0 KiB
Markdown
# Bashrc Dotfiles — Global & Portable Bash Prompt
|
||
|
||
Elegant, portable, and easy-to-install Bash prompt with:
|
||
|
||
✨ Two color zones
|
||
🌅 Time-based emoji accents
|
||
🖥️ Fallback when Nerd Fonts aren’t available
|
||
📍 Shortened but informative path
|
||
🔘 Status-colored prompt arrow
|
||
🧠 Works on Linux, WSL, and macOS
|
||
|
||
---
|
||
|
||
## 🧠 Features
|
||
|
||
- **Clean, modern powerline-style prompt**
|
||
- Zone 1: date/time/user (cool gray-blue)
|
||
- Zone 2: host/path (turquoise / cool green)
|
||
- Automatically switches emoji during the day
|
||
- Smart path shortening (keeps your home dir visible)
|
||
- Fallback to ASCII/Unicode if Nerd Fonts are not installed
|
||
- Per-user disable support
|
||
- Simple per-user or global install
|
||
|
||
---
|
||
|
||
## 🗂️ Repo Structure
|
||
|
||
dotfiles/
|
||
├── ps1/
|
||
│ └── ps1.sh
|
||
├── install/
|
||
│ ├── install-linux-global.sh
|
||
│ ├── install-macos-user.sh
|
||
│ └── install-nerdfont.sh
|
||
└── README.md
|
||
|
||
|
||
---
|
||
|
||
## 🚀 Installation
|
||
|
||
### 🐧 Linux / WSL (global, all users)
|
||
|
||
```bash
|
||
sudo bash install/install-linux-global.sh
|
||
This:
|
||
|
||
Installs the prompt module to /etc/profile.d/ps1.sh
|
||
|
||
Sources it in /etc/bash.bashrc so all users get the prompt
|
||
|
||
After install, open a new shell to see the prompt.
|
||
|
||
🍏 macOS (per-user)
|
||
bash install/install-macos-user.sh
|
||
This:
|
||
|
||
Copies ps1/ps1.sh to ~/.config/ps1/ps1.sh
|
||
|
||
Adds source block in ~/.bashrc and ~/.bash_profile
|
||
|
||
Open a new terminal or reload your shell:
|
||
|
||
source ~/.bashrc
|
||
🖼️ Nerd Fonts (optional but recommended)
|
||
Nerd Fonts provide the best display for glyphs (powerline symbols):
|
||
|
||
bash install/install-nerdfont.sh
|
||
After install:
|
||
|
||
Open your terminal settings
|
||
|
||
Set font to JetBrainsMono Nerd Font (or any Nerd Font)
|
||
|
||
Terminal must use a Nerd Font for glyphs like , , to render correctly.
|
||
|
||
⚙️ Overrides (Optional)
|
||
Sometimes autodetection doesn’t work (e.g., on macOS without fontconfig):
|
||
|
||
Force Nerd Font glyphs:
|
||
|
||
export PS1_FORCE_NF=1
|
||
Force fallback (no powerline glyphs):
|
||
|
||
export PS1_FORCE_ASCII=1
|
||
Add these to your ~/.bashrc or ~/.bash_profile.
|
||
|
||
🙅 Disable Prompt (per user)
|
||
If you want to disable the global prompt for your account:
|
||
|
||
Temporarily in a shell:
|
||
|
||
export DISABLE_GLOBAL_PS1=1
|
||
Permanently:
|
||
|
||
mkdir -p ~/.config/ps1
|
||
touch ~/.config/ps1/disable
|
||
To re-enable:
|
||
|
||
rm -f ~/.config/ps1/disable
|
||
🧪 Testing
|
||
After install, open a new shell and run:
|
||
|
||
bash -i -c 'echo OK'
|
||
If you see a prompt with colors and emoji, things are working.
|
||
|
||
💡 Usage Notes
|
||
Font matters: Even with Nerd Fonts installed, you must select them in your terminal settings.
|
||
|
||
Works on terminals like:
|
||
|
||
GNOME Terminal
|
||
|
||
iTerm2
|
||
|
||
Kitty
|
||
|
||
VS Code integrated terminal
|
||
|
||
Windows Terminal (WSL)
|
||
|
||
If you see squares or missing glyphs, your terminal is likely using a non-Nerd font.
|
||
|
||
📸 Example Prompt
|
||
This prompt shows:
|
||
|
||

|
||
With exit-status colored arrow and emoji reflecting time of day.
|
||
|
||
🛠️ Contribution
|
||
Want to help improve this project?
|
||
|
||
Fork the repository
|
||
|
||
Make your changes
|
||
|
||
Open a merge request
|
||
|
||
Please keep consistent colors and styles.
|
||
|
||
📄 License
|
||
MIT © 2026 Your Name |