Added module for graphing cpu usage.
This commit is contained in:
parent
2e7df52394
commit
aa349c8ba9
52
i3pystatus/cpu_usage_graph.py
Normal file
52
i3pystatus/cpu_usage_graph.py
Normal file
@ -0,0 +1,52 @@
|
||||
from i3pystatus.core.color import ColorRangeModule
|
||||
from i3pystatus.cpu_usage import CpuUsage
|
||||
from i3pystatus.core.util import make_graph
|
||||
|
||||
|
||||
class CpuUsageGraph(CpuUsage, ColorRangeModule):
|
||||
"""
|
||||
Shows CPU usage as a Unicode graph.
|
||||
The first output will be inacurate.
|
||||
|
||||
Linux only
|
||||
|
||||
Available formatters:
|
||||
|
||||
* {cpu_graph} graph of cpu usage.
|
||||
* {usage} usage average of all cores
|
||||
* {usage_cpu*} usage of one specific core. replace "*" by core number starting at 0
|
||||
* {usage_all} usage of all cores separate. usess natsort when available(relevant for more than 10 cores)
|
||||
"""
|
||||
|
||||
settings = (
|
||||
("cpu", "cpu to monitor, choices are 'usage_cpu' for all or 'usage_cpu*'. R"
|
||||
"eplace '*' by core number starting at 0."),
|
||||
("start_color", "Hex or English name for start of color range, eg '#00FF00' or 'green'"),
|
||||
("end_color", "Hex or English name for end of color range, eg '#FF0000' or 'red'")
|
||||
)
|
||||
|
||||
graph_width = 15
|
||||
format = '{cpu_graph}'
|
||||
cpu = 'usage_cpu'
|
||||
|
||||
def init(self):
|
||||
super().init()
|
||||
self.cpu_readings = self.graph_width * [0]
|
||||
self.colors = self.get_hex_color_range(self.start_color, self.end_color, int(100))
|
||||
|
||||
def run(self):
|
||||
format_options = self.get_usage()
|
||||
core_reading = format_options[self.cpu]
|
||||
|
||||
self.cpu_readings.insert(0, core_reading)
|
||||
self.cpu_readings = self.cpu_readings[:self.graph_width]
|
||||
|
||||
graph = make_graph(self.cpu_readings, 100.0)
|
||||
format_options.update({'cpu_graph': graph})
|
||||
|
||||
color = self.get_gradient(core_reading, self.colors)
|
||||
self.output = {
|
||||
"full_text": self.format.format_map(format_options),
|
||||
'color': color
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user