feat: allow to customize status section separator

This commit is contained in:
Pig Fang 2023-08-07 17:36:35 +08:00
parent badcf99416
commit 319b06a4be
No known key found for this signature in database
GPG key ID: A8198F548DADA9E2
4 changed files with 31 additions and 22 deletions

View file

@ -25,7 +25,7 @@ impl<'a> Widget for Left<'a> {
let mut spans = vec![];
// Mode
spans.push(Span::styled("", primary.fg()));
spans.push(Span::styled(&THEME.status.section_separator.left, primary.fg()));
spans.push(Span::styled(
format!(" {mode} "),
primary.bg().fg(**secondary).add_modifier(Modifier::BOLD),
@ -35,7 +35,7 @@ impl<'a> Widget for Left<'a> {
// Length
if let Some(len) = h.length {
spans.push(Span::styled(format!(" {} ", readable_size(len)), body.bg().fg(**primary)));
spans.push(Span::styled("", body.fg()));
spans.push(Span::styled(&THEME.status.section_separator.right, body.fg()));
}
// Filename

View file

@ -46,7 +46,8 @@ impl<'a> Right<'a> {
let percent = if cursor == 0 || length == 0 { 0 } else { (cursor + 1) * 100 / length };
vec![
Span::styled("", body.fg()),
Span::raw(" "),
Span::styled(&THEME.status.section_separator.left, body.fg()),
Span::styled(
if percent == 0 { " Top ".to_string() } else { format!(" {:>3}% ", percent) },
body.bg().fg(**primary),
@ -55,7 +56,7 @@ impl<'a> Right<'a> {
format!(" {:>2}/{:<2} ", (cursor + 1).min(length), length),
primary.bg().fg(**secondary),
),
Span::styled("", primary.fg()),
Span::styled(&THEME.status.section_separator.right, primary.fg()),
]
}
}

View file

@ -3,15 +3,16 @@ active = { fg = "#1E2031", bg = "#80AEFA" }
inactive = { fg = "#C8D3F8", bg = "#484D66" }
[status]
primary = { normal = "#80AEFA", select = "#CD9EFC", unset = "#FFA577" }
secondary = { normal = "#1E2031", select = "#23273B", unset = "#23273B" }
tertiary = { normal = "#6D738F", select = "#6D738F", unset = "#6D738F" }
body = { normal = "#484D66", select = "#484D66", unset = "#484D66" }
emphasis = { normal = "#C8D3F8", select = "#C8D3F8", unset = "#C8D3F8" }
info = { normal = "#7AD9E5", select = "#7AD9E5", unset = "#7AD9E5" }
success = { normal = "#97DC8D", select = "#97DC8D", unset = "#97DC8D" }
warning = { normal = "#F3D398", select = "#F3D398", unset = "#F3D398" }
danger = { normal = "#FA7F94", select = "#FA7F94", unset = "#FA7F94" }
primary = { normal = "#80AEFA", select = "#CD9EFC", unset = "#FFA577" }
secondary = { normal = "#1E2031", select = "#23273B", unset = "#23273B" }
tertiary = { normal = "#6D738F", select = "#6D738F", unset = "#6D738F" }
body = { normal = "#484D66", select = "#484D66", unset = "#484D66" }
emphasis = { normal = "#C8D3F8", select = "#C8D3F8", unset = "#C8D3F8" }
info = { normal = "#7AD9E5", select = "#7AD9E5", unset = "#7AD9E5" }
success = { normal = "#97DC8D", select = "#97DC8D", unset = "#97DC8D" }
warning = { normal = "#F3D398", select = "#F3D398", unset = "#F3D398" }
danger = { normal = "#FA7F94", select = "#FA7F94", unset = "#FA7F94" }
section_separator = { left = "", right = "" }
[progress]
gauge = { fg = "#FFA577", bg = "#484D66" }

View file

@ -14,15 +14,22 @@ pub struct Tab {
#[derive(Deserialize)]
pub struct Status {
pub primary: ColorGroup,
pub secondary: ColorGroup,
pub tertiary: ColorGroup,
pub body: ColorGroup,
pub emphasis: ColorGroup,
pub info: ColorGroup,
pub success: ColorGroup,
pub warning: ColorGroup,
pub danger: ColorGroup,
pub primary: ColorGroup,
pub secondary: ColorGroup,
pub tertiary: ColorGroup,
pub body: ColorGroup,
pub emphasis: ColorGroup,
pub info: ColorGroup,
pub success: ColorGroup,
pub warning: ColorGroup,
pub danger: ColorGroup,
pub section_separator: SectionSeparator,
}
#[derive(Deserialize)]
pub struct SectionSeparator {
pub left: String,
pub right: String,
}
#[derive(Deserialize)]