aboutsummaryrefslogtreecommitdiff
path: root/src/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/config')
-rw-r--r--src/config/model.rs3
-rw-r--r--src/config/tmuxrdr.rs16
2 files changed, 19 insertions, 0 deletions
diff --git a/src/config/model.rs b/src/config/model.rs
index 0e2e57ce..69ba27ca 100644
--- a/src/config/model.rs
+++ b/src/config/model.rs
@@ -984,6 +984,8 @@ pub struct UiConfig {
pub hide_tab_bar_when_single_tab: bool,
/// Desktop tab row placement. Default: top.
pub tab_bar_position: TabBarPositionConfig,
+ /// tmuxrdr: how the tab row draws its tabs. Default: herdr.
+ pub tab_style: super::TabStyleConfig,
/// Ordered entries shown at the right edge of the desktop tab row. Empty by default.
pub tab_bar_right: Vec<TabBarRightEntryConfig>,
/// Text inserted between visible right-side tab bar entries. Default: one space.
@@ -1217,6 +1219,7 @@ impl Default for UiConfig {
show_agent_labels_on_pane_borders: false,
hide_tab_bar_when_single_tab: false,
tab_bar_position: TabBarPositionConfig::Top,
+ tab_style: Default::default(),
tab_bar_right: Vec::new(),
tab_bar_right_separator: " ".into(),
window_title: super::window_title::default_window_title(),
diff --git a/src/config/tmuxrdr.rs b/src/config/tmuxrdr.rs
new file mode 100644
index 00000000..3cd36642
--- /dev/null
+++ b/src/config/tmuxrdr.rs
@@ -0,0 +1,16 @@
+//! tmuxrdr's own config options. In a file of their own, so the patch to
+//! herdr's config model stays a field and its default.
+
+use serde::{Deserialize, Serialize};
+
+/// How the tab row draws its tabs: `ui.tab_style`.
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Default)]
+#[serde(rename_all = "snake_case")]
+pub enum TabStyleConfig {
+ /// herdr's: centred, padded blocks; a named tab shows its name only.
+ #[default]
+ Herdr,
+ /// tmux's status line: `[session] 1:name* 2:name-`, plain text, one space
+ /// apart -- src/client/shell/tabs_tmux.rs.
+ Tmux,
+}