ed063ab1fe
Capture desktop-specific system, session, Noctalia, and Pi integration alongside shared laptop support. Retire obsolete X11 configuration and make package ownership explicit for repeatable Decman deployments.
34 lines
935 B
Python
34 lines
935 B
Python
"""Machine profiles compose concerns; concerns never depend on a host."""
|
|
|
|
from modules.host_system import desktop_system, laptop_system
|
|
from modules.packages import PackageConcern
|
|
|
|
COMMON = (
|
|
"common/core",
|
|
"common/hardware",
|
|
"common/wayland",
|
|
"common/fonts",
|
|
"common/development",
|
|
"common/productivity",
|
|
"common/media",
|
|
"common/research",
|
|
"common/network",
|
|
"common/services",
|
|
)
|
|
LAPTOP = ("laptop/hardware",)
|
|
DESKTOP = ("desktop/local",)
|
|
|
|
|
|
def _concerns(names: tuple[str, ...]) -> list[PackageConcern]:
|
|
return [PackageConcern(name) for name in names]
|
|
|
|
|
|
def laptop() -> list:
|
|
"""Laptop: shared concerns, laptop hardware, and laptop system configuration."""
|
|
return [*_concerns((*COMMON, *LAPTOP)), *laptop_system()]
|
|
|
|
|
|
def desktop() -> list:
|
|
"""Desktop: shared packages plus desktop-specific system configuration."""
|
|
return [*_concerns((*COMMON, *DESKTOP)), *desktop_system()]
|