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)"