refactor(dotfiles): унифицированы skills и упрощен bash_custom

Зачем: убрать дублирование 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.
This commit is contained in:
ddadmin committed 2026-02-21 19:22:10 +03:00
1 parent c94bcc19de
commit 7cd55ac988
8 files changed
+50 -89

No files matched your search

+12 -71
View File
@@ -1,81 +1,22 @@
# ==============================================================================
# 1. БАЗОВЫЕ НАСТРОЙКИ SHELL
# ==============================================================================
# Дополнительные настройки, которые не хочется держать прямо в ~/.bashrc.
# Предполагается, что ~/.bashrc уже содержит базовую логику Ubuntu (history,
# checkwinsize, dircolors/aliases, bash-completion, и т.п.) и просто sources
# этот файл.
# Прерываем выполнение, если shell не интерактивный (например, скрипты)
# Прерываем выполнение, если shell не интерактивный (например, скрипты).
case $- in
*i*) ;;
*) return;;
*) return ;;
esac
# Настройки истории команд
HISTCONTROL=ignoreboth # Игнорировать дубликаты и команды с пробелом в начале
shopt -s histappend # Дописывать историю, а не перезаписывать файл
HISTSIZE=10000 # Увеличиваем размер истории в памяти
HISTFILESIZE=20000 # Увеличиваем размер истории в файле
HISTTIMEFORMAT="%F %T " # (Опционально) Добавляет дату и время к командам в history
# Изолируем Git от глобальных прокси (чтобы случайно не "протечь" с ними в git).
; git() {
; http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= ALL_PROXY= all_proxy= command git "$@"
; }
# Обновлять переменные LINES и COLUMNS после каждой команды (полезно при ресайзе окон)
shopt -s checkwinsize
# ==============================================================================
# 2. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ И ПУТИ (PATH)
# ==============================================================================
# Собираем PATH в одном месте
export PATH="/snap/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH" # Для uv и других локальных бинарников
export PATH="$HOME/.npm-global/bin:$PATH" # Для глобальных npm пакетов
# ==============================================================================
# 3. АЛИАСЫ И УТИЛИТЫ
# ==============================================================================
# Включаем цвета для стандартных утилит
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# Навигация
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# ==============================================================================
# 4. ФУНКЦИИ И ИЗОЛЯЦИЯ
# ==============================================================================
# Изолируем Git от глобальных прокси
git() {
http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= ALL_PROXY= all_proxy= command git "$@"
}
# ==============================================================================
# 5. ПОДКЛЮЧЕНИЕ ВНЕШНИХ МОДУЛЕЙ И СЕКРЕТОВ
# ==============================================================================
# Автодополнение (Bash Autocompletion)
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# NVM (Node Version Manager)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# Пользовательские конфиги (идут в Stow)
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
# Файлы из этого репозитория (stow кладет их в $HOME).
[ -f ~/.bash_functions ] && source ~/.bash_functions
[ -f ~/.bash_prompt ] && source ~/.bash_prompt
# ЛОКАЛЬНЫЕ СЕКРЕТЫ (НЕ ДОБАВЛЯТЬ В GIT/STOW!)
# Локальные секреты (не хранить в git/stow).
[ -f ~/.env.secrets ] && source ~/.env.secrets
+1 -2
View File
@@ -27,7 +27,7 @@ set_bash_prompt() {
# ---- git branch ----
local branch=""
# Быстрее и проще, чем парсить `git branch` через sed :contentReference[oaicite:1]{index=1}
# Быстрее и проще, чем парсить `git branch` через sed
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
local git_part=""
if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
@@ -43,4 +43,3 @@ set_bash_prompt() {
# Запускаем set_bash_prompt перед каждым показом приглашения
PROMPT_COMMAND=set_bash_prompt