#!/usr/bin/env bash

## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Openbox Pipemenu to display system stats/info

# Variables and functions
MENUS_LIBDIR='/usr/share/debiancraft/openbox/menulib'
if ! . "$MENUS_LIBDIR/debiancraft.cfg" 2> /dev/null; then
	echo "Error: Failed to locate debiancraft.cfg in $MENUS_LIBDIR" >&2
	exit 1
fi

##-- OS ------------------------
os=`uname -o`

##-- DISTRO ------------------------
distro=`cat /etc/os-release | grep NAME= | head -n1 | cut -d'=' -f2 | tr -d \"`

##-- KERNEL ------------------------
kernel=`uname -sr`

##-- MACHINE ------------------------
machine=`uname -m`

##-- CPU ------------------------
cpu=`cat /proc/cpuinfo | grep 'model name' | cut -d':' -f2 | uniq`

##-- MEMORY ------------------------
m_total="`free -m | grep 'Mem' | tr -s '[:blank:]' | cut -d' ' -f2`MB"
m_used="`free -m | grep 'Mem' | tr -s '[:blank:]' | cut -d' ' -f3`MB"
m_free="`free -m | grep 'Mem' | tr -s '[:blank:]' | cut -d' ' -f4`MB"

##-- SWAP ------------------------
s_total="`free -m | grep 'Swap' | tr -s '[:blank:]' | cut -d' ' -f2`MB"
s_used="`free -m | grep 'Swap' | tr -s '[:blank:]' | cut -d' ' -f3`MB"
s_free="`free -m | grep 'Swap' | tr -s '[:blank:]' | cut -d' ' -f4`MB"
swappiness="`cat /proc/sys/vm/swappiness`%"

##-- INIT ------------------------
init=`cat /proc/1/comm`

##-- BATTERY ------------------------
b_stat=`acpi -b | grep Battery | cut -d' ' -f3 | tr -d ,`
b_perc=`acpi -b | grep Battery | cut -d' ' -f4 | tr -d ,`
b_cap=`acpi -i | tail -n1 | cut -d'=' -f2 | tr -d "[:blank:]"`

##-- BACKLIGHT ------------------------
g_card=`ls /sys/class/backlight | head -n1`
b_value=`cat /sys/class/backlight/$g_card/brightness`
backlight="$(($b_value*100/255))%"

##-- UPTIME ------------------------
uptime=`uptime -p | awk '{print $2 " " $3 " " $4 " " $5}'`

##-- LOAD ------------------------
load=`cat /proc/loadavg`

##-- WIFI ------------------------
interface=`nmcli device status | grep "wifi" | tr -s '[:blank:]' | cut -d' ' -f1`
type=`nmcli device status | grep "wifi" | tr -s '[:blank:]' | cut -d' ' -f2`
status=`nmcli device status | grep "wifi" | tr -s '[:blank:]' | cut -d' ' -f3`
ssid=`nmcli device status | grep "wifi" | tr -s '[:blank:]' | cut -d' ' -f4`

##-- MENU ------------------------

menuStart
menuSeparator " $USER@$HOSTNAME  |   `date +'%I:%M %p, %b %d %G'`"
menuItem "  OS         :  $distro ∙ $os ∙ $machine" 'echo'
menuItem "  KERNEL     :  $kernel" 'echo'
menuItem "  CPU        : $cpu" 'echo'
menuItem "  MEMORY     :  $m_used ∙ $m_free ∙ $m_total" 'echo'
menuItem "  SWAP       :  $s_used ∙ $s_free ∙ $s_total ∙ $swappiness" 'echo'
menuItem "  INIT       :  $init" 'echo'
menuItem "  BATTERY    :  $b_perc ∙ $b_stat ∙ Capacity, $b_cap" 'echo'
menuItem "  BACKLIGHT  :  $backlight" 'echo'
menuItem "  UPTIME     :  $uptime" 'echo'
menuItem "  LOAD       :  $load" 'echo'
menuItem "  WIFI       :  $interface ∙ $status ∙ $ssid" 'echo'
menuEnd
