callisto/modules/system_info.py

33 lines
973 B
Python
Raw Normal View History

2025-05-16 18:43:09 +02:00
import os
import psutil
2025-05-16 18:48:06 +02:00
from modules.base_module import BaseModule
class SystemInfoModule(BaseModule):
2025-05-16 18:43:09 +02:00
def get_display_text(self):
lines = []
# CPU temperature
try:
with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
temp_str = f.read()
cpu_temp = round(int(temp_str) / 1000.0, 1)
2025-05-16 18:53:04 +02:00
temp_str = f"{cpu_temp:>4}°C"
2025-05-16 18:43:09 +02:00
except FileNotFoundError:
2025-05-16 18:53:04 +02:00
temp_str = " N/A°C"
2025-05-16 18:43:09 +02:00
# CPU usage
cpu_usage = psutil.cpu_percent(interval=0.2)
2025-05-16 18:53:04 +02:00
cpu_str = f"{cpu_usage:>5.1f}%"
2025-05-16 18:43:09 +02:00
# Memory usage
mem = psutil.virtual_memory()
mem_used = round(mem.used / (1024 * 1024))
mem_total = round(mem.total / (1024 * 1024))
2025-05-16 18:53:04 +02:00
mem_str = f"{mem_used}/{mem_total}MB"
2025-05-16 18:43:09 +02:00
2025-05-16 18:53:04 +02:00
# Compose lines for better alignment
lines.append(f"Temp:{temp_str} CPU:{cpu_str}")
2025-05-16 18:56:09 +02:00
lines.append(f"Mem: {mem_str}%")
2025-05-16 18:53:04 +02:00
return "\n".join(lines)