Модуль Python venv не может добавить имя виртуальной среды в PS1 при использовании PROMPT_COMMAND?

Достаточно указать минимальное количество цветов, чтобы указать активную полосу заголовка. Создайте текстовый файл в следующем месте:

~/.local/share/color-schemes/

Файл должен заканчиваться расширением .colors. Его минимальное содержимое может включать в себя всего следующее, где Name=— любое выбранное вами имя.

[General]
Name=YourName_TitlebarColors

[WM]
activeBackground=255,0,0
activeForeground=0,0,0

В этом примере заголовок активного окна будет красным с черным текстом. Это становится очень интересным и полезным, когда вы комбинируете его со специфическими для окна правилами, такими как сопоставление в WM _CLASS, что разные приложения имеют разные активные цвета строки заголовка (подобно Android ).

1
29.02.2020, 19:50
1 ответ

Решение состоит в том, чтобы объединить соответствующие части bin/activateс ~/git-prompt.sh.

Здесь __git_ps1_venv()— это функция, которая является оболочкой __git_ps1()и изменяет первый аргумент __git_ps1(), чтобы включить виртуальную среду.

Переменная PS1должна быть установлена ​​в формате вашего приглашения.

~/.bashrc:

##################
# Prompt
##################

__git_ps1_venv() {
   local pre="$1"
   local post="$2"

   if [ -n "${VIRTUAL_ENV}" ] && [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ]; then
      if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
         # special case for Aspen magic directories
         # see http://www.zetadev.com/software/aspen/
         pre="[`basename \`dirname \"$VIRTUAL_ENV\"\``] ${pre}"
      else
         pre="(`basename \"$VIRTUAL_ENV\"`) ${pre}"
      fi
   fi

   __git_ps1 "${pre}" "${post}"
}

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

if [[ -r ~/.git-prompt.sh ]]; then
  . ~/.git-prompt.sh

   GIT_PS1_SHOWCOLORHINTS=1
   GIT_PS1_SHOWDIRTYSTATE=1
   GIT_PS1_SHOWSTASHSTATE=1
   GIT_PS1_SHOWUNTRACKEDFILES=1
   GIT_PS1_SHOWUPSTREAM="verbose name"

   PROMPT_COMMAND='__git_ps1_venv "'"${PS1%\\\$ }"'" "\\\$ "'
fi
3
28.04.2021, 23:21

Теги

Похожие вопросы