zsh/README.md

155 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка
Установка оболочки [`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
```
# Базовая настройка
Создать файл `$HOME/.zshenv` со следующим содержимым:
```sh
# Загрузка конфигурации из каталога $ZDOTDIR
export ZDOTDIR=$HOME/.config/zsh
source $ZDOTDIR/.zshenv
```
Установить интерпретатор 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
# zinit snippet OMZP::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
# zinit snippet OMZP::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
# zinit snippet OMZP::keychain
```
Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше.
## Инициализация
После редактирования файлов настройки запустить `zsh`. Автоматически будет загружен
менеджер [zinit](https://github.com/zdharma-continuum/zinit) и необходимые плагины.
## Обновление
Обновление `zinit` и плагинов:
```sh
zu
````
## Устранение проблем
Для решения некоторых проблем необходимо загрузить файл с дополнительными
командами в терминале:
```sh
source $HOME/.config/zsh/fixes.zsh
```
Для обеспечения поддержки терминала `kitty` на системах, где недоступно
его описание, можно выполнить команду:
```sh
fix-kitty-terminal-support
```
Для исправления работы файлового менеджера Midnight Commander в терминале
`kitty`, можно выполнить команду:
```sh
fix-mc-kitty-support -f
```