Этот файл фиксирует рабочие договоренности по плагину tmux-keys: поведение конфигов, генерации, popup/exec и правила цветовых схем.
Конфиг клавиш должен искаться строго в таком порядке (первый существующий файл):
$XDG_CONFIG_HOME/tmux/keys.yaml(или~/.config/tmux/keys.yaml, еслиXDG_CONFIG_HOMEне задан)~/.tmux/keys.yaml~/.tmux-keys.yaml
Дополнительно:
tmux-keys.plugin.zshиgenerate.pyдолжны использовать один и тот же порядок.- Плагин передает выбранный путь в
generate.pyчерезTMUX_KEYS_CONFIG. - Если конфиг не найден ни в одном месте, создается пример в первом пути (
$XDG_CONFIG_HOME/tmux/keys.yaml).
- Кэш:
${TMPDIR:-/tmp}/zsh-${UID}/tmux-keys.zsh. - Кэш считается актуальным только если он новее:
- выбранного YAML-конфига
generate.py
- Иначе скрипт должен быть пересобран.
type: exec: команда отправляется в текущий pane и запускается с Enter черезsend-keys ... C-m.- Не использовать литерал
\nдля Enter.
- Не использовать литерал
type: popup: запускать черезtmux display-popupс рабочей директорией активного pane:-d "#{pane_current_path}"
- Для долгих/шумных CLI-команд предпочтителен
type: popup, чтобы не засорять командную строку текущего pane.
В примерах (tmux-keys.example.yaml, README snippet, fallback tmux-keys.example.zsh) применяем:
Git Status/Branch->popupPython Install->popupPython CLI->exec(в обычном pane)NPM list/install/dev->popupZPM upgrade/clean/readme->popup
Цвета должны быть консистентными и предсказуемыми:
- Кнопки одного типа действия могут иметь один цвет (пример:
previous-windowиnext-window). - Кнопки-секции в главном меню (
System,Git,Python,NPM,ZPM) должны быть разными между собой. - Кнопка
Mainво всех секциях должна иметь один и тот же цвет. - Цвет
Mainне должен совпадать с цветомprevious/next. - Внутри каждой секции цвета кнопок должны быть разными.
- Внутри секции не использовать цвет самой секции из главного меню.
При изменении логики обязательно синхронизировать:
generate.pytmux-keys.plugin.zsh(если затрагивается резолв/кэш)tmux-keys.example.yamlREADME.md(пример конфигурации)tmux-keys.example.zsh(fallback-пример)