How do I change bash prompt in gnome terminal without messing up terminal title in Ubuntu 16?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







2















I don't like all long directory paths to feel up my terminal's space so, I truncate them through a python script. I have edited the .bashrc file and replaced PS1 to



export PROMPT_COMMAND='PS1="$(python /home/vinay/bash_promt.py)"'.


And when I do that terminal's title doesn't work anymore. It simply displays Terminal Which is irritating. I can change the title manually by running following command in bash:



PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"'


Is there a way to set terminal's title to the custom prompt which is being set in my bash.










share|improve this question




















  • 3





    You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

    – steeldriver
    May 15 '16 at 10:57











  • Also, the fish shell does this by default (and it has many other cool features too).

    – Andrea Lazzarotto
    May 15 '16 at 11:21


















2















I don't like all long directory paths to feel up my terminal's space so, I truncate them through a python script. I have edited the .bashrc file and replaced PS1 to



export PROMPT_COMMAND='PS1="$(python /home/vinay/bash_promt.py)"'.


And when I do that terminal's title doesn't work anymore. It simply displays Terminal Which is irritating. I can change the title manually by running following command in bash:



PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"'


Is there a way to set terminal's title to the custom prompt which is being set in my bash.










share|improve this question




















  • 3





    You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

    – steeldriver
    May 15 '16 at 10:57











  • Also, the fish shell does this by default (and it has many other cool features too).

    – Andrea Lazzarotto
    May 15 '16 at 11:21














2












2








2








I don't like all long directory paths to feel up my terminal's space so, I truncate them through a python script. I have edited the .bashrc file and replaced PS1 to



export PROMPT_COMMAND='PS1="$(python /home/vinay/bash_promt.py)"'.


And when I do that terminal's title doesn't work anymore. It simply displays Terminal Which is irritating. I can change the title manually by running following command in bash:



PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"'


Is there a way to set terminal's title to the custom prompt which is being set in my bash.










share|improve this question
















I don't like all long directory paths to feel up my terminal's space so, I truncate them through a python script. I have edited the .bashrc file and replaced PS1 to



export PROMPT_COMMAND='PS1="$(python /home/vinay/bash_promt.py)"'.


And when I do that terminal's title doesn't work anymore. It simply displays Terminal Which is irritating. I can change the title manually by running following command in bash:



PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"'


Is there a way to set terminal's title to the custom prompt which is being set in my bash.







16.04 gnome-terminal ubuntu-gnome






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 15 '16 at 13:09









Sinscary

895622




895622










asked May 15 '16 at 9:17









Vinay TiwaryVinay Tiwary

1112




1112








  • 3





    You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

    – steeldriver
    May 15 '16 at 10:57











  • Also, the fish shell does this by default (and it has many other cool features too).

    – Andrea Lazzarotto
    May 15 '16 at 11:21














  • 3





    You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

    – steeldriver
    May 15 '16 at 10:57











  • Also, the fish shell does this by default (and it has many other cool features too).

    – Andrea Lazzarotto
    May 15 '16 at 11:21








3




3





You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

– steeldriver
May 15 '16 at 10:57





You know there's a PROMPT_DIRTRIM variable that controls the number of directory components, right?

– steeldriver
May 15 '16 at 10:57













Also, the fish shell does this by default (and it has many other cool features too).

– Andrea Lazzarotto
May 15 '16 at 11:21





Also, the fish shell does this by default (and it has many other cool features too).

– Andrea Lazzarotto
May 15 '16 at 11:21










3 Answers
3






active

oldest

votes


















1














For gnome-terminal, the terminal title is set via PROMPT_COMMAND which is defined in /etc/profile.d/vte-2.91.sh.



PROMPT_COMMAND, as defined in this script, does two things:




  • changes the terminal title using the OSC 0 escape sequence (33]0;NEW_TITLE07),


  • changes the terminal's notion of the current directory using the OSC 7 escape sequence (33]7;NEW_CURRENT_DIRECTORY07, this is factored out to the __vte_osc7 function).



Should you remove the second one from your PROMPT_COMMAND, your newly opened terminal windows or tabs wouldn't open in the directory where you were standing in the previous terminal. Most likely you don't want this.



So, in your shell startup scripts, after sourcing vte-2.91.sh you have to construct your preferred PROMPT_COMMAND that sets the title in a similar manner to vte-2.91.sh, and sets the current working directory exactly as it's done by default.



