From d7453ed56e7a704857f8249c5dcee9e5d18ea1c3 Mon Sep 17 00:00:00 2001 From: oscarg Date: Mon, 24 Aug 2026 11:35:20 +1200 Subject: [PATCH] Thingy --- pkg/wayland_display_manager/gnome/__init__.py | 8 +++++++- pkg/wayland_display_manager/plasma/__init__.py | 17 +++++++++++++++-- pkg/wayland_display_manager/wlroots/__init__.py | 12 ++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/pkg/wayland_display_manager/gnome/__init__.py b/pkg/wayland_display_manager/gnome/__init__.py index 48223b3..79c0df8 100644 --- a/pkg/wayland_display_manager/gnome/__init__.py +++ b/pkg/wayland_display_manager/gnome/__init__.py @@ -1,6 +1,7 @@ import os import re import subprocess +from typing import override from ..abstracts import AbstractDisplay from ..structs import Modeline, MonitorInfo @@ -12,6 +13,7 @@ from ._gnome_types import GNOMEDisplayConfig MODE_REGEX_PATTERN = re.compile(r"(\d+)x(\d+)@(\d+\.\d+)") class Display(AbstractDisplay): + @override def get_modes(self): mutter_display_state = GNOMEDisplayConfig() mutter_display_state.get_dbus_info() @@ -43,7 +45,8 @@ class Display(AbstractDisplay): ) return result - + + @override def set_mode(self, modeline, requested_connector=None) -> None: subprocess.run( [ @@ -58,6 +61,7 @@ class Display(AbstractDisplay): ] ) + @override def save_current_mode(self, location): gdctl_output = subprocess.run( ["gdctl", "show"], capture_output=True, text=True, check=True @@ -67,6 +71,7 @@ class Display(AbstractDisplay): with open(location, "w") as file: file.write(f"{w}x{h}@{r}") + @override def read_saved_mode(self, location): with open(location, "r") as file: config_file_content = file.read() @@ -77,5 +82,6 @@ class Display(AbstractDisplay): return Modeline(width=int(w), height=int(h), refresh_rate=float(r)) @staticmethod + @override def detect(): return "gnome" in os.environ.get("XDG_CURRENT_DESKTOP", "").lower() diff --git a/pkg/wayland_display_manager/plasma/__init__.py b/pkg/wayland_display_manager/plasma/__init__.py index d7f31af..aaf48de 100644 --- a/pkg/wayland_display_manager/plasma/__init__.py +++ b/pkg/wayland_display_manager/plasma/__init__.py @@ -1,15 +1,28 @@ import os +from typing import override from ..abstracts import AbstractDisplay +from ..structs import MonitorInfo, Modeline class Display(AbstractDisplay): - def get_modes(self): + @override + def get_modes(self) -> list[MonitorInfo]: pass - def set_mode(self, modeline: str): + @override + def set_mode(self, modeline: Modeline, requested_connector: str) -> None: pass + @override + def read_saved_mode(self, location: str | Path) -> Modeline: + pass + + @override + def save_current_mode(self, location: str | Path) -> None: + pass + @staticmethod + @override def detect(): return "plasma" in os.environ.get("XDG_CURRENT_DESKTOP", "").lower() diff --git a/pkg/wayland_display_manager/wlroots/__init__.py b/pkg/wayland_display_manager/wlroots/__init__.py index 202aab0..53a2b3f 100644 --- a/pkg/wayland_display_manager/wlroots/__init__.py +++ b/pkg/wayland_display_manager/wlroots/__init__.py @@ -1,15 +1,23 @@ import os +from typing import override from ..abstracts import AbstractDisplay +from ..structs import MonitorInfo, Modeline class Display(AbstractDisplay): - def get_modes(self): + def get_modes(self) -> list[MonitorInfo]: pass - def set_mode(self, modeline: str): + def set_mode(self, modeline: Modeline, requested_connector: str) -> None: pass + def read_saved_mode(self, location: str | Path) -> Modeline: + pass + + def save_current_mode(self, location: str | Path) -> None: + pass + @staticmethod def detect(): desktop = os.environ.get("XDG_CURRENT_DESKTOP", "").lower()