Cmder: How to edit prompt for {cmd::CMDER}} ???

Created on 30 Jun 2017  路  4Comments  路  Source: cmderdev/cmder

Hi all,

first of all, WOW! GREAT JOB!
I want to use cmder to use Git on windows. As my first test with original "git for windows", which had a very poor performance (very slow command execution) I found your solution and on the first look, it is pretty awesome! So thanks for this!

As I am new to git too, so I want to have a little help in my PS1. I found this PS1, which I really want to use in cmder:

Color_Off="\[\033[0m\]"       # Text Reset


Black="\[\033[0;30m\]"        # Black
Red="\[\033[0;31m\]"          # Red
Green="\[\033[0;32m\]"        # Green
Yellow="\[\033[0;33m\]"       # Yellow
Blue="\[\033[0;34m\]"         # Blue
Purple="\[\033[0;35m\]"       # Purple
Cyan="\[\033[0;36m\]"         # Cyan
White="\[\033[0;37m\]"        # White


BBlack="\[\033[1;30m\]"       # Black
BRed="\[\033[1;31m\]"         # Red
BGreen="\[\033[1;32m\]"       # Green
BYellow="\[\033[1;33m\]"      # Yellow
BBlue="\[\033[1;34m\]"        # Blue
BPurple="\[\033[1;35m\]"      # Purple
BCyan="\[\033[1;36m\]"        # Cyan
BWhite="\[\033[1;37m\]"       # White

UBlack="\[\033[4;30m\]"       # Black
URed="\[\033[4;31m\]"         # Red
UGreen="\[\033[4;32m\]"       # Green
UYellow="\[\033[4;33m\]"      # Yellow
UBlue="\[\033[4;34m\]"        # Blue
UPurple="\[\033[4;35m\]"      # Purple
UCyan="\[\033[4;36m\]"        # Cyan
UWhite="\[\033[4;37m\]"       # White


On_Black="\[\033[40m\]"       # Black
On_Red="\[\033[41m\]"         # Red
On_Green="\[\033[42m\]"       # Green
On_Yellow="\[\033[43m\]"      # Yellow
On_Blue="\[\033[44m\]"        # Blue
On_Purple="\[\033[45m\]"      # Purple
On_Cyan="\[\033[46m\]"        # Cyan
On_White="\[\033[47m\]"       # White


IBlack="\[\033[0;90m\]"       # Black
IRed="\[\033[0;91m\]"         # Red
IGreen="\[\033[0;92m\]"       # Green
IYellow="\[\033[0;93m\]"      # Yellow
IBlue="\[\033[0;94m\]"        # Blue
IPurple="\[\033[0;95m\]"      # Purple
ICyan="\[\033[0;96m\]"        # Cyan
IWhite="\[\033[0;97m\]"       # White


BIBlack="\[\033[1;90m\]"      # Black
BIRed="\[\033[1;91m\]"        # Red
BIGreen="\[\033[1;92m\]"      # Green
BIYellow="\[\033[1;93m\]"     # Yellow
BIBlue="\[\033[1;94m\]"       # Blue
BIPurple="\[\033[1;95m\]"     # Purple
BICyan="\[\033[1;96m\]"       # Cyan
BIWhite="\[\033[1;97m\]"      # White


On_IBlack="\[\033[0;100m\]"   # Black
On_IRed="\[\033[0;101m\]"     # Red
On_IGreen="\[\033[0;102m\]"   # Green
On_IYellow="\[\033[0;103m\]"  # Yellow
On_IBlue="\[\033[0;104m\]"    # Blue
On_IPurple="\[\033[10;95m\]"  # Purple
On_ICyan="\[\033[0;106m\]"    # Cyan
On_IWhite="\[\033[0;107m\]"   # White


Time12h="\T"
Time12a="\@"
PathShort="\w"
PathFull="\W"
NewLine="\n"
Jobs="\j"

export PS1=$IBlack$Time12h$Color_Off'$(git branch &>/dev/null;\
if [ $? -eq 0 ]; then \
  echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \
  if [ "$?" -eq "0" ]; then \
    # @4 - Clean repository - nothing to commit
    echo "'$Green'"$(__git_ps1 " (%s)"); \
  else \
    # @5 - Changes to working tree
    echo "'$IRed'"$(__git_ps1 " {%s}"); \
  fi) '$BYellow$PathShort$Color_Off'\$ "; \
else \
  # @2 - Prompt when not in GIT repo
  echo " '$Yellow$PathShort$Color_Off'\$ "; \
fi)'

I want to use the default cmd::CMDER (because nice colors) which is set in the options. Can you please tell me, if and how it is possible to use the PS1 above instead of the default PS1 (but I want to keep the cmder icon, it is pretty awesome and remembers me to Half Life :D).

Thanks in Advance!

Most helpful comment

I was just looking for an answer for this as well.
As far as I can tell, the prompt is defined in \vendor\clink.lua.

All 4 comments

I was just looking for an answer for this as well.
As far as I can tell, the prompt is defined in \vendor\clink.lua.

At least for the cmd promt (no idea about bash), you wuld need to add you own lua file which duplicates https://github.com/cmderdev/cmder/blob/master/vendor/clink.lua#L20-L49 and then register it after the cmder supplied one (command like here: https://github.com/cmderdev/cmder/blob/master/vendor/clink.lua#L315-L316, eg.g use 2)

We might add this to Customization page someday.

Default Cmder sessions add *.lua files to the config folder. _Note: This is an advanced feature and requires knowledge of the lua language._

Bash sessions you could add code to config/user_profile.sh or add a file to config/profile.d/[filename].sh. _Note: This is an advanced feature and requires knowledge of bash language and prompt customization._

Poweshell sessions, Im not sure this is possible with existing cmder but if it is it would be similar to the Bash but instead of .sh extensions you would use the same locations with .ps1 extension.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

GlassGruber picture GlassGruber  路  3Comments

isnullxbh picture isnullxbh  路  3Comments

brunowego picture brunowego  路  3Comments

luisrudge picture luisrudge  路  3Comments

emesx picture emesx  路  3Comments