I'm not aware of any way to refer to PS1's resolved value (that is, after substituting the username and such) inside PROMPT_COMMAND or anywhere else (let alone filter out the escape sequences such as color changes). If you wish to see the same string in your prompt and in the window title, I believe you need to duplicate the construction of that string for PS1 and PROMPT_COMMAND.






share|improve this answer































    0














    This will work for you



    open ~/.bashrc . Find the line that says:



    PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


    Comment out this line, by putting a # character in front of it:



    # PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


    Now add this line (you may want to put it just after the commented-out line):



    PROMPT_COMMAND='echo -ne "33]0;Custom Name07"'


    Replace Custom Name with whatever you want to change the Terminal title to be.



    Hope this helps.






    share|improve this answer
























    • Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

      – Vinay Tiwary
      May 17 '16 at 5:12











    • if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

      – Sinscary
      May 17 '16 at 13:55











    • No offence!! But I tried the command before posting the question here.

      – Vinay Tiwary
      May 19 '16 at 8:00











    • dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

      – Sinscary
      May 19 '16 at 8:16











    • Yes bro it changes title as I said in question but then it restores original bash prompt.

      – Vinay Tiwary
      May 24 '16 at 6:12



















    0














    The escape sequence to use is ESC]2;new titleBEL where ESC and BEL are the escape and bell characters. Like [e]2;NEWTITLEa]. Using #Bash escape sequences, changing the title in your prompt looks like:



    export PS1='[e]2;new titlea]prompt > ' doc ref



    So an example of a multi-color truncated bash prompt that also has a custom terminal title is:



    export PS1='[e]2;$PWDa]e[93m$USERe[97m@e[90m$HOSTNAME e[93m$ e[0m'



    In that example the terminal title will always reflect the present working directory ($PWD) and the terminal prompt will always look like the following regardless of what directory you are in: user@hostname $.



    You can replace $PWD with CUSTOM TITLE to make the terminal title always reflect CUSTOM TITLE.



    Update

    Be careful when not wrapping non-printed characters in [ and ]. It works without it and I've been doing it without them for years. However, as I found out today with some setups, it can cause some issues in terminal. Below is a cleaner version using variables and wrapping the color codes:



    T_YELLOW='[e[93m]'
    T_WHITE='[e[97m]'
    T_GRAY='[e[90m]'
    T_DEFAULT='[e[0m]'
    T_TITLE='[e]2;$PWDa]'
    export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"





    share|improve this answer


























      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "89"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f772655%2fhow-do-i-change-bash-prompt-in-gnome-terminal-without-messing-up-terminal-title%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      For gnome-terminal, the terminal title is set via PROMPT_COMMAND which is defined in /etc/profile.d/vte-2.91.sh.



      PROMPT_COMMAND, as defined in this script, does two things:




      • changes the terminal title using the OSC 0 escape sequence (33]0;NEW_TITLE07),


      • changes the terminal's notion of the current directory using the OSC 7 escape sequence (33]7;NEW_CURRENT_DIRECTORY07, this is factored out to the __vte_osc7 function).



      Should you remove the second one from your PROMPT_COMMAND, your newly opened terminal windows or tabs wouldn't open in the directory where you were standing in the previous terminal. Most likely you don't want this.



      So, in your shell startup scripts, after sourcing vte-2.91.sh you have to construct your preferred PROMPT_COMMAND that sets the title in a similar manner to vte-2.91.sh, and sets the current working directory exactly as it's done by default.



      I'm not aware of any way to refer to PS1's resolved value (that is, after substituting the username and such) inside PROMPT_COMMAND or anywhere else (let alone filter out the escape sequences such as color changes). If you wish to see the same string in your prompt and in the window title, I believe you need to duplicate the construction of that string for PS1 and PROMPT_COMMAND.






      share|improve this answer




























        1














        For gnome-terminal, the terminal title is set via PROMPT_COMMAND which is defined in /etc/profile.d/vte-2.91.sh.



        PROMPT_COMMAND, as defined in this script, does two things:




        • changes the terminal title using the OSC 0 escape sequence (33]0;NEW_TITLE07),


        • changes the terminal's notion of the current directory using the OSC 7 escape sequence (33]7;NEW_CURRENT_DIRECTORY07, this is factored out to the __vte_osc7 function).



        Should you remove the second one from your PROMPT_COMMAND, your newly opened terminal windows or tabs wouldn't open in the directory where you were standing in the previous terminal. Most likely you don't want this.



        So, in your shell startup scripts, after sourcing vte-2.91.sh you have to construct your preferred PROMPT_COMMAND that sets the title in a similar manner to vte-2.91.sh, and sets the current working directory exactly as it's done by default.



        I'm not aware of any way to refer to PS1's resolved value (that is, after substituting the username and such) inside PROMPT_COMMAND or anywhere else (let alone filter out the escape sequences such as color changes). If you wish to see the same string in your prompt and in the window title, I believe you need to duplicate the construction of that string for PS1 and PROMPT_COMMAND.






        share|improve this answer


























          1












          1








          1







          For gnome-terminal, the terminal title is set via PROMPT_COMMAND which is defined in /etc/profile.d/vte-2.91.sh.



          PROMPT_COMMAND, as defined in this script, does two things:




          • changes the terminal title using the OSC 0 escape sequence (33]0;NEW_TITLE07),


          • changes the terminal's notion of the current directory using the OSC 7 escape sequence (33]7;NEW_CURRENT_DIRECTORY07, this is factored out to the __vte_osc7 function).



          Should you remove the second one from your PROMPT_COMMAND, your newly opened terminal windows or tabs wouldn't open in the directory where you were standing in the previous terminal. Most likely you don't want this.



          So, in your shell startup scripts, after sourcing vte-2.91.sh you have to construct your preferred PROMPT_COMMAND that sets the title in a similar manner to vte-2.91.sh, and sets the current working directory exactly as it's done by default.



          I'm not aware of any way to refer to PS1's resolved value (that is, after substituting the username and such) inside PROMPT_COMMAND or anywhere else (let alone filter out the escape sequences such as color changes). If you wish to see the same string in your prompt and in the window title, I believe you need to duplicate the construction of that string for PS1 and PROMPT_COMMAND.






          share|improve this answer













          For gnome-terminal, the terminal title is set via PROMPT_COMMAND which is defined in /etc/profile.d/vte-2.91.sh.



          PROMPT_COMMAND, as defined in this script, does two things:




          • changes the terminal title using the OSC 0 escape sequence (33]0;NEW_TITLE07),


          • changes the terminal's notion of the current directory using the OSC 7 escape sequence (33]7;NEW_CURRENT_DIRECTORY07, this is factored out to the __vte_osc7 function).



          Should you remove the second one from your PROMPT_COMMAND, your newly opened terminal windows or tabs wouldn't open in the directory where you were standing in the previous terminal. Most likely you don't want this.



          So, in your shell startup scripts, after sourcing vte-2.91.sh you have to construct your preferred PROMPT_COMMAND that sets the title in a similar manner to vte-2.91.sh, and sets the current working directory exactly as it's done by default.



          I'm not aware of any way to refer to PS1's resolved value (that is, after substituting the username and such) inside PROMPT_COMMAND or anywhere else (let alone filter out the escape sequences such as color changes). If you wish to see the same string in your prompt and in the window title, I believe you need to duplicate the construction of that string for PS1 and PROMPT_COMMAND.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered May 15 '16 at 11:54









          egmontegmont

          4,50011226




          4,50011226

























              0














              This will work for you



              open ~/.bashrc . Find the line that says:



              PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Comment out this line, by putting a # character in front of it:



              # PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Now add this line (you may want to put it just after the commented-out line):



              PROMPT_COMMAND='echo -ne "33]0;Custom Name07"'


              Replace Custom Name with whatever you want to change the Terminal title to be.



              Hope this helps.






              share|improve this answer
























              • Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

                – Vinay Tiwary
                May 17 '16 at 5:12











              • if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

                – Sinscary
                May 17 '16 at 13:55











              • No offence!! But I tried the command before posting the question here.

                – Vinay Tiwary
                May 19 '16 at 8:00











              • dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

                – Sinscary
                May 19 '16 at 8:16











              • Yes bro it changes title as I said in question but then it restores original bash prompt.

                – Vinay Tiwary
                May 24 '16 at 6:12
















              0














              This will work for you



              open ~/.bashrc . Find the line that says:



              PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Comment out this line, by putting a # character in front of it:



              # PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Now add this line (you may want to put it just after the commented-out line):



              PROMPT_COMMAND='echo -ne "33]0;Custom Name07"'


              Replace Custom Name with whatever you want to change the Terminal title to be.



              Hope this helps.






              share|improve this answer
























              • Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

                – Vinay Tiwary
                May 17 '16 at 5:12











              • if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

                – Sinscary
                May 17 '16 at 13:55











              • No offence!! But I tried the command before posting the question here.

                – Vinay Tiwary
                May 19 '16 at 8:00











              • dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

                – Sinscary
                May 19 '16 at 8:16











              • Yes bro it changes title as I said in question but then it restores original bash prompt.

                – Vinay Tiwary
                May 24 '16 at 6:12














              0












              0








              0







              This will work for you



              open ~/.bashrc . Find the line that says:



              PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Comment out this line, by putting a # character in front of it:



              # PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Now add this line (you may want to put it just after the commented-out line):



              PROMPT_COMMAND='echo -ne "33]0;Custom Name07"'


              Replace Custom Name with whatever you want to change the Terminal title to be.



              Hope this helps.






              share|improve this answer













              This will work for you



              open ~/.bashrc . Find the line that says:



              PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Comment out this line, by putting a # character in front of it:



              # PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


              Now add this line (you may want to put it just after the commented-out line):



              PROMPT_COMMAND='echo -ne "33]0;Custom Name07"'


              Replace Custom Name with whatever you want to change the Terminal title to be.



              Hope this helps.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered May 15 '16 at 9:31









              SinscarySinscary

              895622




              895622













              • Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

                – Vinay Tiwary
                May 17 '16 at 5:12











              • if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

                – Sinscary
                May 17 '16 at 13:55











              • No offence!! But I tried the command before posting the question here.

                – Vinay Tiwary
                May 19 '16 at 8:00











              • dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

                – Sinscary
                May 19 '16 at 8:16











              • Yes bro it changes title as I said in question but then it restores original bash prompt.

                – Vinay Tiwary
                May 24 '16 at 6:12



















              • Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

                – Vinay Tiwary
                May 17 '16 at 5:12











              • if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

                – Sinscary
                May 17 '16 at 13:55











              • No offence!! But I tried the command before posting the question here.

                – Vinay Tiwary
                May 19 '16 at 8:00











              • dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

                – Sinscary
                May 19 '16 at 8:16











              • Yes bro it changes title as I said in question but then it restores original bash prompt.

                – Vinay Tiwary
                May 24 '16 at 6:12

















              Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

              – Vinay Tiwary
              May 17 '16 at 5:12





              Nope! This doesn't work at all. Same command I've mention in my question only. I believe you didn't get my question correctly. Firing up this command resets my bash promp, which I don't want.

              – Vinay Tiwary
              May 17 '16 at 5:12













              if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

              – Sinscary
              May 17 '16 at 13:55





              if i am not wrong you said that you can change title by running PROMPT_COMMAND='echo -ne "33]0;Custom Name07"' . If that's the case than if you take a moment to read my answer carefully you will see that i asked you to add that line to your ~/.bashrc file. hope you won't mind giving it a shot.

              – Sinscary
              May 17 '16 at 13:55













              No offence!! But I tried the command before posting the question here.

              – Vinay Tiwary
              May 19 '16 at 8:00





              No offence!! But I tried the command before posting the question here.

              – Vinay Tiwary
              May 19 '16 at 8:00













              dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

              – Sinscary
              May 19 '16 at 8:16





              dude when you run PROMPT_COMMAND='echo -ne "33]0;CUSTOM TITLE07"' does it changed your title.

              – Sinscary
              May 19 '16 at 8:16













              Yes bro it changes title as I said in question but then it restores original bash prompt.

              – Vinay Tiwary
              May 24 '16 at 6:12





              Yes bro it changes title as I said in question but then it restores original bash prompt.

              – Vinay Tiwary
              May 24 '16 at 6:12











              0














              The escape sequence to use is ESC]2;new titleBEL where ESC and BEL are the escape and bell characters. Like [e]2;NEWTITLEa]. Using #Bash escape sequences, changing the title in your prompt looks like:



              export PS1='[e]2;new titlea]prompt > ' doc ref



              So an example of a multi-color truncated bash prompt that also has a custom terminal title is:



              export PS1='[e]2;$PWDa]e[93m$USERe[97m@e[90m$HOSTNAME e[93m$ e[0m'



              In that example the terminal title will always reflect the present working directory ($PWD) and the terminal prompt will always look like the following regardless of what directory you are in: user@hostname $.



              You can replace $PWD with CUSTOM TITLE to make the terminal title always reflect CUSTOM TITLE.



              Update

              Be careful when not wrapping non-printed characters in [ and ]. It works without it and I've been doing it without them for years. However, as I found out today with some setups, it can cause some issues in terminal. Below is a cleaner version using variables and wrapping the color codes:



              T_YELLOW='[e[93m]'
              T_WHITE='[e[97m]'
              T_GRAY='[e[90m]'
              T_DEFAULT='[e[0m]'
              T_TITLE='[e]2;$PWDa]'
              export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"





              share|improve this answer






























                0














                The escape sequence to use is ESC]2;new titleBEL where ESC and BEL are the escape and bell characters. Like [e]2;NEWTITLEa]. Using #Bash escape sequences, changing the title in your prompt looks like:



                export PS1='[e]2;new titlea]prompt > ' doc ref



                So an example of a multi-color truncated bash prompt that also has a custom terminal title is:



                export PS1='[e]2;$PWDa]e[93m$USERe[97m@e[90m$HOSTNAME e[93m$ e[0m'



                In that example the terminal title will always reflect the present working directory ($PWD) and the terminal prompt will always look like the following regardless of what directory you are in: user@hostname $.



                You can replace $PWD with CUSTOM TITLE to make the terminal title always reflect CUSTOM TITLE.



                Update

                Be careful when not wrapping non-printed characters in [ and ]. It works without it and I've been doing it without them for years. However, as I found out today with some setups, it can cause some issues in terminal. Below is a cleaner version using variables and wrapping the color codes:



                T_YELLOW='[e[93m]'
                T_WHITE='[e[97m]'
                T_GRAY='[e[90m]'
                T_DEFAULT='[e[0m]'
                T_TITLE='[e]2;$PWDa]'
                export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"





                share|improve this answer




























                  0












                  0








                  0







                  The escape sequence to use is ESC]2;new titleBEL where ESC and BEL are the escape and bell characters. Like [e]2;NEWTITLEa]. Using #Bash escape sequences, changing the title in your prompt looks like:



                  export PS1='[e]2;new titlea]prompt > ' doc ref



                  So an example of a multi-color truncated bash prompt that also has a custom terminal title is:



                  export PS1='[e]2;$PWDa]e[93m$USERe[97m@e[90m$HOSTNAME e[93m$ e[0m'



                  In that example the terminal title will always reflect the present working directory ($PWD) and the terminal prompt will always look like the following regardless of what directory you are in: user@hostname $.



                  You can replace $PWD with CUSTOM TITLE to make the terminal title always reflect CUSTOM TITLE.



                  Update

                  Be careful when not wrapping non-printed characters in [ and ]. It works without it and I've been doing it without them for years. However, as I found out today with some setups, it can cause some issues in terminal. Below is a cleaner version using variables and wrapping the color codes:



                  T_YELLOW='[e[93m]'
                  T_WHITE='[e[97m]'
                  T_GRAY='[e[90m]'
                  T_DEFAULT='[e[0m]'
                  T_TITLE='[e]2;$PWDa]'
                  export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"





                  share|improve this answer















                  The escape sequence to use is ESC]2;new titleBEL where ESC and BEL are the escape and bell characters. Like [e]2;NEWTITLEa]. Using #Bash escape sequences, changing the title in your prompt looks like:



                  export PS1='[e]2;new titlea]prompt > ' doc ref



                  So an example of a multi-color truncated bash prompt that also has a custom terminal title is:



                  export PS1='[e]2;$PWDa]e[93m$USERe[97m@e[90m$HOSTNAME e[93m$ e[0m'



                  In that example the terminal title will always reflect the present working directory ($PWD) and the terminal prompt will always look like the following regardless of what directory you are in: user@hostname $.



                  You can replace $PWD with CUSTOM TITLE to make the terminal title always reflect CUSTOM TITLE.



                  Update

                  Be careful when not wrapping non-printed characters in [ and ]. It works without it and I've been doing it without them for years. However, as I found out today with some setups, it can cause some issues in terminal. Below is a cleaner version using variables and wrapping the color codes:



                  T_YELLOW='[e[93m]'
                  T_WHITE='[e[97m]'
                  T_GRAY='[e[90m]'
                  T_DEFAULT='[e[0m]'
                  T_TITLE='[e]2;$PWDa]'
                  export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 10 '17 at 20:44

























                  answered Nov 4 '17 at 13:00









                  jtlindseyjtlindsey

                  4811616




                  4811616






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Ask Ubuntu!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f772655%2fhow-do-i-change-bash-prompt-in-gnome-terminal-without-messing-up-terminal-title%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      How did Captain America manage to do this?

                      迪纳利

                      南乌拉尔铁路局