.gitignore | ||
.p10k.8colors.zsh | ||
.p10k.zsh | ||
.zshenv | ||
.zshrc | ||
05-start.zsh | ||
15-options.zsh | ||
25-history.zsh | ||
42-zinit.zsh | ||
45-plugins.zsh | ||
55-agents.zsh | ||
62-scripts.zsh | ||
68-aliases.zsh | ||
72-widgets.zsh | ||
78-keybindings.zsh | ||
82-completion.zsh | ||
88-prompt.zsh | ||
95-finish.zsh | ||
fixes.zsh | ||
README.md |
Установка
Установить оболочку Zsh и git:
sudo apt-get install git zsh
На системах, где нет пакета Zsh или есть только старая версия, можно установить статически скомпилированную версию программы командой:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/romkatv/zsh-bin/master/install)"
Установить рекомендуемые пакеты:
sudo apt-get install command-not-found grc grepcidr kitty-terminfo wmctrl xdotool
Установить дополнительные программы по инструкции.
Клонировать репозиторий с настройками Zsh в каталог ~/.config/zsh
:
git clone https://git.246060.ru/f1x1t/zshrc ~/.config/zsh
Базовая настройка
Создать файл $HOME/.zshenv
со следующим содержимым:
# Загрузка конфигурации из каталога $ZDOTDIR
export ZDOTDIR=$HOME/.config/zsh
source $ZDOTDIR/.zshenv
Установить интерпретатор Zsh по умолчанию для пользователя username
.
sudo usermod -s /usr/bin/zsh username
Установка шрифтов
mkdir -p ~/.local/share/fonts
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
Настройка агентов
Существует несколько вариантов настройки агентов для SSH и/или GPG. Для любого из вариантов следует скопировать шаблонный файл для настроек:
cp ~/.config/zsh/55-agents.zsh ~/.config/zsh/55-agents.user.zsh
Настройка SSH агента
Установить необходимые пакеты:
sudo apt install openssh-client
Раскомментировать в файле ~/.config/zsh/55-agents.user.zsh
строки:
# 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
Добавить в конец файла ~/.ssh/config
правило для разрешения агенту сохранять ключи:
Host *
AddKeysToAgent yes
Настройка GPG агента
Установить необходимые пакеты:
sudo apt install openssh-client gpg-agent gpgconf
Раскомментировать в файле ~/.config/zsh/55-agents.user.zsh
строки:
# 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
Пример файла настройки GPG агента ~/.config/gnupg/gpg-agent.conf
:
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
, как это описано
в разделе настройки SSH.
Настройка Keychain
Программа Keychain позволит использовать агенты GPG и SSH между входами в систему.
Для её работы необходимо отключить в системе все автоматические запуски агентов,
например в файле /etc/X11/Xsession.options
удалить строку:
use-ssh-agent
Установить необходимые пакеты:
sudo apt install keychain openssh-client gpg-agent gpgconf
Раскомментировать в файле ~/.config/zsh/55-agents.user.zsh
строки:
# 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
Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше.
Инициализация
После редактирования файлов настройки запустить zsh
. Автоматически будет загружен
менеджер zinit и необходимые плагины.
Обновление
Обновление zinit
и плагинов:
zu
Устранение проблем
Для решения некоторых проблем необходимо загрузить файл с дополнительными командами в терминале:
source $HOME/.config/zsh/fixes.zsh
Для обеспечения поддержки терминала kitty
на системах, где недоступно
его описание, можно выполнить команду:
fix-kitty-terminal-support
Для исправления работы файлового менеджера Midnight Commander в терминале
kitty
, можно выполнить команду:
fix-mc-kitty-support -f