From c57ff8024d70d8df3a76f0c99a2c72d33e3e81dc Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 9 Jan 2026 02:23:41 +0300 Subject: [PATCH] add display info --- build_info.py | 18 ++++++++++++++++++ screens/setting/about_screen.py | 17 ++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/build_info.py b/build_info.py index 9390ffe..761fedd 100644 --- a/build_info.py +++ b/build_info.py @@ -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 "—" diff --git a/screens/setting/about_screen.py b/screens/setting/about_screen.py index ec081bb..9d62c73 100644 --- a/screens/setting/about_screen.py +++ b/screens/setting/about_screen.py @@ -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()}"