mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
feat!: allow different separators to be applied individually to the left and right sides of the status bar (#2313)
This commit is contained in:
parent
ce9092e73e
commit
a4dde6a848
4 changed files with 36 additions and 30 deletions
|
|
@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" }
|
||||||
# : Status bar {{{
|
# : Status bar {{{
|
||||||
|
|
||||||
[status]
|
[status]
|
||||||
overall = {}
|
overall = {}
|
||||||
separator_open = ""
|
sep_left = { open = "", close = "" }
|
||||||
separator_close = ""
|
sep_right = { open = "", close = "" }
|
||||||
|
|
||||||
# Progress
|
|
||||||
progress_label = { bold = true }
|
|
||||||
progress_normal = { fg = "blue", bg = "black" }
|
|
||||||
progress_error = { fg = "red", bg = "black" }
|
|
||||||
|
|
||||||
# Permissions
|
# Permissions
|
||||||
perm_sep = { fg = "darkgray" }
|
perm_sep = { fg = "darkgray" }
|
||||||
|
|
@ -92,6 +87,11 @@ perm_read = { fg = "yellow" }
|
||||||
perm_write = { fg = "red" }
|
perm_write = { fg = "red" }
|
||||||
perm_exec = { fg = "cyan" }
|
perm_exec = { fg = "cyan" }
|
||||||
|
|
||||||
|
# Progress
|
||||||
|
progress_label = { bold = true }
|
||||||
|
progress_normal = { fg = "blue", bg = "black" }
|
||||||
|
progress_error = { fg = "red", bg = "black" }
|
||||||
|
|
||||||
# : }}}
|
# : }}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" }
|
||||||
# : Status bar {{{
|
# : Status bar {{{
|
||||||
|
|
||||||
[status]
|
[status]
|
||||||
overall = {}
|
overall = {}
|
||||||
separator_open = ""
|
sep_left = { open = "", close = "" }
|
||||||
separator_close = ""
|
sep_right = { open = "", close = "" }
|
||||||
|
|
||||||
# Progress
|
|
||||||
progress_label = { bold = true }
|
|
||||||
progress_normal = { fg = "blue", bg = "black" }
|
|
||||||
progress_error = { fg = "red", bg = "black" }
|
|
||||||
|
|
||||||
# Permissions
|
# Permissions
|
||||||
perm_sep = { fg = "darkgray" }
|
perm_sep = { fg = "darkgray" }
|
||||||
|
|
@ -92,6 +87,11 @@ perm_read = { fg = "yellow" }
|
||||||
perm_write = { fg = "red" }
|
perm_write = { fg = "red" }
|
||||||
perm_exec = { fg = "cyan" }
|
perm_exec = { fg = "cyan" }
|
||||||
|
|
||||||
|
# Progress
|
||||||
|
progress_label = { bold = true }
|
||||||
|
progress_normal = { fg = "blue", bg = "black" }
|
||||||
|
progress_error = { fg = "red", bg = "black" }
|
||||||
|
|
||||||
# : }}}
|
# : }}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,14 +93,9 @@ struct Mode {
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
struct Status {
|
struct Status {
|
||||||
pub overall: Style,
|
pub overall: Style,
|
||||||
pub separator_open: String,
|
pub sep_left: StatusSep,
|
||||||
pub separator_close: String,
|
pub sep_right: StatusSep,
|
||||||
|
|
||||||
// Progress
|
|
||||||
pub progress_label: Style,
|
|
||||||
pub progress_normal: Style,
|
|
||||||
pub progress_error: Style,
|
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
pub perm_sep: Style,
|
pub perm_sep: Style,
|
||||||
|
|
@ -108,6 +103,17 @@ struct Status {
|
||||||
pub perm_read: Style,
|
pub perm_read: Style,
|
||||||
pub perm_write: Style,
|
pub perm_write: Style,
|
||||||
pub perm_exec: 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)]
|
#[derive(Deserialize, Serialize, Validate)]
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,9 @@ function Status:mode()
|
||||||
|
|
||||||
local style = self:style()
|
local style = self:style()
|
||||||
return ui.Line {
|
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(" " .. 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
|
end
|
||||||
|
|
||||||
|
|
@ -55,7 +55,7 @@ function Status:size()
|
||||||
local style = self:style()
|
local style = self:style()
|
||||||
return ui.Line {
|
return ui.Line {
|
||||||
ui.Span(" " .. ya.readable_size(h:size() or h.cha.len) .. " "):style(style.alt),
|
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
|
end
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@ function Status:percent()
|
||||||
|
|
||||||
local style = self:style()
|
local style = self:style()
|
||||||
return ui.Line {
|
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),
|
ui.Span(percent):style(style.alt),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -126,9 +126,9 @@ function Status:position()
|
||||||
|
|
||||||
local style = self:style()
|
local style = self:style()
|
||||||
return ui.Line {
|
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(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
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue