forked from genewildish/Mainline
- Add upstream-default preset matching upstream mainline behavior: - Terminal display (not pygame) - No message overlay - Classic effects: noise, fade, glitch, firehose - Mixed positioning mode - Enhance demo preset to showcase sideline features: - Hotswappable effects via effect plugins - LFO sensor modulation (oscillator sensor) - Mixed positioning mode - Message overlay with ntfy integration - Includes hud effect for visual feedback - Update all presets to use mixed positioning mode - Update completion script for --positioning flag Usage: python -m mainline --preset upstream-default --display terminal python -m mainline --preset demo --display pygame
165 lines
3.7 KiB
TOML
165 lines
3.7 KiB
TOML
# Mainline Presets Configuration
|
|
# Human- and machine-readable preset definitions
|
|
#
|
|
# Format: TOML
|
|
# Usage: mainline --preset <name>
|
|
#
|
|
# 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
|