From 107061ad599d85783490885e912ee9cf01633be1 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Mon, 22 Dec 2025 13:33:19 -0500 Subject: Apply ef-dream theme across all config - theme.nix: Replace base16/spacemacs with ef-dream/ef-reverie palettes - xmonad.hs: Update border colors to ef-dream - common.nix: Update fzf, starship, tmux, bat colors to ef-dream - Xresources generated from ef-dream palette --- lib/common.nix | 80 +++++++++++++++++--------------------------- lib/theme.nix | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++------ lib/xmonad.hs | 14 ++++---- 3 files changed, 131 insertions(+), 67 deletions(-) diff --git a/lib/common.nix b/lib/common.nix index d1efeb9..d0d51fc 100644 --- a/lib/common.nix +++ b/lib/common.nix @@ -67,14 +67,14 @@ in { programs.bat = { enable = true; - config = { theme = "catppuccin"; }; + config = { theme = "catppuccin-mocha"; }; themes = { - catppuccin = builtins.readFile (pkgs.fetchFromGitHub { + catppuccin-mocha = builtins.readFile (pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "bat"; rev = "d714cc1d358ea51bfc02550dabab693f70cccea0"; hash = "sha256-Q5B4NDrfCIK3UAMs94vdXnR42k4AXCqZz6sRn8bzmf4="; - } + "/themes/Catppuccin Latte.tmTheme"); + } + "/themes/Catppuccin Mocha.tmTheme"); }; }; @@ -93,19 +93,20 @@ in { "$line_break" "$character" ]; - directory.style = "blue"; + # ef-dream inspired colors + directory.style = "#57b0ff"; character = { - success_symbol = "[ϟ](white)"; - error_symbol = "[ϟ](red)"; + success_symbol = "[ϟ](#f3c09a)"; + error_symbol = "[ϟ](#ff6f6f)"; }; git_branch = { format = "[$branch]($style)"; - style = "bright-black"; + style = "#8f8886"; }; git_status = { format = - ''[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)''; - style = "cyan"; + ''[[(*$conflicted$untracked$modified$staged$renamed$deleted)](#ffaacf) ($ahead_behind$stashed)]($style)''; + style = "#6fb3c0"; conflicted = "​"; untracked = "​"; modified = "​"; @@ -116,12 +117,12 @@ in { }; git_state = { format = "\([$state( $progress_current/$progress_total)]($style)\) "; - style = "bright-black"; + style = "#8f8886"; }; cmd_duration = { format = "[$duration]($style) "; - style = "yellow"; + style = "#c0b24f"; }; }; }; @@ -156,41 +157,17 @@ in { enable = true; enableBashIntegration = true; colors = { - # https://github.com/catppuccin/fzf - # TODO: use catppuccin/nix, and switch based on xtheme - # catppuccin-mocha - "bg+" = "#313244"; - "bg" = "#1e1e2e"; - "hl" = "#f38ba8"; - "fg" = "#cdd6f4"; - "header" = "#f38ba8"; - "info" = "#cba6f7"; - "pointer" = "#f5e0dc"; - "marker" = "#b4befe"; - "fg+" = "#cdd6f4"; - "hl+" = "#f38ba8"; - # these are no longer supported - # "prompt" = "#cba6f7"; - # "spinner" = "#f5e0dc"; - # these are new colors, but doesn't work for me - # https://github.com/catppuccin/fzf/issues/10 - # "selected-bg" = "#45475a"; - - # catppucin-latte: - # "bg+" = "#ccd0da"; - # "bg" = "#eff1f5"; - # "hl" = "#d20f39"; - # "fg" = "#4c4f69"; - # "header" = "#d20f39"; - # "info" = "#8839ef"; - # "pointer" = "#dc8a78 "; - # "marker" = "#dc8a78"; - # "fg+" = "#4c4f69"; - # "hl+" = "#d20f39"; - # "selected-bg" = "#51576d"; - # "selected-hl" = "#e78284"; - # "prompt" = "#8839ef"; - # "spinner" = "#dc8a78"; + # ef-dream inspired + "bg+" = "#3b393e"; + "bg" = "#232025"; + "hl" = "#ffaacf"; + "fg" = "#efd5c5"; + "header" = "#d0b0ff"; + "info" = "#d0b0ff"; + "pointer" = "#f3c09a"; + "marker" = "#57b0ff"; + "fg+" = "#efd5c5"; + "hl+" = "#ffaacf"; }; defaultCommand = "rg --files"; changeDirWidgetCommand = "fd --type d"; # M-c @@ -339,12 +316,15 @@ in { set -g status-left '#S | #(whoami)@#(hostname) | ' set -g status-right '~%Y.%m.%d..%H.%M' set -g renumber-windows on - # white-ish background with dark-grey text - set -g status-style bg=colour0,fg=colour13 - # highlight current window - set -g window-status-current-style fg=colour0,bg=colour13 + # ef-dream colors + set -g status-style bg='#232025',fg='#efd5c5' + # highlight current window with magenta-cooler + set -g window-status-current-style fg='#232025',bg='#d0b0ff' set -g window-status-format '#I) #W ' set -g window-status-current-format '#I) #W ' + # pane borders + set -g pane-border-style fg='#3b393e' + set -g pane-active-border-style fg='#d0b0ff' # set-option -g allow-passthrough on ''; diff --git a/lib/theme.nix b/lib/theme.nix index 1020514..71b6944 100644 --- a/lib/theme.nix +++ b/lib/theme.nix @@ -1,24 +1,106 @@ { pkgs, lib }: let inherit (import ./const.nix) homedir; + + # ef-dream palette from protesilaos/ef-themes + efDream = { + bg-main = "#232025"; + bg-dim = "#322f34"; + bg-alt = "#3b393e"; + fg-main = "#efd5c5"; + fg-dim = "#8f8886"; + fg-alt = "#b0a0cf"; + cursor = "#f3c09a"; + red = "#ff6f6f"; + green = "#51b04f"; + yellow = "#c0b24f"; + blue = "#57b0ff"; + magenta = "#ffaacf"; + magenta-cooler = "#d0b0ff"; + cyan = "#6fb3c0"; + }; + + # ef-reverie (light companion to ef-dream) + efReverie = { + bg-main = "#f3eddf"; + bg-dim = "#e6e0d4"; + bg-alt = "#d9d3ca"; + fg-main = "#4f204f"; + fg-dim = "#6a5a6a"; + fg-alt = "#704f4f"; + cursor = "#7f007f"; + red = "#ba2d2f"; + green = "#007a0a"; + yellow = "#a45a22"; + blue = "#375cc6"; + magenta = "#b044aa"; + magenta-cooler = "#7f5ae0"; + cyan = "#3f60af"; + }; + + xresourcesContent = theme: let + p = if theme == "dark" then efDream else efReverie; + in '' + ! ef-dream/ef-reverie inspired Xresources + *background: ${p.bg-main} + *foreground: ${p.fg-main} + *cursorColor: ${p.cursor} + + ! black + *color0: ${p.bg-main} + *color8: ${p.bg-alt} + ! red + *color1: ${p.red} + *color9: ${p.red} + ! green + *color2: ${p.green} + *color10: ${p.green} + ! yellow + *color3: ${p.yellow} + *color11: ${p.yellow} + ! blue + *color4: ${p.blue} + *color12: ${p.blue} + ! magenta + *color5: ${p.magenta} + *color13: ${p.magenta-cooler} + ! cyan + *color6: ${p.cyan} + *color14: ${p.cyan} + ! white + *color7: ${p.fg-main} + *color15: ${p.cursor} + ''; in rec { theme = lib.removeSuffix "\n" (builtins.readFile "${homedir}/.local/share/xtheme"); - base16-scheme = "atelier-sulphurpool"; - base16-scheme-filename = lib.strings.concatStrings (lib.strings.splitString "-" base16-scheme); - xresourcesFile = "${pkgs.base16}/xresources/base16-${base16-scheme-filename}.${theme}.256.xresources"; - + xresourcesFile = pkgs.writeText "ef-xresources" (xresourcesContent theme); - colors = { # derived from spacemacs + # ef-dream/ef-reverie colors for use by dunst, polybar, xmonad, etc. + colors = { "dark" = { - highlight = "#5d4d7a"; - background = "#292b2e"; - foreground = "#b2b2b2"; + highlight = efDream.magenta-cooler; + background = efDream.bg-main; + foreground = efDream.fg-main; + cursor = efDream.cursor; + red = efDream.red; + green = efDream.green; + yellow = efDream.yellow; + blue = efDream.blue; + magenta = efDream.magenta; + cyan = efDream.cyan; }; "light" = { - highlight = "#67b11d"; - background = "#f6f1e1"; - foreground = "#655370"; + highlight = efReverie.magenta-cooler; + background = efReverie.bg-main; + foreground = efReverie.fg-main; + cursor = efReverie.cursor; + red = efReverie.red; + green = efReverie.green; + yellow = efReverie.yellow; + blue = efReverie.blue; + magenta = efReverie.magenta; + cyan = efReverie.cyan; }; }; } diff --git a/lib/xmonad.hs b/lib/xmonad.hs index b008119..3903671 100644 --- a/lib/xmonad.hs +++ b/lib/xmonad.hs @@ -55,18 +55,20 @@ data Colors = Colors highlight :: String } +-- ef-reverie (light companion to ef-dream) lightTheme = Colors - { highlight = "#67b11d", - background = "#f6f1e1", - foreground = "#655370" + { highlight = "#7f5ae0", + background = "#f3eddf", + foreground = "#4f204f" } +-- ef-dream colors darkTheme = Colors - { highlight = "#5d4d7a", - background = "#292b2e", - foreground = "#b2b2b2" + { highlight = "#d0b0ff", + background = "#232025", + foreground = "#efd5c5" } getColorsFromXtheme :: IO Colors -- cgit v1.2.3