Skip to content

ZSH и OhMyZSH

Установка

Bash
sudo apt install zsh git vim wget -y

# ohmyzsh
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# p10k theme
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
# zsh-syntax-highlighing
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# в ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"
POWERLEVEL9K_MODE="nerdfont-complete"
plugins=(
    git
    nmap
    z
    zsh-autosuggestions
    zsh-syntax-highlighting
    sudo
)

# для интерактивной настройки темы p10k нужно:
exec -l $SHELL
p10k configure

Удаление

Bash
uninstall_oh_my_zsh
sudo apt purge zsh

timewarrior tracking time в p10k prompt

Чтобы получить подобный right prompt:

Text Only
 "python. module 2.10" (1h 13m)

Нужно внести изменения в ~/.p10k.zsh (плагин powerline10k), т.к. в моем случае, именно он управляет zsh prompt-ом. Отображение названия задачи в нем уже поддерживается, поэтому остается добавить время (когда задача началась).

Для этого нужно написать zsh функцию:

Bash
function timew_tracking_time {
    timew | awk '/Total/ {split($2, time, ":"); h = time[1] + 0; m = time[2] + 0; if (h == 0) print m"m"; else print h"h "m"m"}'
}

Потом нужно найти в ~/.p10k.zsh строку с переменной ниже и отредактировать ее; вот, что должно в итоге получиться (сверху оригинальная переменная, снизу - отредактированное):

Bash
  # typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}'
  typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…} ($(timew_tracking_time))'


zsh #tool