Зачем: убрать дублирование skills между агентами и сократить кастомный bash слой до реально необходимых настроек. Что: skill conventional-commits перенесен в agents/.agents/skills, добавлены symlink-bridge пакеты для opencode и codex, обновлен README, очищен bash/.bash_custom от дублирования с системным ~/.bashrc, добавлены базовые zed settings/keymap файлы. Проверка: stow -nvv bash agents opencode codex zed и bash -n bash/.bash_custom.
46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
# ---------- Цвета ----------
|
|
RED="\[\033[0;31m\]"
|
|
GREEN="\[\033[0;32m\]"
|
|
YELLOW="\[\033[1;33m\]"
|
|
BLUE="\[\033[1;34m\]"
|
|
PURPLE="\[\033[0;35m\]"
|
|
RESET="\[\033[0m\]"
|
|
|
|
# Не даём стандартному venv ломать наш PS1
|
|
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
|
|
|
# ---------- Функция, которая вызывается перед показом приглашения ----------
|
|
set_bash_prompt() {
|
|
local exit_code=$?
|
|
|
|
# Символ приглашения: красный, если предыдущая команда упала
|
|
local prompt_symbol="$"
|
|
if [ "$exit_code" -ne 0 ]; then
|
|
prompt_symbol="${RED}\$${RESET}"
|
|
fi
|
|
|
|
# ---- venv ----
|
|
local venv_part=""
|
|
if [ -n "$VIRTUAL_ENV" ]; then
|
|
venv_part="${BLUE}($(basename "$VIRTUAL_ENV"))${RESET} "
|
|
fi
|
|
|
|
# ---- git branch ----
|
|
local branch=""
|
|
# Быстрее и проще, чем парсить `git branch` через sed
|
|
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
local git_part=""
|
|
if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
|
|
git_part=" ${PURPLE}($branch)${RESET}"
|
|
fi
|
|
|
|
# ---- Собираем двухстрочный PS1 ----
|
|
# Пример:
|
|
# (myenv) dmitry@wsl:/mnt/d/projects/myproj (main)
|
|
# $
|
|
PS1="\n${venv_part}${GREEN}\u@\h${RESET}:${YELLOW}\w${RESET}${git_part}\n${prompt_symbol} "
|
|
}
|
|
|
|
# Запускаем set_bash_prompt перед каждым показом приглашения
|
|
PROMPT_COMMAND=set_bash_prompt
|