dotfiles

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

commit 49ded8554d13c45246218b3837c386e03bd75cff
parent b73e5a6c448ce47e6a09e3ad8dac98870f3e0055
Author: pyratebeard <root@pyratebeard.net>
Date:   Mon,  9 Jun 2025 10:55:51 +0100

feat(tmux): tmux-status script for bar info

Diffstat:
Mtmux/.config/tmux/tmux.conf | 3++-
Atmux/.local/bin/tmux-status | 225+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 227 insertions(+), 1 deletion(-)

diff --git a/tmux/.config/tmux/tmux.conf b/tmux/.config/tmux/tmux.conf @@ -120,8 +120,9 @@ setw -g window-status-separator " " setw -g window-status-format "#[bg=colour241,fg=colour0] #I #[bg=colour241,fg=colour0]#W #[bg=default,fg=colour241]▓░" setw -g window-status-current-format "#[bg=colour10,fg=colour0] #I #[bg=colour10,fg=colour0]#W #[bg=default,fg=colour10]▓░" set -g status-justify left -set-option -g status-right '#[bg=default,fg=colour237]░▓#[bg=colour237,fg=colour15]#{goldenapple}#{muted_state}#{bond_device}#{online_status}#[bg=colour237,fg=colour243] %Y%m#[bg=colour237,fg=colour7]%d#[fg=colour243]-#[fg=colour15]%u #[fg=colour7]%H%M #[bg=colour243,fg=colour237]▓#[default]' +#set-option -g status-right '#[bg=default,fg=colour237]░▓#[bg=colour237,fg=colour15]#{goldenapple}#{muted_state}#{bond_device}#{online_status}#[bg=colour237,fg=colour243] %Y%m#[bg=colour237,fg=colour7]%d#[fg=colour243]-#[fg=colour15]%u #[fg=colour7]%H%M #[bg=colour243,fg=colour237]▓#[default]' #set-option -g status-right '#[bg=default,fg=colour237]░▓#[bg=colour237,fg=colour15]#(~/bin/tmux-status) #{goldenapple}#{muted_state}#{bond_device}#{online_status}#[bg=colour237,fg=colour243] %Y%m#[bg=colour237,fg=colour7]%d#[fg=colour243]-#[fg=colour15]%u #[fg=colour7]%H%M #[bg=colour243,fg=colour237]▓#[default]' +set-option -g status-right '#(~/.local/bin/tmux-status)#[default]' set-option -g status-left '' # online and offline icon for tmux-online-status diff --git a/tmux/.local/bin/tmux-status b/tmux/.local/bin/tmux-status @@ -0,0 +1,225 @@ +#!/bin/bash +# ██ +# ░██ +# ██████ ██████████ ██ ██ ██ ██ +# ░░░██░ ░░██░░██░░██░██ ░██░░██ ██ +# ░██ ░██ ░██ ░██░██ ░██ ░░███ +# ░██ ░██ ░██ ░██░██ ░██ ██░██ +# ░░██ ███ ░██ ░██░░██████ ██ ░░██ +# ░░ ░░░ ░░ ░░ ░░░░░░ ░░ ░░ +# ██ ██ +# ░██ ░██ +# ██████ ██████ ██████ ██████ ██ ██ ██████ +# ██░░░░ ░░░██░ ░░░░░░██ ░░░██░ ░██ ░██ ██░░░░ +#░░█████ ░██ ███████ ░██ ░██ ░██░░█████ +# ░░░░░██ ░██ ██░░░░██ ░██ ░██ ░██ ░░░░░██ +# ██████ ░░██ ░░████████ ░░██ ░░██████ ██████ +#░░░░░░ ░░ ░░░░░░░░ ░░ ░░░░░░ ░░░░░░ +# +# ▓▓▓▓▓▓▓▓▓▓ +# ░▓ author ▓ xero <x@xero.style> +# ░▓ code ▓ https://code.x-e.ro/dotfiles +# ░▓ mirror ▓ https://git.io/.files +# ░▓▓▓▓▓▓▓▓▓▓ +# ░░░░░░░░░░ + +FULL=▒ +EMPTY=░ +THEME="oldriceputin" +if [ $THEME == "oldriceputin" ] ; then + #oldriceputin + C0="#181512" + C8="#454545" + C1="#bb6055" + C9="#c94539" + C2="#80964d" + C10="#aabb46" + C3="#8b6268" + C11="#dab733" + C4="#756583" + C12="#a3535e" + C5="#628185" + C13="#becc90" + C6="#a4b810" + C14="#69c884" + C7="#d3cab3" + C15="#c9b09a" +elif [ $THEME == "zuke" ] ; then + #zuke + C0="#080808" + C8="#404040" + C1="#df5e51" + C9="#d43f10" + C2="#9ac14e" + C10="#a1db2f" + C3="#ffe534" + C11="#ab967c" + C4="#7c8494" + C12="#79e1b2" + C5="#8e73ad" + C13="#75c57a" + C6="#c4bf5f" + C14="#cef318" + C7="#bdbaa0" + C15="#e9ede9" +elif [ $THEME == "slughead" ] ; then + # slughead + C0="#2a2f33" + C8="#4d5863" + C1="#dc4f41" + C9="#d41010" + C2="#14894c" + C10="#bae751" + C3="#ffea5b" + C11="#7ca7ab" + C4="#4b73ae" + C12="#79e1b2" + C5="#456180" + C13="#4bed67" + C6="#309e4f" + C14="#35f46b" + C7="#e3ebf3" + C15="#bbc2c8" +elif [ $THEME == "sourcery" ] ; then + # sourcery + C0='#111111' + C8='#444444' + C1='#aa4d44' + C9='#fb683f' + C2='#619033' + C10='#9be733' + C3='#ff5050' + C11='#9d9b75' + C4='#7681a8' + C12='#bdcae8' + C5='#635273' + C13='#8e7a9e' + C6='#58813f' + C14='#93c03c' + C7='#d3d3d3' + C15='#c1cdc1' + + #C0="#111111" + #C8="#444444" + #C1="#aa4453" + #C9="#f66767" + #C2="#728a1e" + #C10="#b2d631" + #C3="#ffcc3c" + #C11="#87855f" + #C4="#5b9299" + #C12="#89b9bb" + #C5="#84678f" + #C13="#8e7a9e" + #C6="#528b63" + #C14="#7fdc95" + #C7="#d3d3d3" + #C15="#c1cdc1" +fi + +C237="#3a3a3a" +C240="#585858" +C241="#626262" +C243="#767676" +C244="#808080" + +draw() { + perc=$1 + size=$2 + inc=$((perc * size / 100)) + out= + case $THEME in + oldriceputin) CFG=$C14 ; CBG=$C241 ;; + zuke) CFG=$C12 ; CBG=$C5 ;; + sourcery) CFG=$C10 ; CBG=$C5 ;; + blaqueplague) CFG=$C5 ; CBG=$C241 ;; + esac + for v in $(seq 0 $((size - 1))); do + test "$v" -le "$inc" && + out="${out}#[fg=$CFG]${FULL}" || + out="${out}#[bg=$CBG]#[fg=$C0]${EMPTY}#[bg=$C241]" + done + echo "$out" +} +temp() { + builtin type -P "sensors" &>/dev/null || exit + t=$(sensors | awk '/Core\ 0/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3) ; print $3}') + tc=$C0 + if [ $((t <= 50)) ]; then + tc=$C0 + elif [ $((t >= 75)) ]; then + tc=$C1 + fi + echo " #[fg=$tc]$t°c" +} +bat() { + BATPATH=/sys/class/power_supply/BAT0 + STATUS=$BATPATH/status + BAT_FULL=$BATPATH/energy_full + BAT_NOW=$BATPATH/energy_now + bf=$(cat $BAT_FULL) + bn=$(cat $BAT_NOW) + bp=$((100 * bn / bf)) + stat=$(cat $STATUS) + case $stat in + "Not charging") + st="=" + ;; + Discharging) + st="-" + ;; + Charging) + st="+" + ;; + esac + test "$bp" -lt 20 && + bc=$C1 || + bc=$C0 + echo "#[fg=$C0]$st#[fg=$bc]$bp""%" +} +cpu() { + CPU_USE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}') + printf "%.0f" "$CPU_USE" +} +ram() { + free | awk '/Mem:/ {print int($3/$2 * 100.0)}' +} +disk() { + df -h | grep '/$' | tr -s ' ' | cut -d ' ' -f5 | sed 's/%//' +} +vpn() { + # todo: ensure tailscale is working + case $THEME in + oldriceputin) CSTATE=$C12 ;; + zuke) CSTATE=$C12 ;; + sourcery) CSTATE=$C12 ;; + esac + tailscale ip >/dev/null 2>&1 && state=$C10 || state=$C3 + echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] vpn #[bg=$state]#[fg=$C237]░▒#[bg=$state]#[fg=$C237]▓#[bg=$C237]" +} +net() { + case $THEME in + oldriceputin) CFG=$C14 ; CBG=$C0 ;; + zuke) CFG=$C12 ; CBG=$C5 ;; + sourcery) CFG=$C12 ; CBG=$C5 ;; + esac + ping 9.9.9.9 -c 1 >/dev/null 2>&1 && state=$C10 || state=$C3 + echo "#[bg=$state]#[fg=$C241]▓▒░#[bg=$state]#[fg=0] net #[bg=$state]#[fg=$C241]░▒#[bg=$state]#[fg=$C241]▓#[bg=$C241]" +} +clock() { + mtime=$(date +'%H%M') + myear=$(date +'%Y%m') + mday=$(date +'%d') + mdow=$(date +'%u') + echo "#[fg=$C241]#[bg=$C237] #[fg=$C243]$myear#[fg=$C15]$mday#[fg=$C243]-#[fg=$C15]$mdow #[fg=$C7]$mtime #[bg=0]#[fg=$C8]▒░" +} +front() { + echo "#[bg=$C241]#[fg=$C0]▓▒░" +} +separator() { + echo "#[bg=$C12]#[fg=$C237]░▒#[bg=$C12]#[fg=$C237]▓" +} +CPU_INFO=$(cpu) +RAM_INFO=$(ram) +DISK_INFO=$(disk) +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)"