nerd-font

Install

Мистер Соус

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf

Oh My Zsh

Install

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

Uninstall

uninstall_oh_my_zsh
rm -rf ~/.p10k.zsh ~/.cache/p10k*

timewarrior tracking time в p10k prompt

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

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

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

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

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
  # 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))'