Skip to content

Installation (RU)

Baidak.D edited this page Sep 12, 2026 · 6 revisions

English · Русский

Хелпер familiar сам всё подключает: пишет include в твой kitty.conf и генерирует kitten-мапы с абсолютными путями (относительный путь kitty резолвит от ~/.config/kitty, а не от файла с map — просто относительным не обойтись). Никакой ручной правки, никакого sed, и это переживает обновления.

Homebrew (рекомендую)

brew tap denoby/familiar https://github.com/DenoBY/familiar
brew install denoby/familiar/familiar   # полное имя = доверие только этой формуле
familiar enable --all                    # киты + конфиг терминала

Полное имя denoby/familiar/familiar требует Tap Trust из Homebrew 6.0+: сторонние tap не загружаются, пока им не доверишь, а установка по полному имени доверяет только этой формуле. Как альтернатива — один раз доверить весь tap (brew trust denoby/familiar), после чего работает голое brew install familiar.

Самое свежее из master: brew install --HEAD denoby/familiar/familiar.

Из клона (без Homebrew)

git clone https://github.com/DenoBY/familiar && cd familiar
./bin/familiar enable --all

Команда одна и та же. Затем перезагрузи конфиг — Cmd+Ctrl+, — или перезапусти kitty. (Ctrl+Shift+F5 — это Linux-дефолт перезагрузки; на macOS это Cmd+Ctrl+,.)

Режимы установки

Сколько подключать:

Команда Что включает
familiar enable --all все киты + конфиг терминала (вид, сплиты, табы, русская раскладка) + restore (снимки окон)
familiar enable --kittens только все киты, конфиг терминала не трогает
familiar enable session review log только названные оверлеи (--terminal добавит и конфиг терминала)
familiar enable --terminal только конфиг терминала, без китов
familiar enable --all --theme darcula то же, что --all, но с палитрой Darcula (JetBrains) вместо дефолтной — см. Темы
familiar enable … --restore-session добавить restore к любому набору (--no-restore-session убирает его из --all)
familiar enable … --icon поставить kitty иконку familiar (--no-icon оставит родную; с конфигом терминала включено по умолчанию)
familiar disable снять familiar-блок (--restore вернёт kitty.conf из копии, снятой при первом enable)
familiar status показать, что подключено сейчас

Любой режим, который подключает конфиг терминала — --all, --terminal или --terminal рядом с именами китов, — сначала спросит подтверждение, т.к. переопределит твои настройки kitty; -y / --yes пропускает вопрос в скриптах.

Кириллические дубли клавиш (S→ы, R→к, L→д) для русской раскладки генерируются автоматически.

Языковые серверы

За переход к определению в review и log отвечает языковой сервер, поэтому на каждый язык нужен свой. familiar enable review предлагает поставить недостающие; можно и напрямую:

familiar lsp status              # что настроено и что найдено
familiar lsp install php python  # brew или npm, по реестру
familiar lsp warm php            # проиндексировать проект заранее, с прогрессом
familiar lsp clean               # снести кэш индексов, не трогая серверы

Серверы, поставленные через npm, лежат в ~/.cache/familiar/lsp/servers, индексы — рядом, в ~/.cache/familiar/lsp/index, и переживают перезагрузку: именно поэтому второй и все последующие запуски быстрые. Между сессиями в фоне ничего не работает.

Реестр

Какой сервер за какой язык отвечает, описано в config/lsp.conf — из коробки 27 языков: от PHP, Python, TypeScript/JS, Go, Rust и Java до Elixir, Haskell, Scala, Clojure, Terraform, Markdown и веб-стека (Vue, Svelte, Dockerfile, YAML, JSON/HTML/CSS). Три уровня сливаются по полям, ближний побеждает:

  1. встроенный config/lsp.conf
  2. ~/.config/familiar/lsp.conf — ваш
  3. <репо>/.familiar/lsp.conf — этого проекта

Так один проект можно увести на другой сервер, монорепозиторий — прибить к одному корню (roots-mode git), а PHP перевести с intelephense на phpactor под MIT, перенеся одну строку disabled yes. В блоке можно перечислить и shebang — так находят свой сервер файлы без расширения (bin/familiar, git-хуки). Чтобы добавить язык, которого в списке нет, выполните familiar lsp status <язык> — он напечатает блок, который останется скопировать и заполнить.

Обновление

О выходе новой версии кит скажет сам: раз в сутки он в фоне проверяет GitHub и разово показывает подсказку в футере — familiar X.Y.Z is out — brew upgrade familiar. familiar status печатает установленную версию, а строка latest: — либо up to date, либо номер новой версии с подсказкой brew upgrade familiar. Дальше:

brew update && brew upgrade denoby/familiar/familiar   # Homebrew
git pull                                               # клон

Запечённые пути стабильны и переживают обновление — а вот набор map-строк в ~/.config/kitty/familiar.conf принадлежит той версии, которой он сгенерирован: этот файл пишет только команда familiar enable, ни brew upgrade, ни git pull его не трогают. Поэтому после обновления, добавляющего клавиши (генератор менялся в 0.23.0 и 0.24.0), повтори familiar enable … с прежними аргументами — текущий режим показывает familiar status. Иначе Cmd+F в review/log перехватит сам kitty (search_scrollback) вместо кита, а оверлей, открытый из сплита, займёт размер сплита, а не весь таб.

FAMILIAR_UPDATE_CHECK=0 в окружении выключает и суточную проверку, и подсказку; заодно из familiar status пропадает строка latest:.

Удаление / откат

familiar только дописывает размеченный блок в твой kitty.conf, кладёт рядом familiar.conf и — вместе с конфигом терминала — kitty.app.icns (иконку приложения, которую kitty читает из каталога конфига); больше ничего не трогает, поэтому снимается чисто:

familiar disable            # убрать familiar-блок + familiar.conf + иконку
familiar disable --restore  # ...и вернуть kitty.conf из копии

Иконку disable убирает, только пока она та самая, что поставил familiar, — kitty возвращается к своей. Своя иконка, стоявшая до familiar, лежит в kitty.app.icns.familiar.bak и возвращается на место; ту, что подменил сам после enable, familiar не трогает. Dock кэширует иконки приложений — если после перезапуска kitty висит старая, помогает killall Dock.

При первом enable familiar один раз копирует kitty.conf в kitty.conf.familiar.bak (состояние «до familiar»). --restore возвращает его байт-в-байт; копия остаётся и после, так что откатиться можно и позже. familiar status показывает, где она лежит.

Хочешь вручную? Удали блок между маркерами # >>> familiar >>> / # <<< familiar <<< в kitty.conf, убери familiar.conf или просто скопируй kitty.conf.familiar.bak обратно поверх kitty.conf.

Открыть: Cmd+Shift+S / Cmd+Shift+R / Cmd+Shift+L.

Clone this wiki locally