zsh/README.md

133 lines
3.7 KiB
Markdown
Raw Normal View History

2019-09-02 08:05:47 +00:00
# Установка
Установка необходимых пакетов:
```sh
2021-04-19 08:32:04 +00:00
sudo apt-get install zsh
```
Установка желательных пакетов:
```sh
2021-07-13 14:38:03 +00:00
sudo apt-get install keychain peco fzf wmctrl xdotool autojump
2019-09-02 08:05:47 +00:00
```
Клонирование репозитория в каталог `~/.config/zsh`:
```sh
git clone https://git.246060.ru/f1x1t/zshrc ~/.config/zsh
```
# Базовая настройка
2019-09-02 08:05:47 +00:00
С правами суперпользователя открыть файл `/etc/zsh/zshenv`
в редакторе командой
2020-03-27 18:05:39 +00:00
```sh
2020-03-30 13:10:32 +00:00
sudo ${EDITOR:-mcedit} /etc/zsh/zshenv
2020-03-27 18:05:39 +00:00
```
и добавить строку
2019-09-02 08:05:47 +00:00
```sh
export ZDOTDIR=$HOME/.config/zsh
```
2020-03-27 18:05:39 +00:00
Установить интерпретатор Zsh по умолчанию для пользователя `username`.
```sh
sudo usermod -s /usr/bin/zsh username
```
# Настройка агентов
Существует несколько вариантов настройки агентов для SSH и/или GPG.
Для любого из вариантов следует скопировать шаблонный файл для настроек:
2020-03-27 18:05:39 +00:00
```sh
cp ~/.config/zsh/agents.zsh ~/.config/zsh/agents.user.zsh
```
## Настройка GPG агента
2021-07-13 14:38:03 +00:00
Раскомментировать в файле ` ~/.config/zsh/agents.user.zsh` строки:
```text
2021-07-13 14:38:03 +00:00
# zinit ice wait'1' lucid
# zinit light laggardkernel/zsh-gpg-agent
```
Пример файла настройки GPG агента `~/.config/gnupg/gpg-agent.conf`:
```text
2020-03-27 18:05:39 +00:00
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
2020-03-27 18:05:39 +00:00
```
Чтобы включить в GPG агенте поддержку SSH, нужно раскомментировать
последнюю строку.
## Настройка SSH агента
Раскомментировать в файле ` ~/.config/zsh/agents.user.zsh` строки:
```text
# zstyle :omz:plugins:ssh-agent agent-forwarding on
# zstyle :omz:plugins:ssh-agent identities id_rsa
# zstyle :omz:plugins:ssh-agent lifetime 10h
2021-07-13 14:38:03 +00:00
# zinit snippet OMZP::ssh-agent
```
Добавить в конец файла `~/.ssh/config` правило для разрешения агенту сохранять ключи:
2019-09-02 08:05:47 +00:00
```text
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
2019-09-02 08:05:47 +00:00
```
## Настройка Keychain
Программа Keychain позволит использовать агенты GPG и SSH между входами в систему.
Для её работы необходимо отключить в системе все автоматические запуски агентов,
например в файле `/etc/X11/Xsession.options`.
Раскомментировать в файле ` ~/.config/zsh/agents.user.zsh` строки:
```text
# 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
2021-07-13 14:38:03 +00:00
# zinit snippet OMZP::keychain
```
Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше.
2021-04-19 08:32:04 +00:00
2021-07-13 14:38:03 +00:00
## Инициализация
2021-04-19 08:32:04 +00:00
После редактирования файлов настройки запустить `zsh`, в результате чего будет
2021-07-13 14:38:03 +00:00
загружен менеджер пакетов `zinit` и необходимые плагины.
## Обновление
Обновление менеджера пакетов:
```sh
zinit self-update
````
Обновление плагинов:
2021-04-19 08:32:04 +00:00
```sh
2021-07-13 14:38:03 +00:00
zinit update --parallel
2021-04-19 08:32:04 +00:00
```