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:
parent
d96a1b7438
commit
21a88edfaa
@ -4,6 +4,8 @@
|
|||||||
- tmux
|
- tmux
|
||||||
- xclip
|
- xclip
|
||||||
- urlview
|
- urlview
|
||||||
|
- sysstat
|
||||||
|
- jq
|
||||||
- brew:
|
- brew:
|
||||||
- tmux
|
- tmux
|
||||||
- urlview
|
- urlview
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
24
system-info/system-info-Linux.sh
Executable file
24
system-info/system-info-Linux.sh
Executable 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
|
8
system-info/system-info.service
Normal file
8
system-info/system-info.service
Normal 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
|
@ -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"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user