# Установка Установка оболочки [`Zsh`](https://www.zsh.org): ```sh sudo apt-get install git zsh ``` Установка желательных пакетов: ```sh sudo apt-get install autojump grc grepcidr keychain kitty-terminfo peco wmctrl xdotool ``` Если в системе установлен пакет `fzf`, лучше его удалить, так как устанавливаемый плагин может с ним конфликтовать: ```sh sudo apt-get remove fzf ``` Клонирование репозитория в каталог `~/.config/zsh`: ```sh git clone https://git.246060.ru/f1x1t/zshrc ~/.config/zsh ``` # Базовая настройка С правами суперпользователя открыть файл `/etc/zsh/zshenv` в редакторе командой ```sh sudo ${EDITOR:-mcedit} /etc/zsh/zshenv ``` и добавить строку ```sh [[ -z "$ZDOTDIR" ]] && export ZDOTDIR="$HOME/.config/zsh" ``` Установить интерпретатор Zsh по умолчанию для пользователя `username`. ```sh sudo usermod -s /usr/bin/zsh username ``` # Настройка агентов Существует несколько вариантов настройки агентов для SSH и/или GPG. Для любого из вариантов следует скопировать шаблонный файл для настроек: ```sh cp ~/.config/zsh/55-agents.zsh ~/.config/zsh/55-agents.user.zsh ``` ## Настройка GPG агента Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки: ```sh # zcomet load ohmyzsh plugins/gpg-agent ``` Пример файла настройки GPG агента `~/.config/gnupg/gpg-agent.conf`: ```text default-cache-ttl 36000 max-cache-ttl 999999 enable-putty-support default-cache-ttl-ssh 36000 allow-loopback-pinentry pinentry-program /usr/bin/pinentry-qt # enable-ssh-support ``` Чтобы включить в GPG агенте поддержку SSH, нужно раскомментировать последнюю строку. ## Настройка SSH агента Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки: ```sh # zstyle :omz:plugins:ssh-agent agent-forwarding on # zstyle :omz:plugins:ssh-agent identities id_rsa # zstyle :omz:plugins:ssh-agent lifetime 10h # zcomet load ohmyzsh plugins/ssh-agent ``` Добавить в конец файла `~/.ssh/config` правило для разрешения агенту сохранять ключи: ```text Host * AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa ``` ## Настройка Keychain Программа Keychain позволит использовать агенты GPG и SSH между входами в систему. Для её работы необходимо отключить в системе все автоматические запуски агентов, например в файле `/etc/X11/Xsession.options` удалить строку: ```sh use-ssh-agent ``` Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки: ```sh # zstyle :omz:plugins:keychain identities id_rsa 01234567 # zstyle :omz:plugins:keychain options --quiet --inherit local-once --noask --nocolor --quick # zstyle :omz:plugins:keychain agents gpg,ssh # zcomet load ohmyzsh plugins/keychain ``` Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше. ## Инициализация После редактирования файлов настройки запустить `zsh`. Автоматически будет загружен менеджер [zcomet](https://github.com/agkozak/zcomet) и необходимые плагины. ## Обновление Обновление `zcomet` и плагинов: ```sh zu ```` ## Устранение проблем Для решения некоторых проблем необходимо загрузить файл с дополнительными командами в терминале: ```sh source $HOME/.config/zsh/fixes.zsh ``` Для обеспечения поддержки терминала `kitty` на системах, где недоступно его описание, можно выполнить команду: ```sh fix-kitty-terminal-support ``` Для исправления работы файлового менеджера Midnight Commander в терминале `kitty`, можно выполнить команду: ```sh fix-mc-kitty-support -f ```