feat(preset): Add enable_message_overlay to presets

- Add enable_message_overlay field to PipelinePreset dataclass
- Enable message overlay in demo, ui, and firehose presets
- Add test-message-overlay preset for testing
- Update preset loader to support new field from TOML files
This commit is contained in:
2026-03-21 15:31:43 -07:00
parent ead4cc3d5a
commit 2976839f7b
2 changed files with 19 additions and 0 deletions

View File

@@ -59,6 +59,7 @@ class PipelinePreset:
viewport_height: int = 24 # Viewport height in rows viewport_height: int = 24 # Viewport height in rows
source_items: list[dict[str, Any]] | None = None # For ListDataSource source_items: list[dict[str, Any]] | None = None # For ListDataSource
enable_metrics: bool = True # Enable performance metrics collection enable_metrics: bool = True # Enable performance metrics collection
enable_message_overlay: bool = False # Enable ntfy message overlay
def to_params(self) -> PipelineParams: def to_params(self) -> PipelineParams:
"""Convert to PipelineParams (runtime configuration).""" """Convert to PipelineParams (runtime configuration)."""
@@ -113,6 +114,7 @@ class PipelinePreset:
viewport_height=data.get("viewport_height", 24), viewport_height=data.get("viewport_height", 24),
source_items=data.get("source_items"), source_items=data.get("source_items"),
enable_metrics=data.get("enable_metrics", True), enable_metrics=data.get("enable_metrics", True),
enable_message_overlay=data.get("enable_message_overlay", False),
) )
@@ -124,6 +126,7 @@ DEMO_PRESET = PipelinePreset(
display="pygame", display="pygame",
camera="scroll", camera="scroll",
effects=["noise", "fade", "glitch", "firehose"], effects=["noise", "fade", "glitch", "firehose"],
enable_message_overlay=True,
) )
UI_PRESET = PipelinePreset( UI_PRESET = PipelinePreset(
@@ -134,6 +137,7 @@ UI_PRESET = PipelinePreset(
camera="scroll", camera="scroll",
effects=["noise", "fade", "glitch"], effects=["noise", "fade", "glitch"],
border=BorderMode.UI, border=BorderMode.UI,
enable_message_overlay=True,
) )
POETRY_PRESET = PipelinePreset( POETRY_PRESET = PipelinePreset(
@@ -170,6 +174,7 @@ FIREHOSE_PRESET = PipelinePreset(
display="pygame", display="pygame",
camera="scroll", camera="scroll",
effects=["noise", "fade", "glitch", "firehose"], effects=["noise", "fade", "glitch", "firehose"],
enable_message_overlay=True,
) )
FIXTURE_PRESET = PipelinePreset( FIXTURE_PRESET = PipelinePreset(

View File

@@ -62,6 +62,7 @@ effects = [] # Demo script will add/remove effects dynamically
camera_speed = 0.1 camera_speed = 0.1
viewport_width = 80 viewport_width = 80
viewport_height = 24 viewport_height = 24
enable_message_overlay = true
[presets.demo-pygame] [presets.demo-pygame]
description = "Demo: Pygame display version" description = "Demo: Pygame display version"
@@ -72,6 +73,7 @@ effects = [] # Demo script will add/remove effects dynamically
camera_speed = 0.1 camera_speed = 0.1
viewport_width = 80 viewport_width = 80
viewport_height = 24 viewport_height = 24
enable_message_overlay = true
[presets.demo-camera-showcase] [presets.demo-camera-showcase]
description = "Demo: Camera mode showcase" description = "Demo: Camera mode showcase"
@@ -82,6 +84,18 @@ effects = [] # Demo script will cycle through camera modes
camera_speed = 0.5 camera_speed = 0.5
viewport_width = 80 viewport_width = 80
viewport_height = 24 viewport_height = 24
enable_message_overlay = true
[presets.test-message-overlay]
description = "Test: Message overlay with ntfy integration"
source = "headlines"
display = "terminal"
camera = "feed"
effects = ["hud"]
camera_speed = 0.1
viewport_width = 80
viewport_height = 24
enable_message_overlay = true
# ============================================ # ============================================
# SENSOR CONFIGURATION # SENSOR CONFIGURATION