Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Linux
  3. Share your Bash prompts!

Share your Bash prompts!

Scheduled Pinned Locked Moved Linux
linux
49 Posts 37 Posters 241 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mike_wooskey@lemmy.thewooskeys.comM [email protected]

    Mine shows the user and host, git commit and branch, docker context and directory, color coded based on status of git:

    [root@server001|G:19e526e@(master)|D:myContext|currentDir] $

    ## PS1 adapted from https://gist.github.com/xenji/2292341
    ps1_generator() {
        # docker context inspect --format '{{ .Name }}'
        Time12h="\T"; Time12a="\@"; ShortHost="\h"; Username="\u";
        PathShort="\W"; PathFull="\w"; NewLine="\n"; Jobs="\j";
        test -f ~/.config/git-prompt.sh || \
            curl -L https://raw.github.com/git/git/master/contrib/compl
    etion/git-prompt.sh \
                 > ~/.config/git-prompt.sh
        source ~/.config/git-prompt.sh
        Color_Off="\[\033[0m\]"; IBlack="\[\033[0;90m\]"; BWhite="\[\03
    3[1;37m\]"; BGreen="\[\033[1;32m\]";
        BIRed="\[\033[1;91m\]"; BIWhite="\[\033[1;97m\]"; BIPurple="\[\
    033[1;95m\]"; BIBlue="\[\033[1;94m\]";
        GIT_PS1='$(git branch &>/dev/null;\
    if [ $? -eq 0 ]; then \
      echo "$(echo `git status` | \grep "nothing to commit" > /dev/null
     2>&1; \
      DIRTY="$?"; \
      HEADREV=`git log --pretty=%h -n 1`; \
      echo -n "|G:'${BWhite}'$HEADREV"; \
      if [ "$DIRTY" -eq "0" ]; then \
        # @4 - Clean repository - nothing to commit
        echo "@'${BGreen}'"$(__git_ps1 "(%s)"); \
      else \
        # @5 - Changes to working tree
        echo "'${BIBlue}'@'${BIRed}'"$(__git_ps1 "{%s}"); \
      fi)'${Color_Off}'"; \
    else \
      # @2 - Prompt when not in GIT repo
      echo ""; \
    fi)'
        if docker context inspect >/dev/null 2>&1; then
            DOCKER_PS1='|D:'${BIBlue}'$(docker context inspect --format
     "{{ .Name }}")'${Color_Off}
        fi
        USER_PS1=${BIPurple}${Username}'@'${ShortHost}${Color_Off}
        PATH_PS1='|'${BWhite}${PathShort}${Color_Off}
        export PS1='['${USER_PS1}${GIT_PS1}${DOCKER_PS1}${PATH_PS1}'] $
     '
    }
    ps1_generator && unset -f ps1_generator
    
    G This user is from outside of this forum
    G This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #15

    Are you dowloading and sourcing a file from the internet on your prompt? That sounds a bit scary!

    mike_wooskey@lemmy.thewooskeys.comM 1 Reply Last reply
    0
    • kalcifer@sh.itjust.worksK [email protected]

      I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

      ::: spoiler 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.
        • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
          :::
      Z This user is from outside of this forum
      Z This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #16

      I use zsh, but my old Bash prompt looks almost the same ash my Zsh prompt. Sorry, no screenshot, but here's the code:

      export PS1='\[\033[01;34m\][\[\033[01;37m\] \W\[\033[01;34m\]]\$\033[01;34m\] $(git branch 2>/dev/null | grep '^*' | colrm 1 2)\n\033[01;34m└─>\033[37m '
      
      1 Reply Last reply
      0
      • kalcifer@sh.itjust.worksK [email protected]

        I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

        ::: spoiler 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.
          • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
            :::
        N This user is from outside of this forum
        N This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #17

        Mine's pretty simple:

        ## .bashrc
        export BLA=$(tput setaf 0) # Black
        export RED=$(tput setaf 1) # Red
        export GRE=$(tput setaf 2) # Green
        export YEL=$(tput setaf 3) # Yellow
        export BLU=$(tput setaf 4) # Blue
        export MAG=$(tput setaf 5) # Magenta
        export CYA=$(tput setaf 6) # Cyan
        export WHI=$(tput setaf 7) # White
        
        export BOL=$(tput bold)    # Bold
        export ITA=$(tput sitm)    # Italic
        export UL=$(tput smul)     # Underline
        export NC=$(tput sgr0)     # No color & format
        
        _branch() {
            local branch=$(__git_ps1 "%s")
            if [[ -z $branch ]]; then
                printf "${BLA}null${NC}"
            else 
                printf "${CYA}$branch"
            fi
        }
        
        PS1='.\[$(_pwd)\] \[$BLA\]〜 \[$MAG\]git\[$BLA\]:\[$(_branch)\] \n \[$NC$CYA\]\! \[$MAG\]\$ \[$NC\]'
        
        ## .inputrc
        
        set vi-ins-mode-string \1\e[34m\2.INS
        set vi-cmd-mode-string \1\e[33m\2.CMD
        
        1 Reply Last reply
        0
        • kalcifer@sh.itjust.worksK [email protected]

          I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

          ::: spoiler 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.
            • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
              :::
          M This user is from outside of this forum
          M This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #18

          I’m using fish and the default is enough for anybody. 😁

          azzk1kr@feddit.nlA crmsnbleyd@sopuli.xyzC plutoniumacid@lemmy.worldP 3 Replies Last reply
          0
          • E [email protected]

            Same. I guess, this is the Starship thread now. My config:

            I adapted it from the Gruvbox Rainbow theme.
            I can post my config, if anyone wants specifically that. (It does kind of assume a light background, though.)

            F This user is from outside of this forum
            F This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #19

            I like the timer and the error icon on a fail.
            I can't recall how often I think: damn this is taking too long. I should've timed the command

            1 Reply Last reply
            0
            • kalcifer@sh.itjust.worksK [email protected]

              I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

              ::: spoiler 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.
                • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
                  :::
              winety@lemmy.zipW This user is from outside of this forum
              winety@lemmy.zipW This user is from outside of this forum
              [email protected]
              wrote on last edited by
              #20

              Mine's really simple; I just make the path bold and yellow:

              My Bash prompt

              What I like to do is change the colour depending on the machine I ssh into, e.g. make the path red on my Raspberry Pi.

              1 Reply Last reply
              0
              • M [email protected]

                I’m using fish and the default is enough for anybody. 😁

                azzk1kr@feddit.nlA This user is from outside of this forum
                azzk1kr@feddit.nlA This user is from outside of this forum
                [email protected]
                wrote on last edited by
                #21

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

                M 1 Reply Last reply
                0
                • azzk1kr@feddit.nlA [email protected]

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

                  M This user is from outside of this forum
                  M This user is from outside of this forum
                  [email protected]
                  wrote on last edited by
                  #22

                  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.

                  M 1 Reply Last reply
                  0
                  • G [email protected]

                    Are you dowloading and sourcing a file from the internet on your prompt? That sounds a bit scary!

                    mike_wooskey@lemmy.thewooskeys.comM This user is from outside of this forum
                    mike_wooskey@lemmy.thewooskeys.comM This user is from outside of this forum
                    [email protected]
                    wrote on last edited by
                    #23

                    Well, yeah, but it's git:
                    https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh

                    My 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.

                    T 1 Reply Last reply
                    0
                    • hallettj@leminal.spaceH [email protected]

                      I use Starship

                      mike_wooskey@lemmy.thewooskeys.comM This user is from outside of this forum
                      mike_wooskey@lemmy.thewooskeys.comM This user is from outside of this forum
                      [email protected]
                      wrote on last edited by
                      #24

                      Starships looks very interesting! I'm going to check it out. Thanks!

                      1 Reply Last reply
                      0
                      • M [email protected]

                        I’m using fish and the default is enough for anybody. 😁

                        crmsnbleyd@sopuli.xyzC This user is from outside of this forum
                        crmsnbleyd@sopuli.xyzC This user is from outside of this forum
                        [email protected]
                        wrote on last edited by
                        #25

                        I love it! You get git and virtual env integration for free 🙂

                        1 Reply Last reply
                        0
                        • kalcifer@sh.itjust.worksK [email protected]

                          I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

                          ::: spoiler 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.
                            • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
                              :::
                          D This user is from outside of this forum
                          D This user is from outside of this forum
                          [email protected]
                          wrote on last edited by
                          #26

                          $ or # , depending on whether I'm root.

                          1 Reply Last reply
                          0
                          • kalcifer@sh.itjust.worksK [email protected]

                            I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

                            ::: spoiler 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.
                              • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
                                :::
                            T This user is from outside of this forum
                            T This user is from outside of this forum
                            [email protected]
                            wrote on last edited by
                            #27

                            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)* ±

                            [1] https://github.com/liquidprompt/liquidprompt

                            1 Reply Last reply
                            0
                            • M [email protected]

                              I’m using fish and the default is enough for anybody. 😁

                              plutoniumacid@lemmy.worldP This user is from outside of this forum
                              plutoniumacid@lemmy.worldP This user is from outside of this forum
                              [email protected]
                              wrote on last edited by
                              #28

                              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.

                              M 1 Reply Last reply
                              0
                              • ikidd@lemmy.worldI [email protected]

                                That's a warcrime.

                                plutoniumacid@lemmy.worldP This user is from outside of this forum
                                plutoniumacid@lemmy.worldP This user is from outside of this forum
                                [email protected]
                                wrote on last edited by
                                #29

                                How so? What does this do?

                                B 1 Reply Last reply
                                0
                                • hallettj@leminal.spaceH [email protected]

                                  I use Starship

                                  B This user is from outside of this forum
                                  B This user is from outside of this forum
                                  [email protected]
                                  wrote on last edited by
                                  #30

                                  Yeah I’m gonna check this out at work next week for sure.

                                  1 Reply Last reply
                                  0
                                  • mike_wooskey@lemmy.thewooskeys.comM [email protected]

                                    Well, yeah, but it's git:
                                    https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh

                                    My 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.

                                    T This user is from outside of this forum
                                    T This user is from outside of this forum
                                    [email protected]
                                    wrote on last edited by
                                    #31

                                    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.

                                    mike_wooskey@lemmy.thewooskeys.comM G 2 Replies Last reply
                                    0
                                    • kalcifer@sh.itjust.worksK [email protected]

                                      I'm looking for inspiration for a custom Bash prompt^[1]^. I'd love to see yours! 😊

                                      ::: spoiler 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.
                                        • §6.9 "Controlling the Prompt". URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
                                          :::
                                      A This user is from outside of this forum
                                      A This user is from outside of this forum
                                      [email protected]
                                      wrote on last edited by
                                      #32

                                      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.

                                      1 Reply Last reply
                                      0
                                      • hallettj@leminal.spaceH [email protected]

                                        I use Starship

                                        T This user is from outside of this forum
                                        T This user is from outside of this forum
                                        [email protected]
                                        wrote on last edited by
                                        #33

                                        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

                                        1 Reply Last reply
                                        0
                                        • plutoniumacid@lemmy.worldP [email protected]

                                          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.

                                          M This user is from outside of this forum
                                          M This user is from outside of this forum
                                          [email protected]
                                          wrote on last edited by
                                          #34

                                          You shouldn’t just “drop bash commands into it” anyways. And if you really need it, bash is only one bash away.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups