I’m looking for inspiration for a custom Bash prompt[1]. I’d love to see yours! 😊 If possible, include both the prompt’s PS1, and a screenshot/example of what it looks like.

References
  1. 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.

Crossposts:

  • TheFadingOne@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    2 days ago

    I’m mainly using zsh but I have a backup bash prompt that closely mirrors it. It shows the return value of the previous command if it’s non-zero and gives some information about the current git repository if there is one.

    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='> '