# Mainline Presets Configuration # Human- and machine-readable preset definitions # # Format: TOML # Usage: mainline --preset # # Built-in presets can be overridden by user presets in: # - ~/.config/mainline/presets.toml # - ./presets.toml (local override) # ============================================ # TEST PRESETS (for CI and development) # ============================================ [presets.test-basic] description = "Test: Basic pipeline with no effects" source = "empty" display = "null" camera = "feed" effects = [] viewport_width = 100 # Custom size for testing viewport_height = 30 [presets.test-border] description = "Test: Single item with border effect" source = "empty" display = "null" camera = "feed" effects = ["border"] viewport_width = 80 viewport_height = 24 [presets.test-scroll-camera] description = "Test: Scrolling camera movement" source = "empty" display = "null" camera = "scroll" effects = [] camera_speed = 0.5 viewport_width = 80 viewport_height = 24 [presets.test-figment] description = "Test: Figment overlay effect" source = "empty" display = "terminal" camera = "feed" effects = ["figment"] viewport_width = 80 viewport_height = 24 # ============================================ # DEMO PRESETS (for demonstration and exploration) # ============================================ [presets.upstream-default] description = "Upstream default operation (terminal display, legacy behavior)" source = "headlines" display = "terminal" camera = "scroll" effects = ["noise", "fade", "glitch", "firehose"] camera_speed = 1.0 viewport_width = 80 viewport_height = 24 enable_message_overlay = false positioning = "mixed" [presets.demo-base] description = "Demo: Base preset for effect hot-swapping" source = "headlines" display = "terminal" camera = "feed" effects = [] # Demo script will add/remove effects dynamically camera_speed = 0.1 viewport_width = 80 viewport_height = 24 enable_message_overlay = true positioning = "mixed" [presets.demo-pygame] description = "Demo: Pygame display version" source = "headlines" display = "pygame" camera = "feed" effects = ["noise", "fade", "glitch", "firehose"] # Default effects camera_speed = 0.1 viewport_width = 80 viewport_height = 24 enable_message_overlay = true positioning = "mixed" [presets.demo-camera-showcase] description = "Demo: Camera mode showcase" source = "headlines" display = "terminal" camera = "feed" effects = [] # Demo script will cycle through camera modes camera_speed = 0.5 viewport_width = 80 viewport_height = 24 enable_message_overlay = true positioning = "mixed" [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 positioning = "mixed" # ============================================ # SENSOR CONFIGURATION # ============================================ [sensors.mic] enabled = false threshold_db = 50.0 [sensors.oscillator] enabled = true # Enable for demo script gentle oscillation waveform = "sine" frequency = 0.05 # ~20 second cycle (gentle) amplitude = 0.5 # 50% modulation # ============================================ # EFFECT CONFIGURATIONS # ============================================ [effect_configs.noise] enabled = true intensity = 1.0 [effect_configs.fade] enabled = true intensity = 1.0 [effect_configs.glitch] enabled = true intensity = 0.5 [effect_configs.firehose] enabled = true intensity = 1.0 [effect_configs.hud] enabled = true intensity = 1.0 [effect_configs.tint] enabled = true intensity = 1.0 [effect_configs.border] enabled = true intensity = 1.0 [effect_configs.crop] enabled = true intensity = 1.0