Skip to main content

par_term_config/config/config_struct/
shader_overrides_config.rs

1//! Per-shader configuration overrides.
2//!
3//! Extracted from the top-level [`super::Config`] struct via `#[serde(flatten)]`.
4//! All fields serialise at the top level of the YAML config file -- existing
5//! config files remain 100% compatible.
6
7use crate::types::{CursorShaderConfig, ShaderConfig};
8use serde::{Deserialize, Serialize};
9use std::collections::HashMap;
10
11/// Per-file overrides for background and cursor shader settings.
12#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13pub struct ShaderOverridesConfig {
14    /// Per-shader configuration overrides (key = shader filename)
15    /// These override settings embedded in shader metadata and global defaults
16    #[serde(default)]
17    pub shader_configs: HashMap<String, ShaderConfig>,
18
19    /// Per-cursor-shader configuration overrides (key = shader filename)
20    #[serde(default)]
21    pub cursor_shader_configs: HashMap<String, CursorShaderConfig>,
22}