diff --git a/README.md b/README.md index 2a2b9f2..e1a1146 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ ## 📦 Содержимое ### Bash -- **Файл:** `bash/.bashrc` -- Настройки shell с поддержкой NVM (Node.js), uv (Python), npm -- Кастомный двухстрочный prompt (загружается из `~/.bash_prompt`) +- **Файлы:** `bash/.bash_custom`, `bash/.bash_functions`, `bash/.bash_prompt` +- Подключение кастомных bash-файлов (функции, prompt, секреты) поверх стандартного `~/.bashrc` +- Кастомный двухстрочный prompt (подключается из `~/.bash_prompt`) - Поддержка цветного вывода и автодополнения ### Tmux @@ -43,6 +43,15 @@ - **zread** — чтение GitHub репозиториев - **playwright** — браузерная автоматизация - Требует переменных окружения (см. `.env.example`) +- Скиллы берутся из общего пакета `agents/.agents/skills/` через симлинк `~/.config/opencode/skills` + +### Agents (shared skills) +- **Директория:** `agents/.agents/skills/` +- Каноничное место для общих скиллов в формате `~/.agents/skills//SKILL.md` + +### Codex +- **Директория:** `codex/.codex/skills/` +- Тонкие симлинки в `~/.codex/skills/` на общие skills из `~/.agents/skills/` ## 🚀 Установка @@ -50,7 +59,12 @@ ```bash # Bash -cp bash/.bashrc ~/ +cp bash/.bash_custom ~/.bash_custom +cp bash/.bash_functions ~/.bash_functions +cp bash/.bash_prompt ~/.bash_prompt + +# Подключите кастомные настройки в ~/.bashrc (один раз) +# [ -f ~/.bash_custom ] && source ~/.bash_custom source ~/.bashrc # Tmux @@ -67,6 +81,14 @@ cp zed/.config/zed/* ~/.config/zed/ 2>/dev/null || true # Opencode mkdir -p ~/.config/opencode cp opencode/.config/opencode/* ~/.config/opencode/ + +# Agents (shared skills) +mkdir -p ~/.agents/skills +cp -r agents/.agents/skills/* ~/.agents/skills/ + +# Codex (bridge to shared skills) +mkdir -p ~/.codex/skills +ln -snf ~/.agents/skills/conventional-commits ~/.codex/skills/conventional-commits ``` ### Stow (рекомендуется) @@ -77,7 +99,12 @@ sudo apt install stow # Применение конфигов cd /path/to/dotfiles -stow bash tmux vim zed opencode +stow bash tmux vim zed agents opencode codex +``` + +Важно: `bash` пакет кладет файлы `~/.bash_custom`, `~/.bash_functions`, `~/.bash_prompt`. Убедитесь, что ваш `~/.bashrc` содержит строку: +```bash +[ -f ~/.bash_custom ] && source ~/.bash_custom ``` ## 🔧 Требования @@ -90,8 +117,6 @@ stow bash tmux vim zed opencode ## 📝 Дополнительные файлы Для полной настройки создайте: -- `~/.bash_prompt` — кастомный prompt -- `~/.bash_functions` — кастомные функции bash (рекомендуется: симлинк на `dotfiles/bash/.bash_functions`) - `~/.bash_aliases` — персональные алиасы - `~/.env.secrets` — приватные переменные окружения (API ключи) @@ -100,10 +125,7 @@ stow bash tmux vim zed opencode ### Кастомные функции bash Файл `bash/.bash_functions` содержит пользовательские функции (proxy_on/off, myip и др.). -Рекомендуется создать симлинк: -```bash -ln -s /path/to/dotfiles/bash/.bash_functions ~/.bash_functions -``` +При использовании `stow bash` он будет доступен как `~/.bash_functions`. ### Приватные переменные (секреты) @@ -124,7 +146,3 @@ export ZAI_API_KEY="your_zai_api_key_here" Файл `~/.env.secrets` автоматически подгружается при старте shell. См. `.env.example` для дополнительной информации. - -## 📄 Лицензия - -MIT — используйте свободно. diff --git a/opencode/.config/opencode/skills/conventional-commits/SKILL.md b/agents/.agents/skills/conventional-commits/SKILL.md similarity index 99% rename from opencode/.config/opencode/skills/conventional-commits/SKILL.md rename to agents/.agents/skills/conventional-commits/SKILL.md index 2dc0cdd..dff5f67 100644 --- a/opencode/.config/opencode/skills/conventional-commits/SKILL.md +++ b/agents/.agents/skills/conventional-commits/SKILL.md @@ -74,4 +74,3 @@ refactor(docker): optimize postgres-bookings image size Что: switched base image to alpine, removed intermediate build artifacts. Проверка: docker build and check image size. EOF - diff --git a/bash/.bash_custom b/bash/.bash_custom index bdc6551..0a276aa 100644 --- a/bash/.bash_custom +++ b/bash/.bash_custom @@ -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 diff --git a/bash/.bash_prompt b/bash/.bash_prompt index ac57e78..a6db1c6 100644 --- a/bash/.bash_prompt +++ b/bash/.bash_prompt @@ -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 - diff --git a/codex/.codex/skills/conventional-commits b/codex/.codex/skills/conventional-commits new file mode 120000 index 0000000..390be38 --- /dev/null +++ b/codex/.codex/skills/conventional-commits @@ -0,0 +1 @@ +../../../agents/.agents/skills/conventional-commits \ No newline at end of file diff --git a/opencode/.config/opencode/skills b/opencode/.config/opencode/skills new file mode 120000 index 0000000..88dd050 --- /dev/null +++ b/opencode/.config/opencode/skills @@ -0,0 +1 @@ +../../../agents/.agents/skills \ No newline at end of file diff --git a/zed/.config/zed/keymap.json b/zed/.config/zed/keymap.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/zed/.config/zed/keymap.json @@ -0,0 +1 @@ +[] diff --git a/zed/.config/zed/settings.json b/zed/.config/zed/settings.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/zed/.config/zed/settings.json @@ -0,0 +1 @@ +{}