tmux-status (6114B)
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="goblinmode" 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 elif [ $THEME == "goblinmode" ] ; then 119 CBG="#222222" 120 C0="#111111" 121 C8="#181818" 122 C1="#aa4450" 123 C9="#ff6a6a" 124 C2="#719611" 125 C10="#b1d631" 126 C3="#ff3423" 127 C11="#949468" 128 C4="#699c9c" 129 C12="#8ba8c5" 130 C5="#746285" 131 C13="#a086b1" 132 C6="#647a45" 133 C14="#92db47" 134 C7="#d3d3d3" 135 C15="#c1cdc1" 136 fi 137 138 C237="#3a3a3a" 139 C240="#585858" 140 C241="#626262" 141 C243="#767676" 142 C244="#808080" 143 144 draw() { 145 perc=$1 146 size=$2 147 inc=$((perc * size / 100)) 148 out= 149 case $THEME in 150 oldriceputin) CFG=$C14 ; CBG=$C241 ;; 151 zuke) CFG=$C12 ; CBG=$C5 ;; 152 sourcery) CFG=$C10 ; CBG=$C5 ;; 153 goblinmode) CFG=$C10 ; CBG=$C5 ;; 154 blaqueplague) CFG=$C5 ; CBG=$C241 ;; 155 esac 156 for v in $(seq 0 $((size - 1))); do 157 test "$v" -le "$inc" && 158 out="${out}#[fg=$CFG]${FULL}" || 159 out="${out}#[bg=$CBG]#[fg=$C0]${EMPTY}#[bg=$C241]" 160 done 161 echo "$out" 162 } 163 temp() { 164 builtin type -P "sensors" &>/dev/null || exit 165 t=$(sensors | awk '/Core\ 0/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3) ; print $3}') 166 tc=$C0 167 if [ $((t <= 50)) ]; then 168 tc=$C0 169 elif [ $((t >= 75)) ]; then 170 tc=$C1 171 fi 172 echo " #[fg=$tc]$t°c" 173 } 174 bat() { 175 BATPATH=/sys/class/power_supply/BAT0 176 STATUS=$BATPATH/status 177 BAT_FULL=$BATPATH/energy_full 178 BAT_NOW=$BATPATH/energy_now 179 bf=$(cat $BAT_FULL) 180 bn=$(cat $BAT_NOW) 181 bp=$((100 * bn / bf)) 182 stat=$(cat $STATUS) 183 case $stat in 184 "Not charging") 185 st="=" 186 ;; 187 Discharging) 188 st="-" 189 ;; 190 Charging) 191 st="+" 192 ;; 193 esac 194 test "$bp" -lt 20 && 195 bc=$C1 || 196 bc=$C0 197 echo "#[fg=$C0]$st#[fg=$bc]$bp""%" 198 } 199 cpu() { 200 CPU_USE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}') 201 printf "%.0f" "$CPU_USE" 202 } 203 ram() { 204 free | awk '/Mem:/ {print int($3/$2 * 100.0)}' 205 } 206 disk() { 207 df -h | grep '/$' | tr -s ' ' | cut -d ' ' -f5 | sed 's/%//' 208 } 209 vpn() { 210 # todo: ensure tailscale is working 211 case $THEME in 212 oldriceputin) CSTATE=$C12 ;; 213 zuke) CSTATE=$C12 ;; 214 sourcery) CSTATE=$C12 ;; 215 goblinmode) CSTATE=$C12 ;; 216 esac 217 tailscale ip >/dev/null 2>&1 && state=$C10 || state=$C3 218 echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] vpn #[bg=$state]#[fg=$C237]░▒#[bg=$state]#[fg=$C237]▓#[bg=$C237]" 219 } 220 net() { 221 case $THEME in 222 oldriceputin) CFG=$C14 ; CBG=$C0 ;; 223 zuke) CFG=$C12 ; CBG=$C5 ;; 224 sourcery) CFG=$C12 ; CBG=$C5 ;; 225 goblinmode) CFG=$C12 ; CBG=$C5 ;; 226 esac 227 ping 9.9.9.9 -c 1 >/dev/null 2>&1 && state=$C10 || state=$C3 228 echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] net #[bg=$state]#[fg=$C241]░▒#[bg=$state]#[fg=$C241]▓#[bg=$C241]" 229 } 230 clock() { 231 mtime=$(date +'%H%M') 232 myear=$(date +'%Y%m') 233 mday=$(date +'%d') 234 mdow=$(date +'%u') 235 echo "#[fg=$C241]#[bg=$C237] #[fg=$C243]$myear#[fg=$C15]$mday#[fg=$C243]-#[fg=$C15]$mdow #[fg=$C7]$mtime" 236 } 237 front() { 238 echo "#[bg=$C241]#[fg=$CBG]▓▒░" 239 } 240 finish() { 241 echo "#[bg=$C241]#[fg=$C0]▒░" 242 } 243 separator() { 244 echo "#[bg=$C12]#[fg=$C237]░▒#[bg=$C12]#[fg=$C237]▓" 245 } 246 CPU_INFO=$(cpu) 247 RAM_INFO=$(ram) 248 DISK_INFO=$(disk) 249 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)" "$(finish)"