Оптимизация

This commit is contained in:
Andrei Astafev 2022-12-18 11:51:02 +03:00
parent 5773b855f3
commit fb5782101b
8 changed files with 106 additions and 57 deletions

View File

@ -13,12 +13,14 @@ zle -N edit-command-line
autoload -Uz select-word-style autoload -Uz select-word-style
select-word-style shell select-word-style shell
if [ -z ${DISABLE_MAGIC_FUNCTIONS+set} ]; then
if is-at-least 5.1; then if is-at-least 5.1; then
autoload -Uz bracketed-paste-magic autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic zle -N bracketed-paste bracketed-paste-magic
fi fi
autoload -Uz url-quote-magic autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic zle -N self-insert url-quote-magic
fi
# Подсветка вывода основных команд # Подсветка вывода основных команд
[[ -r /etc/grc.zsh ]] && source /etc/grc.zsh [[ -r /etc/grc.zsh ]] && source /etc/grc.zsh

View File

@ -14,3 +14,9 @@ source "$ZINIT[HOME_DIR]/zinit.zsh"
autoload -Uz _zinit autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_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

View File

@ -17,7 +17,6 @@ zinit snippet OMZP::autojump
zinit snippet OMZP::command-not-found zinit snippet OMZP::command-not-found
zinit snippet OMZP::common-aliases zinit snippet OMZP::common-aliases
zinit snippet OMZP::debian zinit snippet OMZP::debian
zinit snippet OMZP::fzf
zinit snippet OMZP::isodate zinit snippet OMZP::isodate
zinit snippet OMZP::mosh zinit snippet OMZP::mosh
zinit snippet OMZP::nmap zinit snippet OMZP::nmap
@ -27,7 +26,14 @@ zinit snippet OMZP::vscode
zinit snippet OMZP::web-search zinit snippet OMZP::web-search
zinit load brymck/print-alias 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 zinit light joshskidmore/zsh-fzf-history-search
if command -v git > /dev/null 2>&1; then if command -v git > /dev/null 2>&1; then

View File

@ -11,7 +11,12 @@
## ##
# GPG agent # 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 # Keychain

View File

@ -25,7 +25,7 @@ zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^<->.<->
# marlonrichert/zsh-autocomplete # marlonrichert/zsh-autocomplete
zinit wait lucid for \ zinit wait'!0' lucid light-mode depth=1 for \
atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \ atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
zdharma-continuum/fast-syntax-highlighting \ zdharma-continuum/fast-syntax-highlighting \
blockf \ blockf \
@ -35,6 +35,10 @@ zinit wait lucid for \
zstyle ":history-search-multi-word" page-size "$(($LINES/2))" zstyle ":history-search-multi-word" page-size "$(($LINES/2))"
zstyle ":plugin:history-search-multi-word" clear-on-cancel "yes" zstyle ":plugin:history-search-multi-word" clear-on-cancel "yes"
zinit load zdharma-continuum/history-search-multi-word zinit wait'!0' lucid light-mode depth=1 for \
bindkey "^K" history-search-multi-word 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

View File

@ -1,5 +1,11 @@
# Defined shortcut keys: [Esc] [Esc] # Defined shortcut keys: [Esc] [Esc]
bindkey -M emacs '\e\e' send-break bindkey '\e\e' send-break
bindkey -M vicmd '\e\e' send-break
bindkey -M viins '\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
#}}}

View File

@ -9,14 +9,7 @@ sudo apt-get install git zsh
Установка желательных пакетов: Установка желательных пакетов:
```sh ```sh
sudo apt-get install autojump grc grepcidr keychain kitty-terminfo peco wmctrl xdotool sudo apt-get install autojump command-not-found grc grepcidr kitty-terminfo wmctrl xdotool
```
Если в системе установлен пакет `fzf`, лучше его удалить, так как устанавливаемый
плагин может с ним конфликтовать:
```sh
sudo apt-get remove fzf
``` ```
Клонирование репозитория в каталог `~/.config/zsh`: Клонирование репозитория в каталог `~/.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 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` строки: Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
```sh ```sh
# 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 # 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`: Пример файла настройки GPG агента `~/.config/gnupg/gpg-agent.conf`:
@ -71,27 +102,8 @@ pinentry-program /usr/bin/pinentry-qt
``` ```
Чтобы включить в GPG агенте поддержку SSH, нужно раскомментировать Чтобы включить в GPG агенте поддержку SSH, нужно раскомментировать
последнюю строку. последнюю строку и отредактировать файл `~/.ssh/config`, как это описано
в разделе настройки 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
```
## Настройка Keychain ## Настройка Keychain
@ -104,13 +116,21 @@ Host *
use-ssh-agent use-ssh-agent
``` ```
Установить необходимые пакеты:
```sh
sudo apt install keychain openssh-client gpg-agent gpgconf
```
Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки: Раскомментировать в файле ` ~/.config/zsh/55-agents.user.zsh` строки:
```sh ```sh
# if command -v keychain >/dev/null 2>&1; then
# zstyle :omz:plugins:keychain identities id_rsa 01234567 # zstyle :omz:plugins:keychain identities id_rsa 01234567
# zstyle :omz:plugins:keychain options --quiet --inherit local-once --noask --nocolor --quick # zstyle :omz:plugins:keychain options --quiet --inherit any-once --noask --nocolor --absolute --dir ~/.cache/keychain
# zstyle :omz:plugins:keychain agents gpg,ssh # zstyle :omz:plugins:keychain agents gpg,ssh
# zinit snippet OMZP::keychain # zinit snippet OMZP::keychain
# fi
``` ```
Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше. Отредактировать файлы настроек для агента GPG и SSH, как это описано в разделах выше.

View File

@ -4,7 +4,7 @@
# где отсутствует пакет kitty-terminfo # где отсутствует пакет kitty-terminfo
fix-kitty-terminal-support() { fix-kitty-terminal-support() {
mkdir -p $HOME/.terminfo/x 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 # Настройка mc для работы в терминале kitty
@ -12,14 +12,14 @@ fix-kitty-terminal-support() {
# При вызове функции с параметром -f текущие настройки клавиш # При вызове функции с параметром -f текущие настройки клавиш
# для работы mc в терминале kitty будут перезаписаны # для работы mc в терминале kitty будут перезаписаны
fix-mc-kitty-support() { 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}" [[ "$1" == "-f" ]] && sed -i '/\[terminal:xterm-kitty\]/,/^$/{d}' "${cfg}"
if [ -w "${mc_cfg}" ]; then if [ -w "${cfg}" ]; then
if ! grep -qF "[terminal:xterm-kitty]" "${mc_cfg}" ; then if ! grep -qF "[terminal:xterm-kitty]" "${cfg}" ; then
echo >> "${mc_cfg}" echo >> "${cfg}"
echo "[terminal:xterm-kitty]" >> "${mc_cfg}" echo "[terminal:xterm-kitty]" >> "${cfg}"
echo "copy=xterm" >> "${mc_cfg}" echo "copy=xterm" >> "${cfg}"
fi fi
fi fi
} }