Оптимизация
This commit is contained in:
		@@ -13,12 +13,14 @@ zle -N edit-command-line
 | 
			
		||||
autoload -Uz select-word-style
 | 
			
		||||
select-word-style shell
 | 
			
		||||
 | 
			
		||||
if is-at-least 5.1; then
 | 
			
		||||
	autoload -Uz bracketed-paste-magic
 | 
			
		||||
	zle -N bracketed-paste bracketed-paste-magic
 | 
			
		||||
if [ -z ${DISABLE_MAGIC_FUNCTIONS+set} ]; then
 | 
			
		||||
	if is-at-least 5.1; then
 | 
			
		||||
		autoload -Uz bracketed-paste-magic
 | 
			
		||||
		zle -N bracketed-paste bracketed-paste-magic
 | 
			
		||||
	fi
 | 
			
		||||
	autoload -Uz url-quote-magic
 | 
			
		||||
	zle -N self-insert url-quote-magic
 | 
			
		||||
fi
 | 
			
		||||
autoload -Uz url-quote-magic
 | 
			
		||||
zle -N self-insert url-quote-magic
 | 
			
		||||
 | 
			
		||||
# Подсветка вывода основных команд
 | 
			
		||||
[[ -r /etc/grc.zsh ]] && source /etc/grc.zsh
 | 
			
		||||
 
 | 
			
		||||
@@ -14,3 +14,9 @@ source "$ZINIT[HOME_DIR]/zinit.zsh"
 | 
			
		||||
autoload -Uz _zinit
 | 
			
		||||
(( ${+_comps} )) && _comps[zinit]=_zinit
 | 
			
		||||
 | 
			
		||||
# Расширение zinit для загрузки файлов
 | 
			
		||||
zinit light zdharma-continuum/z-a-patch-dl
 | 
			
		||||
 | 
			
		||||
# Расширение zinit для запуска программ и скриптов, расположенных вне $PATH
 | 
			
		||||
zinit light zdharma-continuum/z-a-bin-gem-node
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@ zinit snippet OMZP::autojump
 | 
			
		||||
zinit snippet OMZP::command-not-found
 | 
			
		||||
zinit snippet OMZP::common-aliases
 | 
			
		||||
zinit snippet OMZP::debian
 | 
			
		||||
zinit snippet OMZP::fzf
 | 
			
		||||
zinit snippet OMZP::isodate
 | 
			
		||||
zinit snippet OMZP::mosh
 | 
			
		||||
zinit snippet OMZP::nmap
 | 
			
		||||
@@ -27,7 +26,14 @@ zinit snippet OMZP::vscode
 | 
			
		||||
zinit snippet OMZP::web-search
 | 
			
		||||
zinit load brymck/print-alias
 | 
			
		||||
 | 
			
		||||
zinit ice lucid wait'0'
 | 
			
		||||
zinit ice wait'!0' from"gh-r" as"program"
 | 
			
		||||
zinit light junegunn/fzf
 | 
			
		||||
 | 
			
		||||
zinit ice wait'!0' mv"completion.zsh -> _fzf" pick"_fzf" as"completion"
 | 
			
		||||
zinit snippet https://github.com/junegunn/fzf/blob/master/shell/completion.zsh
 | 
			
		||||
zinit snippet https://github.com/junegunn/fzf/blob/master/shell/key-bindings.zsh
 | 
			
		||||
 | 
			
		||||
zinit ice wait'!0' lucid
 | 
			
		||||
zinit light joshskidmore/zsh-fzf-history-search
 | 
			
		||||
 | 
			
		||||
if command -v git > /dev/null 2>&1; then
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,12 @@
 | 
			
		||||
##
 | 
			
		||||
# GPG agent
 | 
			
		||||
##
 | 
			
		||||
# zinit snippet OMZP::gpg-agent
 | 
			
		||||
if command -v gpg-agent >/dev/null 2>&1; then
 | 
			
		||||
	zinit snippet OMZP::gpg-agent
 | 
			
		||||
fi
 | 
			
		||||
if command -v gpg-conf >/dev/null 2>&1; then
 | 
			
		||||
	gpgconf --create-socketdir
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
# Keychain
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^<->.<->
 | 
			
		||||
 | 
			
		||||
# marlonrichert/zsh-autocomplete
 | 
			
		||||
 | 
			
		||||
zinit wait lucid for \
 | 
			
		||||
zinit wait'!0' lucid light-mode depth=1 for \
 | 
			
		||||
	atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
 | 
			
		||||
	  zdharma-continuum/fast-syntax-highlighting \
 | 
			
		||||
	blockf \
 | 
			
		||||
@@ -35,6 +35,10 @@ zinit wait lucid for \
 | 
			
		||||
 | 
			
		||||
zstyle ":history-search-multi-word" page-size "$(($LINES/2))"
 | 
			
		||||
zstyle ":plugin:history-search-multi-word" clear-on-cancel "yes"
 | 
			
		||||
zinit load zdharma-continuum/history-search-multi-word
 | 
			
		||||
bindkey "^K" history-search-multi-word
 | 
			
		||||
zinit wait'!0' lucid light-mode depth=1 for \
 | 
			
		||||
	  zdharma-continuum/history-search-multi-word \
 | 
			
		||||
	atload"bindkey '^[[A' history-substring-search-up; \
 | 
			
		||||
	       bindkey '^[[B' history-substring-search-down; \
 | 
			
		||||
	       bindkey '^K' history-search-multi-word " \
 | 
			
		||||
	  zsh-users/zsh-history-substring-search
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,11 @@
 | 
			
		||||
