add display info

This commit is contained in:
Your Name 2026-01-09 02:23:41 +03:00
parent d190a3a7db
commit c57ff8024d
2 changed files with 34 additions and 1 deletions

View File

@ -139,3 +139,21 @@ def get_cpu_temp() -> str:
except (OSError, ValueError):
continue
return ""
def get_display_resolution() -> str:
for path in ("/sys/class/graphics/fb0/virtual_size", "/sys/class/graphics/fb0/modes"):
try:
with open(path, "r", encoding="utf-8") as f:
raw = f.read().strip()
if not raw:
continue
if "x" in raw:
first_line = raw.splitlines()[0]
return first_line.split(" ", 1)[0]
if "," in raw:
width, height = raw.split(",", 1)
return f"{width.strip()}x{height.strip()}"
except OSError:
continue
return ""

View File

@ -6,7 +6,7 @@ from PySide6.QtWidgets import (
QScrollArea,
)
from PySide6.QtCore import Qt
from PySide6.QtGui import QFont
from PySide6.QtGui import QFont, QGuiApplication
from PySide6.QtWidgets import QScroller
import build_info
@ -47,6 +47,8 @@ def build_about_screen() -> QWidget:
info.addWidget(_info_row("Ядро", build_info.get_kernel_version()))
info.addWidget(_info_row("RAM (используется/всего)", build_info.get_ram_info()))
info.addWidget(_info_row("Диск (используется/всего)", build_info.get_disk_info()))
info.addWidget(_info_row("Экран", build_info.get_display_resolution()))
info.addWidget(_info_row("Экран (факт)", _get_runtime_resolution()))
info.addWidget(_info_row("Серийный номер", build_info.get_serial_number()))
info.addWidget(_info_row("IP", build_info.get_ip_address()))
info.addWidget(_info_row("Температура CPU", build_info.get_cpu_temp()))
@ -76,3 +78,16 @@ def _info_row(label: str, value: str) -> QWidget:
layout.addStretch(1)
layout.addWidget(val)
return row
def _get_runtime_resolution() -> str:
app = QGuiApplication.instance()
if app is None:
return ""
screen = app.primaryScreen()
if screen is None:
return ""
size = screen.size()
if size.isEmpty():
return ""
return f"{size.width()}x{size.height()}"