ZSHFiles/custom/segments.zsh

59 lines
2.3 KiB
Bash
Raw Normal View History

typeset -gi _mail_change_time
typeset -gi _mclog_change_time
typeset -gi _pacman_check_time
typeset -gi _mail_count
typeset -gi _upgrade_packages
2020-04-06 21:30:24 +00:00
function prompt_docker_host() {
p10k segment -b blue -i '' -t "${DOCKER_HOST#*://}" -c "${DOCKER_HOST#*://}"
2020-04-06 21:30:24 +00:00
}
typeset -g POWERLEVEL9K_DOCKER_HOST_SHOW_ON_COMMAND='docker'
function prompt_dbus_mpris() {
typeset -g _mpris_LASTRESP="${_mpris_RESP:-0}"
2020-04-06 21:30:24 +00:00
typeset -g _mpris_RESP="$(qdbus org.mpris.MediaPlayer2.mpv /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata 2>/dev/null)"
if [[ $_mpris_RESP != $_mpris_LASTRESP ]]; then
typeset -g _mpris_RFMT="$(print ${_mpris_RESP} | grep -oP '(?<=^xesam:title: ).+')"
local ARTIST="$(print ${_mpris_RESP} | grep -oP '(?<=^xesam:artist: ).+')"
[ ! -z ${ARTIST} ] && _mpris_RFMT="${ARTIST} - ${_mpris_RFMT}"
fi
p10k segment -b purple -i '' -t "${_mpris_RFMT}" -c "${_mpris_RFMT}"
}
function prompt_new_mail() {
local -a stats
zstat -A stats +mtime -- ~/Mail/*/Inbox/new 2>/dev/null || return
if [[ $stats[1] != $_mail_change_time ]]; then
_mail_count=$(find ~/Mail/*/Inbox/new -type f | wc -l)
_mail_change_time=$stat[1]
fi
(( $_mail_count > 0 )) || return
p10k segment -b yellow -i '' -t "${_mail_count}"
2020-04-06 21:30:24 +00:00
}
function prompt_pacman_upgrade() {
if [[ $_pacman_check_time < $(($epochtime[1]-86400)) ]]; then
_upgrade_packages=$(pacman -Qu | wc -l)
_pacman_check_time=$epochtime[1]
fi
(( $_upgrade_packages > 0 )) || return
p10k segment -b cyan -i '' -t "${_upgrade_packages}"
2020-04-06 21:30:24 +00:00
}
typeset -g POWERLEVEL9K_PACMAN_UPGRADE_SHOW_ON_COMMAND='pacman'
function prompt_2b2t_queue() {
local FILE=~/.local/share/multimc/instances/Impact\ 4.8.3\ -\ 1.12.2\ -\ Forge/.minecraft/logs/latest.log
local -a stats
zstat -A stats +mtime -- $FILE 2>/dev/null || return
if [[ $stats[1] != $_mclog_change_time ]]; then
local _last_LOG=($(tail -n1 $FILE))
_mclog_change_time=$stats[1]
fi
[ ${_last_LOG[-2]:-0} = 'queue:' ] && p10k segment -b green -i '' -t "${_last_LOG[-1]}"
}
function prompt_covid_19() {
local tmpfile=/tmp/covidres
local -a stats
zstat -A stats +mtime -- $tmpfile 2>/dev/null
if [[ $stats[1] < $(($epochtime[1]-86400)) ]]; then
local result=$(curl -sS 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)"
}