-
Notifications
You must be signed in to change notification settings - Fork 0
Installation (RU)
English · Русский
Хелпер familiar сам всё подключает: пишет include в твой kitty.conf и
генерирует kitten-мапы с абсолютными путями (относительный путь kitty резолвит от
~/.config/kitty, а не от файла с map — просто относительным не обойтись).
Никакой ручной правки, никакого sed, и это переживает обновления.
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.
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). Три уровня сливаются по полям, ближний побеждает:
- встроенный
config/lsp.conf -
~/.config/familiar/lsp.conf— ваш -
<репо>/.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.
English
Русский