mirror of
https://github.com/dcarrillo/dotfiles.git
synced 2025-07-04 09:59:25 +00:00
First commit
This commit is contained in:
43
.config/polybar/scripts/cpu_usage.py
Executable file
43
.config/polybar/scripts/cpu_usage.py
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
colors = {
|
||||
'us': '#43A047', # us, user : time running un-niced user processes
|
||||
'sy': '#87CEFA', # sy, system : time running kernel processes
|
||||
'ni': '#FFFFFF', # ni, nice : time running niced user processes
|
||||
'wa': '#E53935', # wa, IO-wait : time waiting for I/O completion
|
||||
'hi': '#66CDAA', # hi : time spent servicing hardware interrupts
|
||||
'si': '#7FFFD4', # si : time spent servicing software interrupts
|
||||
'st': '#7B2B4E', # st : time stolen from this vm by the hypervisor
|
||||
'id': '#555555'
|
||||
}
|
||||
|
||||
|
||||
def show_cpu_usage():
|
||||
new_env = dict(os.environ)
|
||||
new_env['LANG'] = 'en_US.UTF-8' # ensure that the decimal separator is a point
|
||||
top = subprocess.run(["top", "-bn1"], capture_output=True, env=new_env)
|
||||
|
||||
raw_cpu_usages = top.stdout.decode("utf-8").split('\n')[2]
|
||||
cpu_usage = str.replace(raw_cpu_usages, '%Cpu(s):', '')
|
||||
|
||||
bar = ''
|
||||
global_count = 0
|
||||
for usage in cpu_usage.split(','):
|
||||
value, key = str.lstrip(usage).split(' ')
|
||||
count = round(float(value) / 10)
|
||||
if count > 0 and key != 'id':
|
||||
global_count += count
|
||||
bar += '%{F' + colors[key] + '}' + '_' * count + '%{F-}'
|
||||
|
||||
padding = ''
|
||||
if global_count < 10:
|
||||
padding = '%{F' + colors['id'] + '}' + '_' * (10 - global_count) + '%{F-}'
|
||||
|
||||
print("%{A1:$TERMINAL_CMD 'top -o %CPU' &:}%{T5}" + bar + padding + "%{T-}%{A-}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
show_cpu_usage()
|
Reference in New Issue
Block a user