dotfiles

*nix config files
git clone git://git.pyratebeard.net/dotfiles.git
Log | Files | Refs | README

tmux-status (5693B)


      1 #!/bin/bash
      2 #        ██
      3 #       ░██
      4 #      ██████ ██████████  ██   ██ ██   ██
      5 #     ░░░██░ ░░██░░██░░██░██  ░██░░██ ██
      6 #       ░██   ░██ ░██ ░██░██  ░██ ░░███
      7 #       ░██   ░██ ░██ ░██░██  ░██  ██░██
      8 #       ░░██  ███ ░██ ░██░░██████ ██ ░░██
      9 #        ░░  ░░░  ░░  ░░  ░░░░░░ ░░   ░░
     10 #           ██               ██
     11 #          ░██              ░██
     12 #  ██████ ██████  ██████   ██████ ██   ██  ██████
     13 # ██░░░░ ░░░██░  ░░░░░░██ ░░░██░ ░██  ░██ ██░░░░
     14 #░░█████   ░██    ███████   ░██  ░██  ░██░░█████
     15 # ░░░░░██  ░██   ██░░░░██   ░██  ░██  ░██ ░░░░░██
     16 # ██████   ░░██ ░░████████  ░░██ ░░██████ ██████
     17 #░░░░░░     ░░   ░░░░░░░░    ░░   ░░░░░░ ░░░░░░
     18 #
     19 #  ▓▓▓▓▓▓▓▓▓▓
     20 # ░▓ author ▓ xero <x@xero.style>
     21 # ░▓ code   ▓ https://code.x-e.ro/dotfiles
     22 # ░▓ mirror ▓ https://git.io/.files
     23 # ░▓▓▓▓▓▓▓▓▓▓
     24 # ░░░░░░░░░░
     25 
     26 FULL=▒
     27 EMPTY=░
     28 THEME="oldriceputin"
     29 if [ $THEME == "oldriceputin" ] ; then
     30 	#oldriceputin
     31 	C0="#181512"
     32 	C8="#454545"
     33 	C1="#bb6055"
     34 	C9="#c94539"
     35 	C2="#80964d"
     36 	C10="#aabb46"
     37 	C3="#8b6268"
     38 	C11="#dab733"
     39 	C4="#756583"
     40 	C12="#a3535e"
     41 	C5="#628185"
     42 	C13="#becc90"
     43 	C6="#a4b810"
     44 	C14="#69c884"
     45 	C7="#d3cab3"
     46 	C15="#c9b09a"
     47 elif [ $THEME == "zuke" ] ; then
     48 	#zuke
     49 	C0="#080808"
     50 	C8="#404040"
     51 	C1="#df5e51"
     52 	C9="#d43f10"
     53 	C2="#9ac14e"
     54 	C10="#a1db2f"
     55 	C3="#ffe534"
     56 	C11="#ab967c"
     57 	C4="#7c8494"
     58 	C12="#79e1b2"
     59 	C5="#8e73ad"
     60 	C13="#75c57a"
     61 	C6="#c4bf5f"
     62 	C14="#cef318"
     63 	C7="#bdbaa0"
     64 	C15="#e9ede9"
     65 elif [ $THEME == "slughead" ] ; then
     66 	# slughead
     67 	C0="#2a2f33"
     68 	C8="#4d5863"
     69 	C1="#dc4f41"
     70 	C9="#d41010"
     71 	C2="#14894c"
     72 	C10="#bae751"
     73 	C3="#ffea5b"
     74 	C11="#7ca7ab"
     75 	C4="#4b73ae"
     76 	C12="#79e1b2"
     77 	C5="#456180"
     78 	C13="#4bed67"
     79 	C6="#309e4f"
     80 	C14="#35f46b"
     81 	C7="#e3ebf3"
     82 	C15="#bbc2c8"
     83 elif [ $THEME == "sourcery" ] ; then
     84 	# sourcery
     85 	C0='#111111'
     86 	C8='#444444'
     87 	C1='#aa4d44'
     88 	C9='#fb683f'
     89 	C2='#619033'
     90 	C10='#9be733'
     91 	C3='#ff5050'
     92 	C11='#9d9b75'
     93 	C4='#7681a8'
     94 	C12='#bdcae8'
     95 	C5='#635273'
     96 	C13='#8e7a9e'
     97 	C6='#58813f'
     98 	C14='#93c03c'
     99 	C7='#d3d3d3'
    100 	C15='#c1cdc1'
    101 
    102 	#C0="#111111"
    103 	#C8="#444444"
    104 	#C1="#aa4453"
    105 	#C9="#f66767"
    106 	#C2="#728a1e"
    107 	#C10="#b2d631"
    108 	#C3="#ffcc3c"
    109 	#C11="#87855f"
    110 	#C4="#5b9299"
    111 	#C12="#89b9bb"
    112 	#C5="#84678f"
    113 	#C13="#8e7a9e"
    114 	#C6="#528b63"
    115 	#C14="#7fdc95"
    116 	#C7="#d3d3d3"
    117 	#C15="#c1cdc1"
    118 fi
    119 
    120 C237="#3a3a3a"
    121 C240="#585858"
    122 C241="#626262"
    123 C243="#767676"
    124 C244="#808080"
    125 
    126 draw() {
    127 	perc=$1
    128 	size=$2
    129 	inc=$((perc * size / 100))
    130 	out=
    131 	case $THEME in
    132 		oldriceputin) CFG=$C14 ; CBG=$C241 ;;
    133 		zuke) CFG=$C12 ; CBG=$C5 ;;
    134 		sourcery) CFG=$C10 ; CBG=$C5 ;;
    135 		blaqueplague) CFG=$C5 ; CBG=$C241 ;;
    136 	esac
    137 	for v in $(seq 0 $((size - 1))); do
    138 		test "$v" -le "$inc" &&
    139 			out="${out}#[fg=$CFG]${FULL}" ||
    140 			out="${out}#[bg=$CBG]#[fg=$C0]${EMPTY}#[bg=$C241]"
    141 	done
    142 	echo "$out"
    143 }
    144 temp() {
    145 	builtin type -P "sensors" &>/dev/null || exit
    146 	t=$(sensors | awk '/Core\ 0/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3)    ; print $3}')
    147 	tc=$C0
    148 	if [ $((t <= 50)) ]; then
    149 		tc=$C0
    150 	elif [ $((t >= 75)) ]; then
    151 		tc=$C1
    152 	fi
    153 	echo " #[fg=$tc]$t°c"
    154 }
    155 bat() {
    156 	BATPATH=/sys/class/power_supply/BAT0
    157 	STATUS=$BATPATH/status
    158 	BAT_FULL=$BATPATH/energy_full
    159 	BAT_NOW=$BATPATH/energy_now
    160 	bf=$(cat $BAT_FULL)
    161 	bn=$(cat $BAT_NOW)
    162 	bp=$((100 * bn / bf))
    163 	stat=$(cat $STATUS)
    164 	case $stat in
    165 	"Not charging")
    166 		st="="
    167 		;;
    168 	Discharging)
    169 		st="-"
    170 		;;
    171 	Charging)
    172 		st="+"
    173 		;;
    174 	esac
    175 	test "$bp" -lt 20 &&
    176 		bc=$C1 ||
    177 		bc=$C0
    178 	echo "#[fg=$C0]$st#[fg=$bc]$bp""%"
    179 }
    180 cpu() {
    181 	CPU_USE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}')
    182 	printf "%.0f" "$CPU_USE"
    183 }
    184 ram() {
    185 	free | awk '/Mem:/ {print int($3/$2 * 100.0)}'
    186 }
    187 disk() {
    188 	df -h | grep '/$' | tr -s ' ' | cut -d ' ' -f5 | sed 's/%//'
    189 }
    190 vpn() {
    191 	# todo: ensure tailscale is working
    192 	case $THEME in
    193 		oldriceputin) CSTATE=$C12 ;;
    194 		zuke) CSTATE=$C12 ;;
    195 		sourcery) CSTATE=$C12 ;;
    196 	esac
    197 	tailscale ip >/dev/null 2>&1 && state=$C10 || state=$C3
    198 	echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] vpn #[bg=$state]#[fg=$C237]░▒#[bg=$state]#[fg=$C237]▓#[bg=$C237]"
    199 }
    200 net() {
    201 	case $THEME in
    202 		oldriceputin) CFG=$C14 ; CBG=$C0 ;;
    203 		zuke) CFG=$C12 ; CBG=$C5 ;;
    204 		sourcery) CFG=$C12 ; CBG=$C5 ;;
    205 	esac
    206 	ping 9.9.9.9 -c 1 >/dev/null 2>&1 && state=$C10 || state=$C3
    207 	echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] net #[bg=$state]#[fg=$C241]░▒#[bg=$state]#[fg=$C241]▓#[bg=$C241]"
    208 }
    209 clock() {
    210 	mtime=$(date +'%H%M')
    211 	myear=$(date +'%Y%m')
    212 	mday=$(date +'%d')
    213 	mdow=$(date +'%u')
    214 	echo "#[fg=$C241]#[bg=$C237] #[fg=$C243]$myear#[fg=$C15]$mday#[fg=$C243]-#[fg=$C15]$mdow #[fg=$C7]$mtime #[bg=0]#[fg=$C8]▒░"
    215 }
    216 front() {
    217 	echo "#[bg=$C241]#[fg=$C0]▓▒░"
    218 }
    219 separator() {
    220 	echo "#[bg=$C12]#[fg=$C237]░▒#[bg=$C12]#[fg=$C237]▓"
    221 }
    222 CPU_INFO=$(cpu)
    223 RAM_INFO=$(ram)
    224 DISK_INFO=$(disk)
    225 echo "$(front)" "#[fg=0]mem ${RAM_INFO}%" "$(draw "$RAM_INFO" 4)" "#[fg=0]cpu ${CPU_INFO}%" "$(draw "$CPU_INFO" 4)" "#[fg=0]disk ${DISK_INFO}%" "$(draw "${DISK_INFO}" 4)""$(temp)" "$(bat)" "$(net)" "$(vpn)""$(clock)"