ZSHFiles/custom/segments.zsh

44 lines
1.8 KiB
Bash

typeset -gi _pacman_check_time
typeset -gi _mail_count
typeset -gi _upgrade_packages
function prompt_docker_host() {
p10k segment -b blue -i '' -t "${DOCKER_HOST#*://}" -c "${DOCKER_HOST#*://}"
}
typeset -g POWERLEVEL9K_DOCKER_HOST_SHOW_ON_COMMAND='docker'
function prompt_dbus_mpris() {
typeset -g _mpris_LASTRESP="${_mpris_RESP:-0}"
typeset -g _mpris_RESP="$(busctl --user --json=short get-property org.mpris.MediaPlayer2.mpv /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Metadata 2>/dev/null | jq '.data')"
if [[ $_mpris_RESP != $_mpris_LASTRESP ]]; then
typeset -g _mpris_RFMT="$(print ${_mpris_RESP} | jq --raw-output '."xesam:title".data // ""')"
local ARTIST="$(print ${_mpris_RESP} | jq --raw-output '."xesam:artist".data[0] // ""')"
[ ! -z ${ARTIST} ] && _mpris_RFMT="${ARTIST} - ${_mpris_RFMT%% \(*\)}"
fi
p10k segment -b purple -i '' -t "${_mpris_RFMT}" -c "${_mpris_RFMT}"
}
function prompt_new_mail() {
_mail_count=(~/Mail/*/Inbox/new/*(.N))
(( ${#_mail_count} > 0 )) || return
p10k segment -b yellow -i '' -t "${#_mail_count}"
}
function prompt_pacman_upgrade() {
local -a stats
zstat -A stats +mtime -- /var/lib/pacman/sync 2>/dev/null
if [[ $stats[1] != $_pacman_check_time ]]; then
_upgrade_packages=$(pacman -Qu | wc -l)
_pacman_check_time=$stats[1]
fi
(( $_upgrade_packages > 0 )) || return
p10k segment -b cyan -i '' -t "${_upgrade_packages}"
}
typeset -g POWERLEVEL9K_PACMAN_UPGRADE_SHOW_ON_COMMAND='pacman'
function prompt_covid_19() {
local tmpfile=~/.cache/covidres
local -a stats
zstat -A stats +mtime -- $tmpfile 2>/dev/null
if [[ $stats[1] < $(($epochtime[1]-86400)) ]]; then
local result=$(curl -sL https://api.covid19api.com/country/germany/status/confirmed/live | jq -e '.[-1].Cases')
[ ! -z $result ] && print $result > $tmpfile
fi
p10k segment -b red -i '' -t "$(< $tmpfile)"
}