add display info
This commit is contained in:
parent
d190a3a7db
commit
c57ff8024d
@ -139,3 +139,21 @@ def get_cpu_temp() -> str:
|
|||||||
except (OSError, ValueError):
|
except (OSError, ValueError):
|
||||||
continue
|
continue
|
||||||
return "—"
|
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,
|
QScrollArea,
|
||||||
)
|
)
|
||||||
from PySide6.QtCore import Qt
|
from PySide6.QtCore import Qt
|
||||||
from PySide6.QtGui import QFont
|
from PySide6.QtGui import QFont, QGuiApplication
|
||||||
from PySide6.QtWidgets import QScroller
|
from PySide6.QtWidgets import QScroller
|
||||||
import build_info
|
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("Ядро", build_info.get_kernel_version()))
|
||||||
info.addWidget(_info_row("RAM (используется/всего)", build_info.get_ram_info()))
|
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_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("Серийный номер", build_info.get_serial_number()))
|
||||||
info.addWidget(_info_row("IP", build_info.get_ip_address()))
|
info.addWidget(_info_row("IP", build_info.get_ip_address()))
|
||||||
info.addWidget(_info_row("Температура CPU", build_info.get_cpu_temp()))
|
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.addStretch(1)
|
||||||
layout.addWidget(val)
|
layout.addWidget(val)
|
||||||
return row
|
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