From 59c9ec8ed837b37529aad030c25ae36b994d8d8b Mon Sep 17 00:00:00 2001 From: vasilito Date: Tue, 7 Jul 2026 01:44:06 +0300 Subject: [PATCH] redbear-power: add nord, gruvbox, solarized-dark themes (6 total) New theme presets selectable via --theme: nord cyan borders, light-blue governor gruvbox green borders, yellow governor solarized-dark blue borders, magenta governor Help text updated with all 6 theme names. --- .../system/redbear-power/source/src/render.rs | 3 +- .../system/redbear-power/source/src/theme.rs | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/local/recipes/system/redbear-power/source/src/render.rs b/local/recipes/system/redbear-power/source/src/render.rs index fa247332bd..ec7b043b2f 100644 --- a/local/recipes/system/redbear-power/source/src/render.rs +++ b/local/recipes/system/redbear-power/source/src/render.rs @@ -2044,7 +2044,8 @@ OPTIONS: Requires redbear-sessiond to be running. If the session bus is not reachable, the TUI continues without D-Bus (a warning is printed to stderr). - --theme MODE Color theme: dark (default), light, high-contrast. + --theme MODE Color theme: dark (default), light, high-contrast, + nord, gruvbox, solarized-dark. Overrides [theme].mode in the config file. --config PATH Load configuration from PATH instead of the standard locations. The file must be valid TOML. diff --git a/local/recipes/system/redbear-power/source/src/theme.rs b/local/recipes/system/redbear-power/source/src/theme.rs index 7b15caeb5f..56148a19ac 100644 --- a/local/recipes/system/redbear-power/source/src/theme.rs +++ b/local/recipes/system/redbear-power/source/src/theme.rs @@ -58,6 +58,9 @@ impl Theme { match mode { "light" => Self::light(), "high-contrast" => Self::high_contrast(), + "nord" => Self::nord(), + "gruvbox" => Self::gruvbox(), + "solarized-dark" => Self::solarized_dark(), _ => Self::dark(), } } @@ -88,6 +91,33 @@ impl Theme { cursor_highlight: Style::new().white().on_black().bold(), } } + + pub fn nord() -> Self { + Self { + border_focused: Style::new().cyan().bold(), + border_dim: Style::new().dark_gray(), + header_governor: Style::new().light_blue().bold(), + cursor_highlight: Style::new().bold(), + } + } + + pub fn gruvbox() -> Self { + Self { + border_focused: Style::new().green().bold(), + border_dim: Style::new().dark_gray(), + header_governor: Style::new().yellow().bold(), + cursor_highlight: Style::new().bold(), + } + } + + pub fn solarized_dark() -> Self { + Self { + border_focused: Style::new().blue().bold(), + border_dim: Style::new().dark_gray(), + header_governor: Style::new().magenta().bold(), + cursor_highlight: Style::new().bold(), + } + } } impl Default for Theme {