From 67c657aa795c84ff2fd869e55b31f73f60048770 Mon Sep 17 00:00:00 2001 From: PFiS1737 Date: Mon, 10 Feb 2025 15:55:20 +0800 Subject: [PATCH] feat: enhance statusline separator configuration --- yazi-config/preset/theme-dark.toml | 16 ++++++++-------- yazi-config/preset/theme-light.toml | 16 ++++++++-------- yazi-config/src/theme/theme.rs | 22 ++++++++++++++-------- yazi-plugin/preset/components/status.lua | 12 ++++++------ 4 files changed, 36 insertions(+), 30 deletions(-) diff --git a/yazi-config/preset/theme-dark.toml b/yazi-config/preset/theme-dark.toml index 3f78337da..7a1dde4cc 100644 --- a/yazi-config/preset/theme-dark.toml +++ b/yazi-config/preset/theme-dark.toml @@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" } # : Status bar {{{ [status] -overall = {} -separator_open = "" -separator_close = "" - -# Progress -progress_label = { bold = true } -progress_normal = { fg = "blue", bg = "black" } -progress_error = { fg = "red", bg = "black" } +overall = {} +sep_left = { open = "", close = "" } +sep_right = { open = "", close = "" } # Permissions perm_sep = { fg = "darkgray" } @@ -92,6 +87,11 @@ perm_read = { fg = "yellow" } perm_write = { fg = "red" } perm_exec = { fg = "cyan" } +# Progress +progress_label = { bold = true } +progress_normal = { fg = "blue", bg = "black" } +progress_error = { fg = "red", bg = "black" } + # : }}} diff --git a/yazi-config/preset/theme-light.toml b/yazi-config/preset/theme-light.toml index 5178746f2..e0d1474b7 100644 --- a/yazi-config/preset/theme-light.toml +++ b/yazi-config/preset/theme-light.toml @@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" } # : Status bar {{{ [status] -overall = {} -separator_open = "" -separator_close = "" - -# Progress -progress_label = { bold = true } -progress_normal = { fg = "blue", bg = "black" } -progress_error = { fg = "red", bg = "black" } +overall = {} +sep_left = { open = "", close = "" } +sep_right = { open = "", close = "" } # Permissions perm_sep = { fg = "darkgray" } @@ -92,6 +87,11 @@ perm_read = { fg = "yellow" } perm_write = { fg = "red" } perm_exec = { fg = "cyan" } +# Progress +progress_label = { bold = true } +progress_normal = { fg = "blue", bg = "black" } +progress_error = { fg = "red", bg = "black" } + # : }}} diff --git a/yazi-config/src/theme/theme.rs b/yazi-config/src/theme/theme.rs index c2da14344..858d1f894 100644 --- a/yazi-config/src/theme/theme.rs +++ b/yazi-config/src/theme/theme.rs @@ -93,14 +93,9 @@ struct Mode { #[derive(Deserialize, Serialize)] struct Status { - pub overall: Style, - pub separator_open: String, - pub separator_close: String, - - // Progress - pub progress_label: Style, - pub progress_normal: Style, - pub progress_error: Style, + pub overall: Style, + pub sep_left: StatusSep, + pub sep_right: StatusSep, // Permissions pub perm_sep: Style, @@ -108,6 +103,17 @@ struct Status { pub perm_read: Style, pub perm_write: Style, pub perm_exec: Style, + + // Progress + pub progress_label: Style, + pub progress_normal: Style, + pub progress_error: Style, +} + +#[derive(Deserialize, Serialize)] +struct StatusSep { + pub open: String, + pub close: String, } #[derive(Deserialize, Serialize, Validate)] diff --git a/yazi-plugin/preset/components/status.lua b/yazi-plugin/preset/components/status.lua index 8eb289d88..65720b0a2 100644 --- a/yazi-plugin/preset/components/status.lua +++ b/yazi-plugin/preset/components/status.lua @@ -40,9 +40,9 @@ function Status:mode() local style = self:style() return ui.Line { - ui.Span(THEME.status.separator_open):fg(style.main.bg):bg("reset"), + ui.Span(THEME.status.sep_left.open):fg(style.main.bg):bg("reset"), ui.Span(" " .. mode .. " "):style(style.main), - ui.Span(THEME.status.separator_close):fg(style.main.bg):bg(style.alt.bg), + ui.Span(THEME.status.sep_left.close):fg(style.main.bg):bg(style.alt.bg), } end @@ -55,7 +55,7 @@ function Status:size() local style = self:style() return ui.Line { ui.Span(" " .. ya.readable_size(h:size() or h.cha.len) .. " "):style(style.alt), - ui.Span(THEME.status.separator_close):fg(style.alt.bg), + ui.Span(THEME.status.sep_left.close):fg(style.alt.bg), } end @@ -115,7 +115,7 @@ function Status:percent() local style = self:style() return ui.Line { - ui.Span(" " .. THEME.status.separator_open):fg(style.alt.bg), + ui.Span(" " .. THEME.status.sep_right.open):fg(style.alt.bg), ui.Span(percent):style(style.alt), } end @@ -126,9 +126,9 @@ function Status:position() local style = self:style() return ui.Line { - ui.Span(THEME.status.separator_open):fg(style.main.bg):bg(style.alt.bg), + ui.Span(THEME.status.sep_right.open):fg(style.main.bg):bg(style.alt.bg), ui.Span(string.format(" %2d/%-2d ", math.min(cursor + 1, length), length)):style(style.main), - ui.Span(THEME.status.separator_close):fg(style.main.bg):bg("reset"), + ui.Span(THEME.status.sep_right.close):fg(style.main.bg):bg("reset"), } end