Files
ps1-craft/README.md
2026-01-24 05:13:42 +00:00

3.2 KiB
Raw Blame History

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 arent 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)

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 doesnt 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: Bashrc prompt with two-zone layout showing date/time/user in gray-blue on the left, host/path in turquoise on the right, status-colored arrow, and time-based emoji accent

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