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:
1 parent
c94bcc19de
commit
7cd55ac988
8 files changed
+50
-89
No files matched your search
+12
-71
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user