aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRikard Bergqvist <j10rikardb@gmail.com>2026-04-18 07:28:55 +0200
committerGitHub <noreply@github.com>2026-04-18 07:28:55 +0200
commit0d7ec6569acee97068d238aa1faa8e19fc8b8a4c (patch)
tree95b3ba68c4be932881c296eda90b92ca7fe01614
parentchore(deps): bump cached from 0.56.0 to 0.59.0 (#246) (diff)
downloadsl0pstatus-0d7ec6569acee97068d238aa1faa8e19fc8b8a4c.tar.gz
sl0pstatus-0d7ec6569acee97068d238aa1faa8e19fc8b8a4c.tar.xz
sl0pstatus-0d7ec6569acee97068d238aa1faa8e19fc8b8a4c.zip
feat: add zero based tab index support (#249)
* adds zero based tab index support * update after comments
-rw-r--r--src/widgets/tabs.rs13
-rw-r--r--tests/zjstatus/layout.kdl1
2 files changed, 13 insertions, 1 deletions
diff --git a/src/widgets/tabs.rs b/src/widgets/tabs.rs
index c012e3a..647cf67 100644
--- a/src/widgets/tabs.rs
+++ b/src/widgets/tabs.rs
@@ -24,6 +24,7 @@ pub struct TabsWidget {
tab_display_count: Option<usize>,
tab_truncate_start_format: Vec<FormattedPart>,
tab_truncate_end_format: Vec<FormattedPart>,
+ tab_zero_based_index: bool,
}
impl TabsWidget {
@@ -78,6 +79,11 @@ impl TabsWidget {
.map(|form| FormattedPart::multiple_from_format_string(form, config))
.unwrap_or_default();
+ let tab_zero_based_index = match config.get("tab_zero_based_index") {
+ Some(e) => matches!(e.as_str(), "true"),
+ None => false,
+ };
+
let separator = config
.get("tab_separator")
.map(|s| FormattedPart::from_format_string(s, config));
@@ -97,6 +103,7 @@ impl TabsWidget {
tab_display_count,
tab_truncate_start_format,
tab_truncate_end_format,
+ tab_zero_based_index,
}
}
}
@@ -270,7 +277,11 @@ impl TabsWidget {
}
if content.contains("{index}") {
- content = content.replace("{index}", (tab.position + 1).to_string().as_str());
+ let index = match self.tab_zero_based_index {
+ true => tab.position,
+ false => tab.position + 1,
+ };
+ content = content.replace("{index}", index.to_string().as_str());
}
if content.contains("{floating_total_count}") {
diff --git a/tests/zjstatus/layout.kdl b/tests/zjstatus/layout.kdl
index a6157c3..c943830 100644
--- a/tests/zjstatus/layout.kdl
+++ b/tests/zjstatus/layout.kdl
@@ -51,6 +51,7 @@ layout {
tab_display_count "3"
tab_truncate_start_format "#[fg=$blue,bg=$bg]#[bg=$blue,fg=black] +{count} ... #[fg=$bg,bg=$blue]"
tab_truncate_end_format "#[fg=red,bg=$bg] ... +{count} > #[bg=$yellow] "
+ tab_zero_based_index "false"
command_0_command "echo \"平仮名, ひらがな 📦\""
command_0_clickaction "bash -c \"zellij --session zjstatus-dev pipe 'zjstatus::notify::hello world!' -n zjstatus\""