forked from genewildish/Mainline
feat(presets): add TOML preset loader with validation
- 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)
This commit is contained in:
106
presets.toml
Normal file
106
presets.toml
Normal file
@@ -0,0 +1,106 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user