Add system-info Linux systemd user unit

Update the `system-info` directory with the addition of a `systemd`
service file and an new Linux script to display current CPU temperature
and core/thread utilization. Update `.conduit.yaml` with addition
`apt` dependencies `sysstat` and `jq`. Update the install and remove
scripts to setup and tear down the `systemd` user unit. Lastly, decrease
the `tmux` status line update interval from 5 to 2 seconds.
This commit is contained in:
Kenneth Benzie 2021-02-17 00:15:17 +00:00
parent d96a1b7438
commit 21a88edfaa
6 changed files with 42 additions and 1 deletions

View File

@ -4,6 +4,8 @@
- tmux - tmux
- xclip - xclip
- urlview - urlview
- sysstat
- jq
- brew: - brew:
- tmux - tmux
- urlview - urlview

View File

@ -5,4 +5,8 @@ script_dir=`dirname $0`
if [ `uname` = Darwin ]; then if [ `uname` = Darwin ]; then
cp $script_dir/system-info.plist ~/Library/LaunchAgents/system-info.plist cp $script_dir/system-info.plist ~/Library/LaunchAgents/system-info.plist
launchctl load -w ~/Library/LaunchAgents/system-info.plist launchctl load -w ~/Library/LaunchAgents/system-info.plist
else
cp $script_dir/system-info.service ~/.config/systemd/user/system-info.service
systemctl --user enable system-info
systemctl --user start system-info
fi fi

View File

@ -3,4 +3,7 @@
if [ `uname` = Darwin ]; then if [ `uname` = Darwin ]; then
launchctl unload ~/Library/LaunchAgents/system-info.plist launchctl unload ~/Library/LaunchAgents/system-info.plist
rm ~/Library/LaunchAgents/system-info.plist rm ~/Library/LaunchAgents/system-info.plist
else
systemctl --user stop system-info
systemctl --user disable system-info
fi fi

View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
cache_dir=~/.cache/tmux
cache_file=$cache_dir/system-info
# Make sure the output directory exists.
if [ ! -d $cache_dir ]; then
mkdir -p $cache_dir
fi
# Cleanup cache file when interrupted.
trap '[ -f $cache_file ] && rm $cache_file; exit' INT
trap '[ -f $cache_file ] && rm $cache_file; exit' TERM
while true; do
# Parse the current CPU load on all cores/threads.
cpu_load=`mpstat -P ALL -n 1 -u 1 -o JSON | \
jq '.sysstat.hosts[0].statistics[0]["cpu-load"][1:]|.[].idle' | \
awk '$idle ~ /[-.0-9]*/ { printf "%s", substr("█▇▆▅▄▃▂▁ ", int($idle / 11), 1) }'`
# Parse the current CPU package temperature.
cpu_temp=`sensors coretemp-isa-0000 | awk 'NR == 3 { print substr($4, 2) }'`
# Write to the cache file.
echo "$cpu_temp $cpu_load" > $cache_file
done

View File

@ -0,0 +1,8 @@
[Unit]
Description=System Info
[Service]
ExecStart=/home/benie/.config/tmux/system-info/system-info-Linux.sh
[Install]
WantedBy=default.target

View File

@ -19,7 +19,7 @@ set -g history-limit 1000000
set -g display-time 4000 set -g display-time 4000
# Refresh 'status-left' and 'status-right' more often # Refresh 'status-left' and 'status-right' more often
set -g status-interval 5 set -g status-interval 2
# Upgrade $TERM # Upgrade $TERM
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"