- Convert presets from YAML to TOML format (no external dep) - Add DEFAULT_PRESET fallback for graceful degradation - Add validate_preset() for preset validation - Add validate_signal_path() for circular dependency detection - Add generate_preset_toml() for skeleton generation - Use tomllib (Python 3.11+ stdlib)
107 lines
2.2 KiB
TOML
107 lines
2.2 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)
|
|
|
|
[presets.demo]
|
|
description = "Demo mode with effect cycling and camera modes"
|
|
source = "headlines"
|
|
display = "pygame"
|
|
camera = "vertical"
|
|
effects = ["noise", "fade", "glitch", "firehose", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 1.0
|
|
firehose_enabled = true
|
|
|
|
[presets.poetry]
|
|
description = "Poetry feed with subtle effects"
|
|
source = "poetry"
|
|
display = "pygame"
|
|
camera = "vertical"
|
|
effects = ["fade", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 0.5
|
|
firehose_enabled = false
|
|
|
|
[presets.pipeline]
|
|
description = "Pipeline visualization mode"
|
|
source = "pipeline"
|
|
display = "terminal"
|
|
camera = "trace"
|
|
effects = ["hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 1.0
|
|
firehose_enabled = false
|
|
|
|
[presets.websocket]
|
|
description = "WebSocket display mode"
|
|
source = "headlines"
|
|
display = "websocket"
|
|
camera = "vertical"
|
|
effects = ["noise", "fade", "glitch", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 1.0
|
|
firehose_enabled = false
|
|
|
|
[presets.sixel]
|
|
description = "Sixel graphics display mode"
|
|
source = "headlines"
|
|
display = "sixel"
|
|
camera = "vertical"
|
|
effects = ["noise", "fade", "glitch", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 1.0
|
|
firehose_enabled = false
|
|
|
|
[presets.firehose]
|
|
description = "High-speed firehose mode"
|
|
source = "headlines"
|
|
display = "pygame"
|
|
camera = "vertical"
|
|
effects = ["noise", "fade", "glitch", "firehose", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
camera_speed = 2.0
|
|
firehose_enabled = true
|
|
|
|
# Sensor configuration (for future use with param bindings)
|
|
[sensors.mic]
|
|
enabled = false
|
|
threshold_db = 50.0
|
|
|
|
[sensors.oscillator]
|
|
enabled = false
|
|
waveform = "sine"
|
|
frequency = 1.0
|
|
|
|
# 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
|