from typing import Literal import decman from decman.plugins import pacman, systemd class LoginManager(decman.Module): def __init__(self, platform: Literal["desktop", "laptop"]): """Base packages that should never be uninstalled""" self._platform: Literal["desktop", "laptop"] = platform super().__init__("base") @pacman.packages def pkgs(self) -> set[str]: if self._platform == "desktop": return { "greetd", "greetd-tuigreet", } else: return {"gdm"} # TODO: Config files for laptop and desktop # TODO: Consider dms greetd for desktop @systemd.units def units(self) -> set[str]: if self._platform == "desktop": return {"greetd.service"} else: return {"gdm.service"}