diff --git a/completions.zsh b/completions.zsh index 2d42837..660c50f 100644 --- a/completions.zsh +++ b/completions.zsh @@ -2,15 +2,16 @@ zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path ~/.zshcompcache zstyle ':completion:*:manuals' separate-sections true zstyle ':completion:*:manuals.*' insert-sections true -zstyle ':completion:*' expand prefix suffix +zstyle ':completion:*' prefix suffix zstyle ':completion:*' file-sort modification zstyle ':completion:*:default' list-colors "rs=0" "di=01;34" "ln=01;36" "mh=00" "pi=40;33" "so=01;35" "do=01;35" "bd=40;33;01" "cd=40;33;01" "or=40;31;01" "mi=00" "su=37;41" "sg=30;43" "ca=30;41" "tw=30;42" "ow=34;42" "st=37;44" "ex=01;32" "*.tar=01;31" "*.tgz=01;31" "*.arc=01;31" "*.arj=01;31" "*.taz=01;31" "*.lha=01;31" "*.lz4=01;31" "*.lzh=01;31" "*.lzma=01;31" "*.tlz=01;31" "*.txz=01;31" "*.tzo=01;31" "*.t7z=01;31" "*.zip=01;31" "*.z=01;31" "*.dz=01;31" "*.gz=01;31" "*.lrz=01;31" "*.lz=01;31" "*.lzo=01;31" "*.xz=01;31" "*.zst=01;31" "*.tzst=01;31" "*.bz2=01;31" "*.bz=01;31" "*.tbz=01;31" "*.tbz2=01;31" "*.tz=01;31" "*.deb=01;31" "*.rpm=01;31" "*.jar=01;31" "*.war=01;31" "*.ear=01;31" "*.sar=01;31" "*.rar=01;31" "*.alz=01;31" "*.ace=01;31" "*.zoo=01;31" "*.cpio=01;31" "*.7z=01;31" "*.rz=01;31" "*.cab=01;31" "*.wim=01;31" "*.swm=01;31" "*.dwm=01;31" "*.esd=01;31" "*.jpg=01;35" "*.jpeg=01;35" "*.mjpg=01;35" "*.mjpeg=01;35" "*.gif=01;35" "*.bmp=01;35" "*.pbm=01;35" "*.pgm=01;35" "*.ppm=01;35" "*.tga=01;35" "*.xbm=01;35" "*.xpm=01;35" "*.tif=01;35" "*.tiff=01;35" "*.png=01;35" "*.svg=01;35" "*.svgz=01;35" "*.mng=01;35" "*.pcx=01;35" "*.mov=01;35" "*.mpg=01;35" "*.mpeg=01;35" "*.m2v=01;35" "*.mkv=01;35" "*.webm=01;35" "*.webp=01;35" "*.ogm=01;35" "*.mp4=01;35" "*.m4v=01;35" "*.mp4v=01;35" "*.vob=01;35" "*.qt=01;35" "*.nuv=01;35" "*.wmv=01;35" "*.asf=01;35" "*.rm=01;35" "*.rmvb=01;35" "*.flc=01;35" "*.avi=01;35" "*.fli=01;35" "*.flv=01;35" "*.gl=01;35" "*.dl=01;35" "*.xcf=01;35" "*.xwd=01;35" "*.yuv=01;35" "*.cgm=01;35" "*.emf=01;35" "*.ogv=01;35" "*.ogx=01;35" "*.aac=00;36" "*.au=00;36" "*.flac=00;36" "*.m4a=00;36" "*.mid=00;36" "*.midi=00;36" "*.mka=00;36" "*.mp3=00;36" "*.mpc=00;36" "*.ogg=00;36" "*.ra=00;36" "*.wav=00;36" "*.oga=00;36" "*.opus=00;36" "*.spx=00;36" "*.xspf=00;36" zstyle ':completion:*' list-suffixes true zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' zstyle ':completion:*' rehash true zstyle ':completion:*' menu select -zstyle ':completion:*' completer _complete _match _correct _approximate +zstyle ':completion:*' completer _complete _match _correct _approximate _history zstyle ':completion:*:match:*' original only +zstyle ':completion:*:history:*' remove-all-dups true zstyle ':completion:*:approximate:*' max-errors 1 numeric zstyle ':completion:*:functions' ignored-patterns '_*' zstyle ':completion:*:descriptions' format '%U%B%d%b%u' diff --git a/custom/segments.zsh b/custom/segments.zsh index ad772a2..7a134fe 100644 --- a/custom/segments.zsh +++ b/custom/segments.zsh @@ -25,14 +25,17 @@ function prompt_c_covid_19() { if [ ! -v _cprompts_covid ]; then zstat -A stats +mtime -- $tmpfile 2>/dev/null if [[ $stats[1] < $(($epochtime[1]-86400)) ]]; then - typeset -g _cprompts_covid=$(curl -sL https://api.covid19api.com/country/${REPLY:-germany} | jq -e '. |= sort_by (.Date) | .[-1].Active') - [ ! -z $_cprompts_covid ] && print $_cprompts_covid > $tmpfile + cprompts:cache:async:covid &! else typeset -g _cprompts_covid=$(< $tmpfile) fi fi p10k segment -b red -i '' -t "${_cprompts_covid:-unknown}" } +function cprompts:cache:async:covid() { + typeset -g _cprompts_covid=$(curl -sL https://api.covid19api.com/country/${REPLY:-germany} | jq -e '. |= sort_by (.Date) | .[-1].Active') + [ ! -z $_cprompts_covid ] && print $_cprompts_covid > $tmpfile +} function prompt_c_weather() { local tmpfile=${CACHEPATH}/weather local -a stats @@ -40,7 +43,7 @@ function prompt_c_weather() { # Fancy stuff local -A icons local -A colors - icons[c]='盛' + icons[c]='' colors[c]="yellow" icons[lc]='' colors[lc]="yellow" @@ -64,20 +67,23 @@ function prompt_c_weather() { if [ ! -v _cprompts_weather ]; then zstat -A stats +mtime -- $tmpfile 2>/dev/null if [[ $stats[1] < $(($epochtime[1]-21600)) ]]; then - local REPLY - zstyle -s ':custom:prompts:weather' location REPLY - local result=$(curl -sL https://www.metaweather.com/api/location/${REPLY:-1339615}/ | jq -e '.consolidated_weather[0] | {"temp": .the_temp, "icon": .weather_state_abbr}') - if [ ! -z $result ]; then - local ico=$(print $result | jq -r '.icon') - typeset -g _cprompts_weather=($(print $result | jq -r '.temp') ${colors[$ico]} ${icons[$ico]:-?}) - print $_cprompts_weather > $tmpfile - fi + cprompts:cache:async:weather &! else typeset -g _cprompts_weather=($(< $tmpfile)) fi fi p10k segment -b ${_cprompts_weather[2]:-white} -i ${_cprompts_weather[3]:-\?} -t "${_cprompts_weather[1]:-unknown}" } +function cprompts:cache:async:weather() { + local REPLY + zstyle -s ':custom:prompts:weather' location REPLY + local result=$(curl -sL https://www.metaweather.com/api/location/${REPLY:-1339615}/ | jq -e '.consolidated_weather[0] | {"temp": .the_temp, "icon": .weather_state_abbr}') + if [ ! -z $result ]; then + local ico=$(print $result | jq -r '.icon') + typeset -g _cprompts_weather=($(print $result | jq -r '.temp') ${colors[$ico]} ${icons[$ico]:-?}) + print $_cprompts_weather > $tmpfile + fi +} function prompt_c_mpv_mpris() { typeset -g _cprompts_mpv