2019-09-02 08:05:47 +00:00
|
|
|
|
# Установка
|
|
|
|
|
|
2022-12-19 08:58:27 +00:00
|
|
|
|
Установить оболочку [Zsh](https://www.zsh.org) и git:
|
2019-09-02 08:05:47 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
2021-12-09 07:49:41 +00:00
|
|
|
|
sudo apt-get install git zsh
|
2020-04-04 19:34:05 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-20 10:10:53 +00:00
|
|
|
|
На системах, где нет пакета Zsh или есть только старая версия, можно установить статически
|
|
|
|
|
скомпилированную версию программы командой:
|
|
|
|
|
|
2022-12-20 12:12:24 +00:00
|
|
|
|
```sh
|
2022-12-20 10:10:53 +00:00
|
|
|
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/romkatv/zsh-bin/master/install)"
|
|
|
|
|
```
|
|
|
|
|
|
2022-12-19 08:58:27 +00:00
|
|
|
|
Установить рекомендуемые пакеты:
|
2020-04-04 19:34:05 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
2022-12-23 12:10:59 +00:00
|
|
|
|
sudo apt-get install command-not-found grc grepcidr kitty-terminfo wmctrl xdotool
|
2019-09-02 08:05:47 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-20 15:05:16 +00:00
|
|
|
|
Установить дополнительные программы по [инструкции](https://git.246060.ru/config/eget/).
|
|
|
|
|
|
2022-12-19 08:58:27 +00:00
|
|
|
|
|
|
|
|
|
Клонировать репозиторий с настройками Zsh в каталог `~/.config/zsh`:
|
2019-09-02 08:05:47 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
git clone https://git.246060.ru/f1x1t/zshrc ~/.config/zsh
|
|
|
|
|
```
|
|
|
|
|
|
2020-04-04 20:09:24 +00:00
|
|
|
|
# Базовая настройка
|
2019-09-02 08:05:47 +00:00
|
|
|
|
|
2022-12-17 16:17:36 +00:00
|
|
|
|
Создать файл `$HOME/.zshenv` со следующим содержимым:
|
2020-03-27 18:05:39 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
2022-12-17 16:17:36 +00:00
|
|
|
|
# Загрузка конфигурации из каталога $ZDOTDIR
|
|
|
|
|
export ZDOTDIR=$HOME/.config/zsh
|
|
|
|
|
source $ZDOTDIR/.zshenv
|
2019-09-02 08:05:47 +00:00
|
|
|
|
```
|
|
|
|
|
|
2020-03-27 18:05:39 +00:00
|
|
|
|
Установить интерпретатор Zsh по умолчанию для пользователя `username`.
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo usermod -s /usr/bin/zsh username
|
|
|
|
|
```
|
|
|
|
|
|
2022-12-19 13:05:31 +00:00
|
|
|
|
# Установка шрифтов
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
mkdir -p ~/.local/share/fonts
|
2022-12-20 13:32:36 +00:00
|
|
|
|
curl -fSL -o "$HOME/.local/share/fonts/Anonymice Nerd Font Complete.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/AnonymousPro/complete/Anonymice%20Nerd%20Font%20Complete.ttf
|
|
|
|
|
curl -fSL -o "$HOME/.local/share/fonts/Anonymice Nerd Font Complete Mono.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/AnonymousPro/complete/Anonymice%20Nerd%20Font%20Complete%20Mono.ttf
|
2022-12-19 13:05:31 +00:00
|
|
|
|
```
|
|
|
|
|
|
2020-04-04 20:09:24 +00:00
|
|
|
|
# Настройка агентов
|
|
|
|
|
|
|
|
|
|
Существует несколько вариантов настройки агентов для SSH и/или GPG.
|
|
|
|
|
Для любого из вариантов следует скопировать шаблонный файл для настроек:
|
2020-03-27 18:05:39 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
2021-11-06 16:50:38 +00:00
|
|
|
|
cp ~/.config/zsh/55-agents.zsh ~/.config/zsh/55-agents.user.zsh
|
2020-04-04 20:09:24 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
## Настройка SSH агента
|
|
|
|
|
|
|
|
|
|
Установить необходимые пакеты:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install openssh-client
|
|
|
|
|
```
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2021-11-06 16:55:26 +00:00
|
|
|
|
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2021-12-06 21:48:22 +00:00
|
|
|
|
```sh
|
2022-12-18 08:51:02 +00:00
|
|
|
|
# if command -v ssh-agent >/dev/null 2>&1; then
|
|
|
|
|
# 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
|
|
|
|
|
# fi
|
2020-04-04 20:09:24 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Добавить в конец файла `~/.ssh/config` правило для разрешения агенту сохранять ключи:
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
|
|
|
|
```text
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Host *
|
|
|
|
|
AddKeysToAgent yes
|
2020-03-27 18:05:39 +00:00
|
|
|
|
```
|
|
|
|
|
|
2020-04-04 19:34:05 +00:00
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
## Настройка GPG агента
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Установить необходимые пакеты:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install openssh-client gpg-agent gpgconf
|
|
|
|
|
```
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2021-11-06 16:55:26 +00:00
|
|
|
|
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2021-12-06 21:48:22 +00:00
|
|
|
|
```sh
|
2022-12-18 08:51:02 +00:00
|
|
|
|
# if command -v gpg-agent >/dev/null 2>&1; then
|
|
|
|
|
# zinit snippet OMZP::gpg-agent
|
|
|
|
|
# if command -v gpg-conf >/dev/null 2>&1; then
|
|
|
|
|
# gpgconf --create-socketdir
|
|
|
|
|
# fi
|
|
|
|
|
# fi
|
2020-04-04 19:34:05 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Пример файла настройки GPG агента `~/.config/gnupg/gpg-agent.conf`:
|
2019-09-02 08:05:47 +00:00
|
|
|
|
|
2020-04-04 20:09:24 +00:00
|
|
|
|
```text
|
2022-12-18 08:51:02 +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
|
2019-09-02 08:05:47 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Чтобы включить в GPG агенте поддержку SSH, нужно раскомментировать
|
|
|
|
|
последнюю строку и отредактировать файл `~/.ssh/config`, как это описано
|
|
|
|
|
в разделе настройки SSH.
|
|
|
|
|
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
|
|
|
|
## Настройка Keychain
|
|
|
|
|
|
|
|
|
|
Программа Keychain позволит использовать агенты GPG и SSH между входами в систему.
|
|
|
|
|
Для её работы необходимо отключить в системе все автоматические запуски агентов,
|
2021-12-06 21:48:22 +00:00
|
|
|
|
например в файле `/etc/X11/Xsession.options` удалить строку:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
use-ssh-agent
|
|
|
|
|
```
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2022-12-18 08:51:02 +00:00
|
|
|
|
Установить необходимые пакеты:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install keychain openssh-client gpg-agent gpgconf
|
|
|
|
|
```
|
|
|
|
|
|
2021-11-06 16:55:26 +00:00
|
|
|
|
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
|
2020-04-04 20:09:24 +00:00
|
|
|
|
|
2021-12-06 21:48:22 +00:00
|
|
|
|
```sh
|
2022-12-18 08:51:02 +00:00
|
|
|
|
# if command -v keychain >/dev/null 2>&1; then
|
|
|
|
|
# zstyle :omz:plugins:keychain identities id_rsa 01234567
|
|
|
|
|
# zstyle :omz:plugins:keychain options --quiet --inherit any-once --noask --nocolor --absolute --dir ~/.cache/keychain
|
|
|
|
|
# zstyle :omz:plugins:keychain agents gpg,ssh
|
|
|
|
|
# zinit snippet OMZP::keychain
|
|
|
|
|
# fi
|
2020-04-04 20:09:24 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Отредактировать файлы настроек для агента 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
|
|
|
|
|
2021-12-06 21:48:22 +00:00
|
|
|
|
После редактирования файлов настройки запустить `zsh`. Автоматически будет загружен
|
2022-12-17 16:17:36 +00:00
|
|
|
|
менеджер [zinit](https://github.com/zdharma-continuum/zinit) и необходимые плагины.
|
2021-07-13 14:38:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Обновление
|
|
|
|
|
|
2022-12-17 16:17:36 +00:00
|
|
|
|
Обновление `zinit` и плагинов:
|
2021-07-13 14:38:03 +00:00
|
|
|
|
|
|
|
|
|
```sh
|
2022-09-08 09:10:01 +00:00
|
|
|
|
zu
|
2021-07-13 14:38:03 +00:00
|
|
|
|
````
|
2022-09-13 08:49:56 +00:00
|
|
|
|
|
|
|
|
|
## Устранение проблем
|
|
|
|
|
|
|
|
|
|
Для решения некоторых проблем необходимо загрузить файл с дополнительными
|
|
|
|
|
командами в терминале:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
source $HOME/.config/zsh/fixes.zsh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Для обеспечения поддержки терминала `kitty` на системах, где недоступно
|
|
|
|
|
его описание, можно выполнить команду:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
fix-kitty-terminal-support
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Для исправления работы файлового менеджера Midnight Commander в терминале
|
|
|
|
|
`kitty`, можно выполнить команду:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
fix-mc-kitty-support -f
|
|
|
|
|
```
|