Poetry Shell: How to shorten bash prefix

Viewed 518

When activating a poetry python shell, I get a very long string in my bash prompt:

(my-current-folder-pNzYm0GW-py3.8) (base) myusername@mycomputername>

I'd like to have it much shorter, maybe like this:

(py3.8) myusername@mycomputername>

Does anyone know how to do that?

(I guess the base comes from miniconda being also installed on the system, which I can probably fix by editing my .bashrc)

2 Answers

You can change the value of your interactive prompt :

export PS1="[\u@\h:\w ] $ "

Where:

\a : an ASCII bell character (07)
\d : the date in “Weekday Month Date” format (e.g., “Tue May 26”)
\D{format} : the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required
\e : an ASCII escape character (033)
\h : the hostname up to the first ‘.’
\H : the hostname
\j : the number of jobs currently managed by the shell
\l : the basename of the shell’s terminal device name
\n : newline
\r : carriage return
\s : the name of the shell, the basename of $0 (the portion following the final slash)
\t : the current time in 24-hour HH:MM:SS format
\T : the current time in 12-hour HH:MM:SS format
\@ : the current time in 12-hour am/pm format
\A : the current time in 24-hour HH:MM format
\u : the username of the current user
\v : the version of bash (e.g., 2.00)
\V : the release of bash, version + patch level (e.g., 2.00.0)
\w : the current working directory, with $HOME abbreviated with a tilde
\W : the basename of the current working directory, with $HOME abbreviated with a tilde
\! : the history number of this command

Afterwards just add it to your ~/.bashrc

Poetry uses virtualenv. This means, if you change the prompt prefix of the virtualenv, you change the poetry prefix.

1) Find the path of your virtualenv:

# in the directory where you use poetry
$ poetry env info
Virtualenv
Python:         3.10.4
Implementation: CPython
Path:           /Users/myuser/Library/Caches/pypoetry/virtualenvs/my-env-SQabEQie-py3.10
Valid:          True

2) Change the prompt prefix of the virtualenv

(These instructions are directly taken from here)

# cd to the path of the virtualenv
$ cd /Users/myuser/Library/Caches/pypoetry/virtualenvs/my-env-SQabEQie-py3.10
# open the file bin/activate in an editor
$ nano bin/activate

Modify the following lines to change the prefix:

...
else
    PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
...

For example, if you want to have a static prefix '(ptr)' change it to

...
else
    PS1="(ptr) ${PS1-}"
fi
...
Related