39 lines
1.1 KiB
Python
39 lines
1.1 KiB
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__("login")
|
|
|
|
@pacman.packages
|
|
def pkgs(self) -> set[str]:
|
|
if self._platform == "desktop":
|
|
return {
|
|
"greetd",
|
|
"greetd-tuigreet",
|
|
}
|
|
else:
|
|
return {"gdm"}
|
|
|
|
@systemd.units
|
|
def units(self) -> set[str]:
|
|
if self._platform == "desktop":
|
|
return {"greetd.service"}
|
|
else:
|
|
return {"gdm.service"}
|
|
|
|
def files(self) -> dict[str, decman.File]:
|
|
if self._platform == "desktop":
|
|
return {
|
|
"/etc/greetd/config.toml": decman.File("./system/greetd/config.toml"),
|
|
"/etc/pam.d/greetd": decman.File("./system/greetd/pam"),
|
|
}
|
|
else:
|
|
# TODO: GDM config files
|
|
return {}
|