Share your Bash prompts!
-
I’m using fish and the default is enough for anybody.
Fish is a really great shell for daily use. There's so much built in, its scripting language is better (not portable though if someone else does not have fish).
-
Fish is a really great shell for daily use. There's so much built in, its scripting language is better (not portable though if someone else does not have fish).
By now, enough people have fish that you can basically assume those scripts being “portable”. Far better than nushell or xonsh - which are both pretty advanced shells but other tools lack support for them, e.g. Midnight Commander.
-
Are you dowloading and sourcing a file from the internet on your prompt? That sounds a bit scary!
Well, yeah, but it's git:
https://raw.github.com/git/git/master/contrib/completion/git-prompt.shMy thinking is that I trust git on my computer, so I trust downloading from their repo.
But you're right. I should revisit this and see if it's even necessary.
-
I use Starship
Starships looks very interesting! I'm going to check it out. Thanks!
-
I’m using fish and the default is enough for anybody.
I love it! You get git and virtual env integration for free
-
I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours!
::: spoiler References
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
:::
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
$
or#
, depending on whether I'm root. - Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
-
I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours!
::: spoiler References
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
:::
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
I like Liquid Prompt[1] (A useful adaptive prompt for Bash & Zsh) Examples:
θ70° 2z termight@zone51:~ $ vi .bashrc
θ71° 2z termight@zone51:~/docker/invidious master(+34/-17)* ±
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
-
I’m using fish and the default is enough for anybody.
I recently started with fish and dislike that I can't drop bash commands into it because it parses differently. That is enough to annoy me to uninstall.
-
That's a warcrime.
How so? What does this do?
-
I use Starship
Yeah I’m gonna check this out at work next week for sure.
-
Well, yeah, but it's git:
https://raw.github.com/git/git/master/contrib/completion/git-prompt.shMy thinking is that I trust git on my computer, so I trust downloading from their repo.
But you're right. I should revisit this and see if it's even necessary.
Is this running in your rc (i.e. every single time you open a terminal)? Even if it's safe, I'd be annoyed by any delay.
-
I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours!
::: spoiler References
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
:::
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
My bash prompt is just me copying the prompt I have set on fish.
# Prompt green=$'\e[38;5;2m' bright_red=$'\e[38;5;9m' bright_green=$'\e[38;5;10m' reset=$'\e[0m' prompt_command() { local exit_status=$? if [[ $exit_status != 0 ]]; then exit_color=$bright_red exit_prompt=" [$exit_status]" else exit_color=$bright_green exit_prompt="" fi } PROMPT_COMMAND=prompt_command PS1='\[$green\]\w\[$exit_color\]$exit_prompt\n❯ \[$reset\]'
I have a small issue with this prompt though. Sometimes the ❯ ends up turning white for some reason.
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
-
I use Starship
Another starship user. Mostly want it to summarise useful stuff for folders pulled from git or whatever so it's pretty plain rest of the time. I use the same on all my boxes
-
I recently started with fish and dislike that I can't drop bash commands into it because it parses differently. That is enough to annoy me to uninstall.
You shouldn’t just “drop bash commands into it” anyways. And if you really need it, bash is only one
bash
away. -
How so? What does this do?
Best I can tell is it’s a normal `username@hostname current_directory$ sorta prompt with some coloring:
• Red for the square brackets
• Orange (color 172) for the username
• Light blue (color 153) for the hostname
• Amber (color 214) for the current working directoryOther than being hard to read from the embedded coloring I’m not sure why this is a war crime.
-
Is this running in your rc (i.e. every single time you open a terminal)? Even if it's safe, I'd be annoyed by any delay.
It is in my .bashrc, but any delay is not noticeable.
-
Is this running in your rc (i.e. every single time you open a terminal)? Even if it's safe, I'd be annoyed by any delay.
Yeah, its checking if the file exists first, so it's not doing it all the time.
My worry is more related to repos takeovers or hacks. This is pretty hidden, so it could be easy to even forget it's there, probably not the worst, but still..
-
It is in my .bashrc, but any delay is not noticeable.
Ah that's fair, I didn't look closely
-
I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours!
::: spoiler References
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
:::
- §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
I'm mainly using zsh but I have a backup bash prompt that closely mirrors it.
retval() { if [ $? -eq 0 ]; then printf "" else printf "\001\e[31m\002($?)\001\e[0m\002" fi } gitbranch() { if type git 2> /dev/null 1> /dev/null && git rev-parse 2> /dev/null 1> /dev/null ; then MODIFIED="" if [[ -n $(git status --short) ]]; then MODIFIED=" M" fi BRANCH=$(git rev-parse --abbrev-ref HEAD) SHORTREF=$(git rev-parse --short HEAD) printf "\001\e[31m\002%s\001\e[0m\002(%s)\001\e[31m\002%s\001\e[0m\002" $BRANCH $SHORTREF $MODIFIED else echo -n "" fi } export PROMPT_DIRTRIM=3 PS1='$(retval)[\001\e[1;95m\002\u\001\e[0m\002@\h : \w $(gitbranch)] \$ ' PS2='> '
- Type: Documentation. Title: "Bash Reference Manual". Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
-
By now, enough people have fish that you can basically assume those scripts being “portable”. Far better than nushell or xonsh - which are both pretty advanced shells but other tools lack support for them, e.g. Midnight Commander.
Am I a loser if I stick to POSIX?