i3pystatus/i3pystatus/gpu_temp.py
David Wahlstrom cc3781a6c0 gpu_temp: add "display_if" setting
Adds a "display_if" setting to the gpu_temp module that allows the
output to be squelched unless some snippet has been evaluated as true.
2016-05-11 13:26:38 -07:00

38 lines
1.0 KiB
Python

from i3pystatus import IntervalModule
from .utils import gpu
class GPUTemperature(IntervalModule):
"""
Shows GPU temperature
Currently Nvidia only and nvidia-smi required
.. rubric:: Available formatters
* `{temp}` — the temperature in integer degrees celsius
"""
settings = (
("format", "format string used for output. {temp} is the temperature in integer degrees celsius"),
("display_if", "snippet that gets evaluated. if true, displays the module output"),
"color",
"alert_temp",
"alert_color",
)
format = "{temp} °C"
color = "#FFFFFF"
alert_temp = 90
alert_color = "#FF0000"
display_if = True
def run(self):
temp = gpu.query_nvidia_smi().temp
temp_alert = temp is None or temp >= self.alert_temp
if eval(self.display_if):
self.output = {
"full_text": self.format.format(temp=temp),
"color": self.color if not temp_alert else self.alert_color,
}