diff --git a/yazi-config/preset/theme.toml b/yazi-config/preset/theme.toml index c1965186..707d7876 100644 --- a/yazi-config/preset/theme.toml +++ b/yazi-config/preset/theme.toml @@ -149,6 +149,21 @@ footer = { fg = "black", bg = "white" } # : }}} +# : Notify {{{ + +[notify] +title_info = { fg = "green" } +title_warn = { bg = "yellow" } +title_error = { fg = "red" } + +# Icons +icon_info = "" +icon_warn = "" +icon_error = "" + +# : }}} + + # : File-specific styles {{{ [filetype] diff --git a/yazi-config/src/theme/theme.rs b/yazi-config/src/theme/theme.rs index 2bca9098..27387046 100644 --- a/yazi-config/src/theme/theme.rs +++ b/yazi-config/src/theme/theme.rs @@ -18,6 +18,7 @@ pub struct Theme { pub tasks: Tasks, pub which: Which, pub help: Help, + pub notify: Notify, // File-specific styles #[serde(rename = "filetype", deserialize_with = "Filetype::deserialize", skip_serializing)] @@ -160,3 +161,14 @@ pub struct Help { pub hovered: Style, pub footer: Style, } + +#[derive(Deserialize, Serialize)] +pub struct Notify { + pub title_info: Style, + pub title_warn: Style, + pub title_error: Style, + + pub icon_info: String, + pub icon_warn: String, + pub icon_error: String, +} diff --git a/yazi-fm/src/notify/layout.rs b/yazi-fm/src/notify/layout.rs index b2b8acd9..a0bae27b 100644 --- a/yazi-fm/src/notify/layout.rs +++ b/yazi-fm/src/notify/layout.rs @@ -1,6 +1,7 @@ use std::rc::Rc; -use ratatui::{buffer::Buffer, layout::{self, Constraint, Offset, Rect}, style::{Style, Stylize}, widgets::{Block, BorderType, Paragraph, Widget, Wrap}}; +use ratatui::{buffer::Buffer, layout::{self, Constraint, Offset, Rect}, widgets::{Block, BorderType, Paragraph, Widget, Wrap}}; +use yazi_config::THEME; use yazi_core::notify::{Level, Message}; use crate::{widgets::Clear, Ctx}; @@ -42,9 +43,9 @@ impl<'a> Widget for Layout<'a> { for (i, m) in notify.messages.iter().enumerate().take(limit) { let (icon, style) = match m.level { - Level::Info => ("", Style::default().green()), - Level::Warn => ("", Style::default().yellow()), - Level::Error => ("", Style::default().red()), + Level::Info => (&THEME.notify.icon_info, THEME.notify.title_info), + Level::Warn => (&THEME.notify.icon_warn, THEME.notify.title_warn), + Level::Error => (&THEME.notify.icon_error, THEME.notify.title_error), }; let mut rect =