aboutsummaryrefslogtreecommitdiff
path: root/src/config/model.rs
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-05 15:45:17 +0300
committerIgor Soarez <igor@soarez.org>2026-10-05 15:45:17 +0300
commit9a12d7fb0eae23c016d3e941a16765084fbf0eaa (patch)
tree1ad3a3584fffdf6ed317b766ffb99684a1465510 /src/config/model.rs
parent10fb1ab5ac9091e59957e97c3e75ea6bc288b8c5 (diff)
tmuxrdr: tmux's status line as the tab row (ui.tab_style = "tmux")
herdr draws each tab as a centred, padded block, and a named tab shows its name without its number. With ui.tab_style = "tmux" the row is tmux 3.7c's default status line: "[session] " cut to status-left-length 10, then each window as "#I:#W#{?window_flags,#{window_flags}, }" -- current "*", last "-", zoomed "Z" -- one space apart, plain text in the status line's colours. Unnamed tabs are called after their active pane's directory, like automatic-rename-format '#{b:pane_current_path}'. The logic is in src/client/shell/tabs_tmux.rs; render_tab_bar keeps its layout, scrolling, mouse hits and + button, with three one-line hooks for width, text and style, and the session at the left. Each tab's active pane and each workspace's previous tab are remembered by the client, so nothing changes in the protocol and the client works against a stock herdr server. The default, herdr, draws as before.
Diffstat (limited to 'src/config/model.rs')
-rw-r--r--src/config/model.rs3
1 files changed, 3 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(),