add display info
This commit is contained in:
parent
d190a3a7db
commit
c57ff8024d
@ -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 "—"
|
||||
|
||||
@ -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()}"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user