zsh/README.md

137 lines
4.0 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
```
# Базовая настройка
С правами суперпользователя открыть файл `/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
````