Skip to main content

par_term_config/config/config_struct/
default_impl.rs

1//! `impl Default for Config`
2//!
3//! Mirrors every `#[serde(default = …)]` annotation on `Config` so that
4//! `Config::default()` and a deserialized empty YAML file are always equivalent.
5
6use crate::types::LogLevel;
7
8use super::{
9    AiInspectorConfig, AutomationConfig, BackgroundConfig, BadgeConfig, ClipboardConfig,
10    CommandSeparatorConfig, Config, CopyModeConfig, CursorConfig, FontRenderingConfig,
11    GlobalShaderConfig, ImageConfig, InputConfig, IntegrationConfig, MouseConfig,
12    NotificationConfig, PaneConfig, PowerConfig, ProgressBarConfig, RenderingConfig,
13    ScrollbackConfig, ScrollbarConfig, SearchConfig, SecurityConfig, SelectionConfig,
14    SemanticHistoryConfig, SessionLogConfig, SessionRestoreConfig, ShaderOverridesConfig,
15    ShaderWatchConfig, ShellConfig, SshConfig, StatusBarConfig, TabBarColorsConfig, TabConfig,
16    ThemeColorsConfig, TmuxConfig, UnicodeConfig, WindowConfig, WindowPlacementConfig,
17    WordSelectionConfig,
18};
19
20impl Default for Config {
21    fn default() -> Self {
22        Self {
23            cols: crate::defaults::cols(),
24            rows: crate::defaults::rows(),
25            font_size: crate::defaults::font_size(),
26            font_family: crate::defaults::font_family(),
27            font_family_bold: None,
28            font_family_italic: None,
29            font_family_bold_italic: None,
30            font_ranges: Vec::new(),
31            line_spacing: crate::defaults::line_spacing(),
32            char_spacing: crate::defaults::char_spacing(),
33            enable_text_shaping: crate::defaults::text_shaping(),
34            enable_ligatures: crate::defaults::bool_true(),
35            enable_kerning: crate::defaults::bool_true(),
36            font_rendering: FontRenderingConfig::default(),
37            copy_mode: CopyModeConfig::default(),
38            scrollback: ScrollbackConfig::default(),
39            unicode: UnicodeConfig::default(),
40            cursor: CursorConfig::default(),
41            scrollbar: ScrollbarConfig::default(),
42            window_title: crate::defaults::window_title(),
43            allow_title_change: crate::defaults::bool_true(),
44            theme_colors: ThemeColorsConfig::default(),
45            input: InputConfig::default(),
46            selection: SelectionConfig::default(),
47            mouse: MouseConfig::default(),
48            word_selection: WordSelectionConfig::default(),
49            screenshot_format: crate::defaults::screenshot_format(),
50            rendering: RenderingConfig::default(),
51            window: WindowConfig::default(),
52            placement: WindowPlacementConfig::default(),
53            background: BackgroundConfig::default(),
54            image: ImageConfig::default(),
55            download_save_location: crate::types::DownloadSaveLocation::default(),
56            last_download_directory: None,
57            shader: GlobalShaderConfig::default(),
58            shell: ShellConfig::default(),
59            semantic_history: SemanticHistoryConfig::default(),
60            command_separator: CommandSeparatorConfig::default(),
61            clipboard: ClipboardConfig::default(),
62            max_osc_data_length: crate::defaults::max_osc_data_length(),
63            command_history_max_entries: crate::defaults::command_history_max_entries(),
64            notifications: NotificationConfig::default(),
65            ssh: SshConfig::default(),
66            tabs: TabConfig::default(),
67            tab_colors: TabBarColorsConfig::default(),
68            panes: PaneConfig::default(),
69            tmux: TmuxConfig::default(),
70            power: PowerConfig::default(),
71            shader_watch: ShaderWatchConfig::default(),
72            shader_overrides: ShaderOverridesConfig::default(),
73            keybindings: crate::defaults::keybindings(),
74            custom_action_prefix_key: crate::defaults::custom_action_prefix_key(),
75            integrations: IntegrationConfig::default(),
76            updates: crate::config::config_struct::UpdateConfig::default(),
77            session_restore: SessionRestoreConfig::default(),
78            search: SearchConfig::default(),
79            session_log: SessionLogConfig::default(),
80            log_level: LogLevel::default(),
81            badge: BadgeConfig::default(),
82            status_bar: StatusBarConfig::default(),
83            progress_bar: ProgressBarConfig::default(),
84            automation: AutomationConfig::default(),
85            snippets: Vec::new(),
86            actions: Vec::new(),
87            collapsed_settings_sections: Vec::new(),
88            dynamic_profile_sources: Vec::new(),
89            security: SecurityConfig::default(),
90            ai_inspector: AiInspectorConfig::default(),
91            insecure_trigger_names: Vec::new(),
92            unaccepted_risk_trigger_names: Vec::new(),
93        }
94    }
95}