32 lines
848 B
Python
32 lines
848 B
Python
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"}
|