Files
ps1-craft/README.md
2026-01-24 05:36:48 +00:00

3.7 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

Banner (hostname + punchline + sysinfo)

På Linux/WSL lastes også et banner ved login:

  • figlet $(hostname) i farger
  • figlet -f digital "<punchline>" i farger
  • landscape-sysinfo (hvis tilgjengelig)

Punchline (global)

Banneret leser punchline fra:

  • /etc/ps1-punchline

Sett punchline slik:

echo "Din punchline" | sudo tee /etc/ps1-punchline >/dev/null

🚀 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 a source block in ~/.bashrc and ~/.bash_profile
  • Open a new terminal or reload your shell:
source ~/.bashrc

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:

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 Steffen Skui