obsd-bkp/dotfiles/dotfolder/.local/bin/infos

385 lines
9.1 KiB
Bash
Executable File

#!/bin/ksh
# Colors
_pink="%{F#FF00B6}"
_purple="%{F#7C00FF}"
_cyan="%{F#00F0FF}"
_blue="%{F#002EFF}"
_orange="%{F#FF9E00}"
_green="%{F#00FF00}"
_red="%{F#FF0000}"
_yellow="%{F#FFF000}"
# Functions
## Define OS version
_os_type(){
_net=$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')
case $_net in
"em0") _os="Open${_orange}BSD%{F-} ${_cyan}$(sysctl -n kern.osrelease)%{F-} ${_red}$(sysctl -n kern.osversion)%{F-}" ;;
"iwn0") _os="${_cyan}$(sysctl -n kern.osrelease)%{F-} ${_red}$(sysctl -n kern.osversion)%{F-}" ;;
esac
echo "${_os}"
}
## Thelemic date
_thelemic_date(){
# Vars
_dayw=$(date "+%a") ## Day of the week
_daym=$(date "+%d") ## Day of the mounth
_mounth=$(date "+%m") ## Mounth number
_year=$(date "+%Y") ## Current year
_year_zero="1904"
_year_diff="$(echo "${_year} - ${_year_zero}" | bc)"
_year_cicles="$(echo "scale=0; ${_year_diff} / 22" | bc)"
_year_cur_cicle="$(echo "${_year_diff} - (${_year_cicles} * 22)" | bc)"
#_zone="-z -3" ## Time zone
_lat="-20.351034"
_log="-40.284485"
#_coord="-zl ${_log} ${_lat}"
_sun="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | sed 's/[0-9]//g')"
_sun_pos="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | ghead -c 2 | sed 's/[A-Z]//')"
_moon="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | sed 's/[0-9]//g')"
_moon_pos="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | ghead -c 2 | sed 's/[A-Z]//')"
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
case $_sun in
"Aqu") _sun_done="Aquarii";;
"Gem") _sun_done="Geminorum";;
"Sag") _sun_done="Sagittarii";;
"Tau") _sun_done="Tauri";;
"Ari") _sun_done="Arietis";;
"Pis") _sun_done="Piscis";;
"Cap") _sun_done="Capricorni";;
"Can") _sun_done="Cancri";;
"Sco") _sun_done="Scorpii";;
"Lib") _sun_done="Librae";;
"Leo") _sun_done="Leonis";;
"Vir") _sun_done="Virginis";;
esac
case $_moon in
"Aqu") _moon_done="Aquarii";;
"Gem") _moon_done="Geminorum";;
"Sag") _moon_done="Sagittarii";;
"Tau") _moon_done="Tauri";;
"Ari") _moon_done="Arietis";;
"Pis") _moon_done="Piscis";;
"Cap") _moon_done="Capricorni";;
"Can") _moon_done="Cancri";;
"Sco") _moon_done="Scorpii";;
"Lib") _moon_done="Librae";;
"Leo") _moon_done="Leonis";;
"Vir") _moon_done="Virginis";;
esac
case $_dayw in
"Sun") _dayw_done="Solis";;
"Mon") _dayw_done="Lunae";;
"Tue") _dayw_done="Martis";;
"Wed") _dayw_done="Mercurii";;
"Thu") _dayw_done="Jovis";;
"Fri") _dayw_done="Veneris";;
"Sat") _dayw_done="Saturnis";;
esac
case $_net in
"em0") _date="Sol in ${_sun_pos}° ${_sun_done} : Luna in ${_moon_pos}° ${_moon_done} : Dies ${_dayw_done} : Anno Vviii e.l." ;;
"iwn0") _date="Sol in ${_sun_pos}° ${_sun_done} Luna in ${_moon_pos}° ${_moon_done} Dies ${_dayw_done} Anno Vviii e.l." ;;
esac
# Main function
echo "$_date"
# echo "
# ☉︎ in ${_sun_pos}° ${_sun_done}
# ☽︎ in ${_moon_pos}° ${_moon_done}
# Dies ${_dayw_done}
# Anno V:viii a.n.
#"
}
## Show current group
_grp(){
_cur_grp="$(xprop -root _NET_CURRENT_DESKTOP | awk -F '=' '{print $2}' | sed 's/ //')"
echo "[${_cur_grp}]"
}
## Show memory usage
_mem(){
_smt="$(sysctl -n hw.smt)"
### Define number of threads
if [ "$_smt" = "0" ]; then
_h="7"
elif [ "$_smt" = "1" ]; then
_h="11"
fi
### Get memory usage
_mem_use="$(top -d1 | \
head -n ${_h} | \
tail -1 | \
awk '{print $3}' | \
awk -F / '{print $1}' | \
sed s/M//)"
_b=999
### Build the output
if [ "$_mem_use" -ge "$_b" ]; then
echo "${_blue}Ram:%{F-} ${_green}$(echo "scale=2; $_mem_use / 1024" | bc)G/16G%{F-}"
else
echo "${_blue}Ram:%{F-} ${_green}0$(echo "scale=2; $_mem_use / 1024" | bc)G/16G%{F-}"
fi
}
## Define cpu clock rate
_cpu_clock(){
_CSPEED="$(sysctl -n hw.cpuspeed)"
_CP="$(echo "scale=2; $_CSPEED / 1024" | bc)"
echo "${_orange}CPU:%{F-} ${_green}${_CP}Ghz%{F-}"
}
## Get hardware temperatures
_temp(){
### Some limits
y=60
r=70
### Get cpu temp
_cpu_temp="$(sysctl -n hw.sensors.cpu0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Get acpitz temp
_acpitz_temp="$(sysctl -n hw.sensors.acpitz0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Correct bug temperature
_temp_c="$(echo "scale=0; $_cpu_temp - 15" | bc)"
_temp_a="$(echo "scale=0; $_acpitz_temp - 15" | bc)"
### Some color acording to temperature
if [ "$_temp_c" -ge "$r" ]; then
_tempc="${_red}${_cpu_temp}ºC%{F-}"
elif [ "$_temp_c" -ge "$y" ]; then
_tempc="%{F#FFF000}${_temp_c}ºC%{F-}"
else
_tempc="${_green}${_temp_c}ºC%{F-}"
fi
if [ "$_temp_a" -ge "$r" ]; then
_tempa="${_red}${_temp_a}ºC%{F-}"
elif [ "$_temp_a" -ge "$y" ]; then
_tempa="%{F#FFF000}${_temp_a}ºC%{F-}"
else
_tempa="${_green}${_temp_a}ºC%{F-}"
fi
### Build output
echo "${_orange}CPU:%{F-} ${_tempc} ${_purple}ACPITZ:%{F-} ${_tempa}"
}
_fan_speed(){
_fspeed="$(sysctl -n hw.sensors.acpithinkpad0.fan0 | awk '{print $1}')"
_fp="$(echo "scale=2; $_fspeed / 1024" | bc)"
echo -e "${_cyan}FAN:%{F-} ${_green}${_fp}kRPM%{F-}"
}
_smt_func(){
_smt="$(sysctl -n hw.smt)"
echo "${_purple}SMT:%{F-} ${_green}${_smt}%{F-}"
}
_sec(){
_sec_lvl="$(sysctl -n kern.securelevel)"
if [ $_sec_lvl = "1" ]; then
_result="${_green}$_sec_lvl%{F-}"
elif [ $_sec_lvl = "2" ]; then
_result="${_orange}$_sec_lvl%{F-}"
else
_result="${_red}ERROR!%{F-}"
fi
echo "${_red}Sec_lvl=%{F-} $_result"
}
## PF Status
_pf(){
_pf_status="$(rcctl get pf | sed 's/pf=//')"
case "$_pf_status" in
"YES") echo "${_cyan}PF: %{F-}${_green}ON%{F-}";;
"NO") echo "${_cyan}PF: %{F-}${_red}OFF%{F-}";;
esac
}
_rec(){
_audio="$(sysctl -n kern.audio.record)"
_video="$(sysctl -n kern.video.record)"
if [ $_audio = 0 ]; then
_audio_color="${_green}$_audio%{F-}"
else
_audio_color="${_orange}$_audio%{F-}"
fi
if [ $_video = 0 ]; then
_video_color="${_green}$_video%{F-}"
else
_video_color="${_orange}$_video%{F-}"
fi
echo "${_blue}Video:%{F-} $_video_color | ${_pink}Audio:%{F-} $_audio_color"
}
_network(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_iplocal="$(ifconfig trunk0 | tail -1 | awk '{print $2}')"
_wifiname="$(ifconfig iwn0 | tail -1 | awk '{print $3}')"
_wifistr="$(ifconfig iwn0 | tail -1 | awk '{print $8}' | sed 's/dBm//')"
if [ "$_wifistr" -ge -45 ]; then
_wifistr_color="${_green}${_wifistr}dbm%{F-}"
elif [ "$_wifistr" -lt -45 ] && [ "$_wifistr" -ge -60 ]; then
_wifistr_color="${_orange}${_wifistr}dbm%{F-}"
elif [ "$_wifistr" -lt -60 ]; then
_wifistr_color="${_red}${_wifistr}dbm%{F-}"
fi
if [ "$_net" = "em0" ]; then
echo "${_pink}${_net}:%{F-} ${_green}${_iplocal}%{F-}"
elif [ "$_net" = "iwn0" ]; then
echo "${_pink}${_wifiname}:%{F-} ${_green}${_iplocal}%{F-} ${_wifistr_color}"
else
echo "${_red}No network!%{F-}"
fi
}
_mail(){
_mail_count="$(grep '^To:' /var/mail/b2r1s8 | wc -l | sed 's/ //g')"
echo "${_cyan}Mail:%{F-}${_green}${_mail_count}%{F-}"
}
_sound(){
_vol="$(sndioctl -n output.level)"
_vol_done="$(echo "scale=0; $_vol * 100" | bc | awk -F'[.=]' '{print $1}')%"
echo "${_orange}Sound:%{F-} ${_green}${_vol_done}"
}
_batt(){
_full="$(sysctl -n hw.sensors.acpibat0.watthour0 | awk '{print $1}')"
_real="$(sysctl -n hw.sensors.acpibat0.watthour3 | awk '{print $1}')"
_percent="$(echo "scale=2; ${_real} / ${_full} * 100" | bc | awk -F '.' '{print $1}')"
_state="$(sysctl -n hw.sensors.acpibat0.raw0 | awk '{print $3}' | sed s/\)\,//)"
case $_state in
"discharging") _states="dis" ;;
"charging") _states="cha" ;;
"idle") _states="idl" ;;
"full") _states="ful" ;;
esac
_y=50
_r=30
if [ "$_percent" -ge "$_y" ]; then
_percent_color="${_green}${_percent}%"
elif [ "$_percent" -ge "$_r" ]; then
_percent_color="${_yellow}${_percent}%"
else
_percent_color="${_red}${_percent}%"
fi
echo "${_purple}${_states}:%{F-} ${_percent_color}"
}
_clock(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_day="$()"
case $_net in
"em0") _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
"iwn0") _date=$(date "+%Y-%m-%d %H:%M") ;;
*) _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
esac
echo -n "$_date"
}
#
#$(_thelemic_date) \
#$(_fan_speed) | \
#$(_smt_func) | \
#$(_sec) | \
#$(_pf) | \
#$(_rec) | \
#(_temp) | \
while true; do
echo "%{l}%{+u}%{+o} \
$(_os_type) \
$(_grp) \
%{c}| $(_mem) | \
$(_network) | \
$(_mail) | \
$(_sound) %{F-}| \
$(_batt) %{F-}|\
%{r}$(_clock) "
sleep 1
done