par_term_config/config/config_struct/
tab_config.rs1use crate::types::{
8 NewTabPosition, RemoteTabTitleFormat, TabBarMode, TabBarPosition, TabStyle, TabTitleMode,
9};
10use serde::{Deserialize, Serialize};
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct TabConfig {
15 #[serde(default)]
18 pub tab_style: TabStyle,
19
20 #[serde(default = "crate::defaults::light_tab_style")]
22 pub light_tab_style: TabStyle,
23
24 #[serde(default = "crate::defaults::dark_tab_style")]
26 pub dark_tab_style: TabStyle,
27
28 #[serde(default)]
30 pub tab_bar_mode: TabBarMode,
31
32 #[serde(default)]
34 pub tab_title_mode: TabTitleMode,
35
36 #[serde(default)]
38 pub remote_tab_title_format: RemoteTabTitleFormat,
39
40 #[serde(default = "crate::defaults::bool_true")]
42 pub remote_tab_title_osc_priority: bool,
43
44 #[serde(default = "crate::defaults::tab_bar_height")]
46 pub tab_bar_height: f32,
47
48 #[serde(default)]
50 pub tab_bar_position: TabBarPosition,
51
52 #[serde(default = "crate::defaults::tab_bar_width")]
54 pub tab_bar_width: f32,
55
56 #[serde(default = "crate::defaults::bool_true")]
58 pub tab_show_close_button: bool,
59
60 #[serde(default = "crate::defaults::bool_false")]
62 pub tab_show_index: bool,
63
64 #[serde(default = "crate::defaults::bool_true")]
66 pub tab_inherit_cwd: bool,
67
68 #[serde(default = "crate::defaults::zero")]
70 pub max_tabs: usize,
71
72 #[serde(default = "crate::defaults::bool_false")]
75 pub show_profile_drawer_button: bool,
76
77 #[serde(default = "crate::defaults::bool_false")]
80 pub new_tab_shortcut_shows_profiles: bool,
81
82 #[serde(default)]
85 pub new_tab_position: NewTabPosition,
86}
87
88impl Default for TabConfig {
89 fn default() -> Self {
90 Self {
91 tab_style: TabStyle::default(),
92 light_tab_style: crate::defaults::light_tab_style(),
93 dark_tab_style: crate::defaults::dark_tab_style(),
94 tab_bar_mode: TabBarMode::default(),
95 tab_title_mode: TabTitleMode::default(),
96 remote_tab_title_format: RemoteTabTitleFormat::default(),
97 remote_tab_title_osc_priority: true,
98 tab_bar_height: crate::defaults::tab_bar_height(),
99 tab_bar_position: TabBarPosition::default(),
100 tab_bar_width: crate::defaults::tab_bar_width(),
101 tab_show_close_button: crate::defaults::bool_true(),
102 tab_show_index: crate::defaults::bool_false(),
103 tab_inherit_cwd: crate::defaults::bool_true(),
104 max_tabs: crate::defaults::zero(),
105 show_profile_drawer_button: crate::defaults::bool_false(),
106 new_tab_shortcut_shows_profiles: crate::defaults::bool_false(),
107 new_tab_position: NewTabPosition::default(),
108 }
109 }
110}