# Defined shortcut keys: [Esc] [Esc]
 | 
			
		||||
bindkey -M emacs '\e\e' send-break
 | 
			
		||||
bindkey -M vicmd '\e\e' send-break
 | 
			
		||||
bindkey -M viins '\e\e' send-break
 | 
			
		||||
bindkey '\e\e' send-break
 | 
			
		||||
 | 
			
		||||
# FZF #{{{
 | 
			
		||||
bindkey "^F" fzf-file-widget  # Ctrl+F file search
 | 
			
		||||
bindkey "^[[A" fzf-history-widget  # Up
 | 
			
		||||
bindkey "^[[B" fzf-history-widget  # Down
 | 
			
		||||
bindkey "${terminfo[kcuu1]}" fzf-history-widget  # Up
 | 
			
		||||
bindkey "${terminfo[kcud1]}" fzf-history-widget  # Down
 | 
			
		||||
#}}}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										90
									
								
								README.md
									
									
									
									
									
								
							@@ -9,14 +9,7 @@ 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
 | 
			
		||||
sudo apt-get install autojump command-not-found grc grepcidr kitty-terminfo wmctrl xdotool
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Клонирование репозитория в каталог `~/.config/zsh`:
 | 
			
		||||
@@ -50,12 +43,50 @@ sudo usermod -s /usr/bin/zsh username
 | 
			
		||||
cp ~/.config/zsh/55-agents.zsh ~/.config/zsh/55-agents.user.zsh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Настройка GPG агента
 | 
			
		||||
## Настройка SSH агента
 | 
			
		||||
 | 
			
		||||
Установить необходимые пакеты:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo apt install openssh-client
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# zinit snippet OMZP::gpg-agent
 | 
			
		||||
# 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` правило для разрешения агенту сохранять ключи:
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
Host *
 | 
			
		||||
    AddKeysToAgent yes
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Настройка GPG агента
 | 
			
		||||
 | 
			
		||||
Установить необходимые пакеты:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo apt install openssh-client gpg-agent gpgconf
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# 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`:
 | 
			
		||||
@@ -71,27 +102,8 @@ pinentry-program /usr/bin/pinentry-qt
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Чтобы включить в 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
 | 
			
		||||
# zinit snippet OMZP::ssh-agent
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Добавить в конец файла `~/.ssh/config` правило для разрешения агенту сохранять ключи:
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
Host *
 | 
			
		||||
    AddKeysToAgent yes
 | 
			
		||||
    IdentityFile ~/.ssh/id_rsa
 | 
			
		||||
```
 | 
			
		||||
последнюю строку и отредактировать файл `~/.ssh/config`, как это описано
 | 
			
		||||
в разделе настройки SSH.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Настройка Keychain
 | 
			
		||||
@@ -104,13 +116,21 @@ Host *
 | 
			
		||||
use-ssh-agent
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Установить необходимые пакеты:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo apt install keychain openssh-client gpg-agent gpgconf
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Раскомментировать в файле ` ~/.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
 | 
			
		||||
# zinit snippet OMZP::keychain
 | 
			
		||||
# 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, как это описано в разделах выше.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								fixes.zsh
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								fixes.zsh
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
# где отсутствует пакет kitty-terminfo
 | 
			
		||||
fix-kitty-terminal-support() {
 | 
			
		||||
	mkdir -p $HOME/.terminfo/x
 | 
			
		||||
	wget -qO - https://github.com/kovidgoyal/kitty/raw/master/terminfo/x/xterm-kitty > ~/.terminfo/x/xterm-kitty
 | 
			
		||||
	wget -qO - https://github.com/kovidgoyal/kitty/raw/master/terminfo/x/xterm-kitty > $HOME/.terminfo/x/xterm-kitty
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Настройка mc для работы в терминале kitty
 | 
			
		||||
@@ -12,14 +12,14 @@ fix-kitty-terminal-support() {
 | 
			
		||||
# При вызове функции с параметром -f текущие настройки клавиш
 | 
			
		||||
# для работы mc в терминале kitty будут перезаписаны
 | 
			
		||||
fix-mc-kitty-support() {
 | 
			
		||||
	local mc_cfg="${HOME}/.config/mc/ini"
 | 
			
		||||
	local cfg="${HOME}/.config/mc/ini"
 | 
			
		||||
 | 
			
		||||
	[[ "$1" == "-f" ]] && sed -i '/\[terminal:xterm-kitty\]/,/^$/{d}' "${mc_cfg}"
 | 
			
		||||
	if [ -w "${mc_cfg}" ]; then
 | 
			
		||||
		if ! grep -qF "[terminal:xterm-kitty]" "${mc_cfg}" ; then
 | 
			
		||||
			echo >> "${mc_cfg}"
 | 
			
		||||
			echo "[terminal:xterm-kitty]" >> "${mc_cfg}"
 | 
			
		||||
			echo "copy=xterm" >> "${mc_cfg}"
 | 
			
		||||
	[[ "$1" == "-f" ]] && sed -i '/\[terminal:xterm-kitty\]/,/^$/{d}' "${cfg}"
 | 
			
		||||
	if [ -w "${cfg}" ]; then
 | 
			
		||||
		if ! grep -qF "[terminal:xterm-kitty]" "${cfg}" ; then
 | 
			
		||||
			echo >> "${cfg}"
 | 
			
		||||
			echo "[terminal:xterm-kitty]" >> "${cfg}"
 | 
			
		||||
			echo "copy=xterm" >> "${cfg}"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user