Настройка zsh
Go to file
2024-07-25 08:44:54 +03:00
.gitignore Переход на использование zinit 2022-12-17 19:17:36 +03:00
.p10k.8colors.zsh Поддержка xterm 2022-12-27 14:30:50 +03:00
.p10k.zsh Удаление файлов 2022-12-17 19:30:17 +03:00
.zshenv Правка работы с fzf 2024-07-04 10:36:03 +03:00
.zshrc Рефакторинг 2022-12-23 11:39:49 +03:00
05-start.zsh Правка замечаний shellcheck 2022-12-18 18:58:00 +03:00
15-options.zsh Восстановлен файл 2023-05-31 19:32:58 +03:00
25-history.zsh Плагин для редактирования истории команд 2024-07-04 11:53:35 +03:00
42-zinit.zsh zinit 3.13.1 2024-01-29 15:15:38 +03:00
45-plugins.zsh Плагин для редактирования истории команд 2024-07-04 11:53:35 +03:00
55-agents.zsh Правка параметров для агентов 2022-12-22 21:56:13 +03:00
62-scripts.zsh Обновление $ZDOTDIR 2023-05-12 23:58:28 +03:00
68-aliases.zsh При наличии gdu запускать вместо ncdu 2023-05-12 23:43:28 +03:00
72-widgets.zsh Виджет для завершения процессов 2022-12-23 16:44:39 +03:00
78-keybindings.zsh Рефакторинг 2022-12-23 11:39:49 +03:00
82-completion.zsh Отключены плагины, приводящие к нестабильной работе 2022-12-23 15:11:23 +03:00
88-prompt.zsh Поддержка xterm 2022-12-27 14:30:50 +03:00
95-finish.zsh Правка замечаний shellcheck 2022-12-18 18:58:00 +03:00
fixes.zsh fzf 2024-07-25 08:44:54 +03:00
install.sh Установка пакета со шрифтом Iosevka Prog Nerd 2023-05-08 11:34:57 +03:00
README.md Правка работы с fzf 2024-07-04 10:36:03 +03:00

Быстрая установка

sudo apt-get install curl
sh -c "$(curl -fsSL https://git.246060.ru/config/zsh/raw/branch/master/install.sh)"

Установка

Установить оболочку Zsh и git:

sudo apt-get install git zsh curl

На системах, где нет пакета 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/config/zsh ~/.config/zsh

Базовая настройка

Создать файл $HOME/.zshenv со следующим содержимым:

# Загрузка конфигурации из каталога $ZDOTDIR
export ZDOTDIR=$HOME/.config/zsh
source $ZDOTDIR/.zshenv

Установить интерпретатор Zsh по умолчанию для пользователя username.

sudo usermod -s /usr/bin/zsh username

Установка шрифтов

wget -A ".deb" -c -q -np -nd -r -l 1 https://deb.246060.ru/bin/fonts/pool/main/f/fonts-iosevka-prog/
wget -A ".deb" -c -q -np -nd -r -l 1 https://deb.246060.ru/bin/fonts/pool/main/f/fonts-iosevka-prog-nerd/
sudo dpkg -i fonts*deb

Настройка агентов

Существует несколько вариантов настройки агентов для 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

Если в системе установлена программа fzf версии ниже 0.53.0, то может не работать поиск по истории, файлам и автодополнение. Исправление:

fix-update-fzf

Для обеспечения поддержки терминала kitty на системах, где недоступно его описание, можно выполнить команду:

fix-kitty-terminal-support

Для исправления работы файлового менеджера Midnight Commander в терминале kitty, можно выполнить команду:

fix-mc-kitty-support -f