Add tmux-ram-usage plugin
This commit is contained in:
parent
79068c40b3
commit
311da18dc2
3 changed files with 97 additions and 1 deletions
10
INSTALL.md
10
INSTALL.md
|
@ -48,7 +48,7 @@ To enable plugins set up the `@dracula-plugins` option in you `.tmux.conf` file,
|
||||||
The order that you define the plugins will be the order on the status bar left to right.
|
The order that you define the plugins will be the order on the status bar left to right.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, network, network-bandwidth, network-ping, attached-clients, network-vpn, weather, time, spotify-tui, kubernetes-context
|
# available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, tmux-ram-usage, network, network-bandwidth, network-ping, attached-clients, network-vpn, weather, time, spotify-tui, kubernetes-context
|
||||||
|
|
||||||
set -g @dracula-plugins "cpu-usage gpu-usage ram-usage"
|
set -g @dracula-plugins "cpu-usage gpu-usage ram-usage"
|
||||||
```
|
```
|
||||||
|
@ -161,6 +161,14 @@ Customize label
|
||||||
set -g @dracula-ram-usage-label "RAM"
|
set -g @dracula-ram-usage-label "RAM"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### tmux-ram-usage options
|
||||||
|
|
||||||
|
Customize label
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @dracula-tmux-ram-usage-label "MEM"
|
||||||
|
```
|
||||||
|
|
||||||
#### network-bandwidth
|
#### network-bandwidth
|
||||||
|
|
||||||
You can configure which network interface you want to view the bandwidth,
|
You can configure which network interface you want to view the bandwidth,
|
||||||
|
|
|
@ -169,6 +169,10 @@ main()
|
||||||
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-ram-usage-colors" "cyan dark_gray")
|
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-ram-usage-colors" "cyan dark_gray")
|
||||||
script="#($current_dir/ram_info.sh)"
|
script="#($current_dir/ram_info.sh)"
|
||||||
|
|
||||||
|
elif [ $plugin = "tmux-ram-usage" ]; then
|
||||||
|
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-tmux-ram-usage-colors" "cyan dark_gray")
|
||||||
|
script="#($current_dir/tmux_ram_info.sh)"
|
||||||
|
|
||||||
elif [ $plugin = "network" ]; then
|
elif [ $plugin = "network" ]; then
|
||||||
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-network-colors" "cyan dark_gray")
|
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-network-colors" "cyan dark_gray")
|
||||||
script="#($current_dir/network.sh)"
|
script="#($current_dir/network.sh)"
|
||||||
|
|
84
scripts/tmux_ram_info.sh
Executable file
84
scripts/tmux_ram_info.sh
Executable file
|
@ -0,0 +1,84 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# setting the locale, some users have issues with different locales, this forces the correct one
|
||||||
|
export LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
source $current_dir/utils.sh
|
||||||
|
|
||||||
|
kb_to_mb() {
|
||||||
|
if [ $# == 0 ]; then
|
||||||
|
read num
|
||||||
|
else
|
||||||
|
num="$1"
|
||||||
|
fi
|
||||||
|
bc <<< "scale=3;$num/1024"
|
||||||
|
}
|
||||||
|
|
||||||
|
kb_to_gb() {
|
||||||
|
if [ $# == 0 ]; then
|
||||||
|
read num
|
||||||
|
else
|
||||||
|
num="$1"
|
||||||
|
fi
|
||||||
|
bc <<< "scale=6;$num/1048576"
|
||||||
|
}
|
||||||
|
|
||||||
|
round() {
|
||||||
|
if [ $# == 1 ]; then
|
||||||
|
read num
|
||||||
|
scale="$1"
|
||||||
|
elif [ $# == 2 ]; then
|
||||||
|
num="$1"
|
||||||
|
scale="$2"
|
||||||
|
fi
|
||||||
|
printf "%.${scale}f" "${num}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_tmux_ram_usage()
|
||||||
|
{
|
||||||
|
local pid="$(tmux display-message -pF '#{pid}')"
|
||||||
|
local total_mem_kb=0
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux)
|
||||||
|
local pids="$(pstree -p $pid | tr -d '\n' | sed -rn -e 's/[^()]*\(([0-9]+)\)[^()]*/\1,/g' -e 's/,$//p')"
|
||||||
|
total_mem_kb="$(ps -o rss= -p "$pids" | paste -sd+ | bc)"
|
||||||
|
;;
|
||||||
|
|
||||||
|
Darwin)
|
||||||
|
local pids="$(pstree $pid | sed -En 's/[^0-9]+([0-9]+) .*/\1/p' | tr '\n' ',')"
|
||||||
|
total_mem_kb="$(ps -o rss= -p "$pids" | paste -sd+ - | bc)"
|
||||||
|
;;
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
# TODO check FreeBSD compatibility
|
||||||
|
local pids="$(pstree $pid | sed -En 's/[^0-9]+([0-9]+) .*/\1/p' | tr '\n' ',')"
|
||||||
|
total_mem_kb="$(ps -o rss= -p "$pids" | paste -sd+ - | bc)"
|
||||||
|
;;
|
||||||
|
|
||||||
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
||||||
|
# TODO - windows compatability
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
local total_mem_mb=$(echo "$total_mem_kb" | kb_to_mb | round 0)
|
||||||
|
local total_mem_gb=$(echo "$total_mem_kb" | kb_to_gb | round 0)
|
||||||
|
|
||||||
|
if (( $total_mem_gb > 0)); then
|
||||||
|
echo "${total_mem_gb}GB"
|
||||||
|
elif (( $total_mem_mb > 0 )); then
|
||||||
|
echo "${total_mem_mb}MB"
|
||||||
|
else
|
||||||
|
echo "${total_mem_kb}kB"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
# storing the refresh rate in the variable RATE, default is 5
|
||||||
|
RATE=$(get_tmux_option "@dracula-refresh-rate" 5)
|
||||||
|
ram_label=$(get_tmux_option "@dracula-tmux-ram-usage-label" "MEM")
|
||||||
|
ram_usage=$(get_tmux_ram_usage)
|
||||||
|
echo "$ram_label $ram_usage"
|
||||||
|
}
|
||||||
|
|
||||||
|
#run main driver
|
||||||
|
main
|
Loading…
Reference in a new issue