diff --git a/modules/_neovim/default.nix b/modules/_neovim/default.nix index ae96e17..d7eaa18 100644 --- a/modules/_neovim/default.nix +++ b/modules/_neovim/default.nix @@ -25,10 +25,10 @@ enable = true; defaultEditor = true; luaLoader.enable = true; - colorschemes.catppuccin = { + colorschemes.rose-pine = { enable = true; settings = { - flavour = "latte"; + variant = "dawn"; }; }; extraConfigLua = '' diff --git a/modules/_neovim/plugins/opencode.nix b/modules/_neovim/plugins/opencode.nix index e9446d9..bc4124c 100644 --- a/modules/_neovim/plugins/opencode.nix +++ b/modules/_neovim/plugins/opencode.nix @@ -28,20 +28,20 @@ in { } local palette = { - base = '#eff1f5', - mantle = '#e6e9ef', - surface0 = '#ccd0da', - surface1 = '#bcc0cc', - text = '#4c4f69', - subtext0 = '#6c6f85', - overlay0 = '#9ca0b0', - blue = '#1e66f5', - lavender = '#7287fd', - sapphire = '#209fb5', - teal = '#179299', - green = '#40a02b', - mauve = '#8839ef', - peach = '#fe640b', + base = '#faf4ed', + surface = '#fffaf3', + overlay = '#f2e9e1', + highlight_med = '#dfdad9', + text = '#575279', + subtle = '#797593', + muted = '#9893a5', + pine = '#286983', + iris = '#907aa9', + foam = '#56949f', + leaf = '#6d8f89', + gold = '#ea9d34', + rose = '#d7827e', + love = '#b4637a', } local function set_highlights(highlights) @@ -145,15 +145,15 @@ in { }) set_highlights({ - RenderMarkdownCode = { bg = palette.mantle }, - RenderMarkdownCodeBorder = { fg = palette.surface0, bg = palette.mantle }, - RenderMarkdownCodeInline = { bg = palette.mantle }, - RenderMarkdownH1 = { fg = palette.blue, bold = true }, - RenderMarkdownH2 = { fg = palette.mauve, bold = true }, - RenderMarkdownH3 = { fg = palette.teal, bold = true }, - RenderMarkdownH4 = { fg = palette.peach, bold = true }, - OpencodeInputLegend = { fg = palette.subtext0, bold = true }, - OpencodeAgentBuild = { bg = palette.overlay0, fg = palette.base, bold = true }, + RenderMarkdownCode = { bg = palette.surface }, + RenderMarkdownCodeBorder = { fg = palette.highlight_med, bg = palette.surface }, + RenderMarkdownCodeInline = { bg = palette.surface }, + RenderMarkdownH1 = { fg = palette.pine, bold = true }, + RenderMarkdownH2 = { fg = palette.iris, bold = true }, + RenderMarkdownH3 = { fg = palette.foam, bold = true }, + RenderMarkdownH4 = { fg = palette.gold, bold = true }, + OpencodeInputLegend = { fg = palette.subtle, bold = true }, + OpencodeAgentBuild = { bg = palette.muted, fg = palette.base, bold = true }, }) local render_markdown_config = { diff --git a/modules/ai-tools.nix b/modules/ai-tools.nix index 45823b2..3c3a9c5 100644 --- a/modules/ai-tools.nix +++ b/modules/ai-tools.nix @@ -11,7 +11,7 @@ settings = { model = "anthropic/claude-opus-4-6"; small_model = "anthropic/claude-haiku-4-5"; - theme = "catppuccin"; + theme = "rosepine"; plugin = ["opencode-anthropic-auth@latest"]; permission = { read = { diff --git a/modules/dev-tools.nix b/modules/dev-tools.nix index 083f4e3..3612b87 100644 --- a/modules/dev-tools.nix +++ b/modules/dev-tools.nix @@ -316,36 +316,36 @@ gui = { authorColors = { - "*" = "#7287fd"; + "*" = "#907aa9"; }; theme = { activeBorderColor = [ - "#8839ef" + "#907aa9" "bold" ]; inactiveBorderColor = [ - "#6c6f85" + "#9893a5" ]; optionsTextColor = [ - "#1e66f5" + "#286983" ]; selectedLineBgColor = [ - "#ccd0da" + "#f2e9e1" ]; cherryPickedCommitBgColor = [ - "#bcc0cc" + "#dfdad9" ]; cherryPickedCommitFgColor = [ - "#8839ef" + "#907aa9" ]; defaultFgColor = [ - "#4c4f69" + "#575279" ]; searchingActiveBorderColor = [ - "#df8e1d" + "#ea9d34" ]; unstagedChangesColor = [ - "#d20f39" + "#b4637a" ]; }; }; diff --git a/modules/shell.nix b/modules/shell.nix index ec21c31..17b474d 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -27,7 +27,7 @@ extraEnv = '' - $env.LS_COLORS = (${pkgs.vivid}/bin/vivid generate catppuccin-latte) + $env.LS_COLORS = (${pkgs.vivid}/bin/vivid generate rose-pine-dawn) '' + lib.optionalString pkgs.stdenv.isDarwin '' # Nushell on Darwin doesn't source /etc/zprofile or path_helper, @@ -36,65 +36,55 @@ ''; extraConfig = '' - # --- Catppuccin Latte Theme --- + # --- Rosé Pine Dawn Theme --- let theme = { - rosewater: "#dc8a78" - flamingo: "#dd7878" - pink: "#ea76cb" - mauve: "#8839ef" - red: "#d20f39" - maroon: "#e64553" - peach: "#fe640b" - yellow: "#df8e1d" - green: "#40a02b" - teal: "#179299" - sky: "#04a5e5" - sapphire: "#209fb5" - blue: "#1e66f5" - lavender: "#7287fd" - text: "#4c4f69" - subtext1: "#5c5f77" - subtext0: "#6c6f85" - overlay2: "#7c7f93" - overlay1: "#8c8fa1" - overlay0: "#9ca0b0" - surface2: "#acb0be" - surface1: "#bcc0cc" - surface0: "#ccd0da" - base: "#eff1f5" - mantle: "#e6e9ef" - crust: "#dce0e8" + love: "#b4637a" + gold: "#ea9d34" + rose: "#d7827e" + pine: "#286983" + foam: "#56949f" + iris: "#907aa9" + leaf: "#6d8f89" + text: "#575279" + subtle: "#797593" + muted: "#9893a5" + highlight_high: "#cecacd" + highlight_med: "#dfdad9" + highlight_low: "#f4ede8" + overlay: "#f2e9e1" + surface: "#fffaf3" + base: "#faf4ed" } let scheme = { - recognized_command: $theme.blue + recognized_command: $theme.pine unrecognized_command: $theme.text - constant: $theme.peach - punctuation: $theme.overlay2 - operator: $theme.sky - string: $theme.green - virtual_text: $theme.surface2 - variable: { fg: $theme.flamingo attr: i } - filepath: $theme.yellow + constant: $theme.gold + punctuation: $theme.muted + operator: $theme.subtle + string: $theme.gold + virtual_text: $theme.highlight_high + variable: { fg: $theme.rose attr: i } + filepath: $theme.iris } $env.config.color_config = { - separator: { fg: $theme.surface2 attr: b } - leading_trailing_space_bg: { fg: $theme.lavender attr: u } + separator: { fg: $theme.highlight_high attr: b } + leading_trailing_space_bg: { fg: $theme.iris attr: u } header: { fg: $theme.text attr: b } row_index: $scheme.virtual_text record: $theme.text list: $theme.text hints: $scheme.virtual_text - search_result: { fg: $theme.base bg: $theme.yellow } - shape_closure: $theme.teal - closure: $theme.teal - shape_flag: { fg: $theme.maroon attr: i } + search_result: { fg: $theme.base bg: $theme.gold } + shape_closure: $theme.foam + closure: $theme.foam + shape_flag: { fg: $theme.love attr: i } shape_matching_brackets: { attr: u } - shape_garbage: $theme.red - shape_keyword: $theme.mauve - shape_match_pattern: $theme.green - shape_signature: $theme.teal + shape_garbage: $theme.love + shape_keyword: $theme.iris + shape_match_pattern: $theme.leaf + shape_signature: $theme.foam shape_table: $scheme.punctuation cell-path: $scheme.punctuation shape_list: $scheme.punctuation @@ -104,53 +94,53 @@ empty: { attr: n } filesize: {|| if $in < 1kb { - $theme.teal + $theme.foam } else if $in < 10kb { - $theme.green + $theme.leaf } else if $in < 100kb { - $theme.yellow + $theme.gold } else if $in < 10mb { - $theme.peach + $theme.rose } else if $in < 100mb { - $theme.maroon + $theme.love } else if $in < 1gb { - $theme.red + $theme.love } else { - $theme.mauve + $theme.iris } } duration: {|| if $in < 1day { - $theme.teal + $theme.foam } else if $in < 1wk { - $theme.green + $theme.leaf } else if $in < 4wk { - $theme.yellow + $theme.gold } else if $in < 12wk { - $theme.peach + $theme.rose } else if $in < 24wk { - $theme.maroon + $theme.love } else if $in < 52wk { - $theme.red + $theme.love } else { - $theme.mauve + $theme.iris } } datetime: {|| (date now) - $in | if $in < 1day { - $theme.teal + $theme.foam } else if $in < 1wk { - $theme.green + $theme.leaf } else if $in < 4wk { - $theme.yellow + $theme.gold } else if $in < 12wk { - $theme.peach + $theme.rose } else if $in < 24wk { - $theme.maroon + $theme.love } else if $in < 52wk { - $theme.red + $theme.love } else { - $theme.mauve + $theme.iris } } shape_external: $scheme.unrecognized_command @@ -158,11 +148,11 @@ shape_external_resolved: $scheme.recognized_command shape_block: $scheme.recognized_command block: $scheme.recognized_command - shape_custom: $theme.pink - custom: $theme.pink + shape_custom: $theme.rose + custom: $theme.rose background: $theme.base foreground: $theme.text - cursor: { bg: $theme.rosewater fg: $theme.base } + cursor: { bg: $theme.text fg: $theme.base } shape_range: $scheme.operator range: $scheme.operator shape_pipe: $scheme.operator @@ -187,51 +177,51 @@ shape_literal: $scheme.constant string: $scheme.string shape_string: $scheme.string - shape_string_interpolation: $theme.flamingo + shape_string_interpolation: $theme.rose shape_raw_string: $scheme.string shape_externalarg: $scheme.string } $env.config.highlight_resolved_externals = true $env.config.explore = { - status_bar_background: { fg: $theme.text, bg: $theme.mantle }, + status_bar_background: { fg: $theme.text, bg: $theme.surface }, command_bar_text: { fg: $theme.text }, - highlight: { fg: $theme.base, bg: $theme.yellow }, + highlight: { fg: $theme.base, bg: $theme.gold }, status: { - error: $theme.red, - warn: $theme.yellow, - info: $theme.blue, + error: $theme.love, + warn: $theme.gold, + info: $theme.pine, }, - selected_cell: { bg: $theme.blue fg: $theme.base }, + selected_cell: { bg: $theme.pine fg: $theme.base }, } - # --- Custom Commands --- - def --env open_project [] { - let base = ($env.HOME | path join "Projects") - let choice = ( - ${pkgs.fd}/bin/fd -t d -d 1 -a . ($base | path join "Personal") ($base | path join "Work") - | lines - | each {|p| $p | str replace $"($base)/" "" } - | str join "\n" - | ${pkgs.fzf}/bin/fzf --prompt "project > " - ) - if ($choice | str trim | is-not-empty) { - cd ($base | path join ($choice | str trim)) - } - } - - # --- Keybinding: Ctrl+O for open_project --- - $env.config.keybindings = ($env.config.keybindings | append [ - { - name: open_project - modifier: control - keycode: char_o - mode: [emacs vi_insert vi_normal] - event: { - send: executehostcommand - cmd: "open_project" + # --- Custom Commands --- + def --env open_project [] { + let base = ($env.HOME | path join "Projects") + let choice = ( + ${pkgs.fd}/bin/fd -t d -d 1 -a . ($base | path join "Personal") ($base | path join "Work") + | lines + | each {|p| $p | str replace $"($base)/" "" } + | str join "\n" + | ${pkgs.fzf}/bin/fzf --prompt "project > " + ) + if ($choice | str trim | is-not-empty) { + cd ($base | path join ($choice | str trim)) } } - ]) + + # --- Keybinding: Ctrl+O for open_project --- + $env.config.keybindings = ($env.config.keybindings | append [ + { + name: open_project + modifier: control + keycode: char_o + mode: [emacs vi_insert vi_normal] + event: { + send: executehostcommand + cmd: "open_project" + } + } + ]) ''; }; diff --git a/modules/terminal.nix b/modules/terminal.nix index 62ad570..b336ffb 100644 --- a/modules/terminal.nix +++ b/modules/terminal.nix @@ -6,7 +6,7 @@ }: { xdg.configFile."ghostty/config".text = '' command = ${pkgs.nushell}/bin/nu - theme = Catppuccin Latte + theme = Rose Pine Dawn window-padding-x = 12 window-padding-y = 3 window-padding-balance = true @@ -24,19 +24,19 @@ programs.bat = { enable = true; config = { - theme = "Catppuccin Latte"; + theme = "Rosé Pine Dawn"; pager = "ov"; }; themes = { - "Catppuccin Latte" = { + "Rosé Pine Dawn" = { src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "6810349b28055dce54076712fc05fc68da4b8ec0"; - sha256 = "lJapSgRVENTrbmpVyn+UQabC9fpV1G1e+CdlJ090uvg="; + owner = "rose-pine"; + repo = "tm-theme"; + rev = "23bb25b9c421cdc9ea89ff3ad3825840cd19d65d"; + hash = "sha256-GUFdv5V5OZ2PG+gfsbiohMT23LWsrZda34ReHBr2Xy0="; }; - file = "themes/Catppuccin Latte.tmTheme"; + file = "dist/rose-pine-dawn.tmTheme"; }; }; }; @@ -55,11 +55,11 @@ --preview-window='border-rounded' --prompt=' ' --marker=' ' --pointer=' ' --separator='─' --scrollbar='┃' --layout='reverse' - --color=bg+:#CCD0DA,bg:#EFF1F5,spinner:#DC8A78,hl:#D20F39 - --color=fg:#4C4F69,header:#D20F39,info:#8839EF,pointer:#DC8A78 - --color=marker:#7287FD,fg+:#4C4F69,prompt:#8839EF,hl+:#D20F39 - --color=selected-bg:#BCC0CC - --color=border:#9CA0B0,label:#4C4F69 + --color=bg+:#f2e9e1,bg:#faf4ed,spinner:#ea9d34,hl:#d7827e + --color=fg:#797593,header:#286983,info:#56949f,pointer:#907aa9 + --color=marker:#b4637a,fg+:#575279,prompt:#797593,hl+:#d7827e + --color=selected-bg:#f2e9e1 + --color=border:#dfdad9,label:#575279 ''; }; diff --git a/modules/zellij.nix b/modules/zellij.nix index ee69fe1..a646c44 100644 --- a/modules/zellij.nix +++ b/modules/zellij.nix @@ -3,7 +3,7 @@ programs.zellij = { enable = true; settings = { - theme = "catppuccin-latte"; + theme = "rose-pine-dawn"; default_layout = "default"; default_shell = "${pkgs.nushell}/bin/nu"; pane_frames = false; @@ -12,6 +12,24 @@ }; }; + xdg.configFile."zellij/themes/rose-pine-dawn.kdl".text = '' + themes { + rose-pine-dawn { + fg "#575279" + bg "#f2e9e1" + black "#faf4ed" + red "#b4637a" + green "#6d8f89" + yellow "#ea9d34" + blue "#286983" + magenta "#907aa9" + cyan "#56949f" + white "#575279" + orange "#d7827e" + } + } + ''; + xdg.configFile."zellij/layouts/default.kdl".text = '' layout { default_tab_template { @@ -23,26 +41,26 @@ plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { hide_frame_for_single_pane "true" - format_left "{mode}#[fg=#1e66f5,bg=#eff1f5,bold] {session}#[bg=#eff1f5] {tabs}" + format_left "{mode}#[fg=#286983,bg=#faf4ed,bold] {session}#[bg=#faf4ed] {tabs}" format_right "{datetime}" - format_space "#[bg=#eff1f5]" + format_space "#[bg=#faf4ed]" - mode_normal "#[fg=#eff1f5,bg=#1e66f5] " - mode_locked "#[fg=#eff1f5,bg=#fe640b] L " - mode_tab "#[fg=#eff1f5,bg=#40a02b] T " - mode_pane "#[fg=#eff1f5,bg=#8839ef] P " - mode_session "#[fg=#eff1f5,bg=#04a5e5] S " - mode_resize "#[fg=#eff1f5,bg=#df8e1d] R " - mode_move "#[fg=#eff1f5,bg=#ea76cb] M " - mode_search "#[fg=#eff1f5,bg=#d20f39] S " + mode_normal "#[fg=#faf4ed,bg=#286983] " + mode_locked "#[fg=#faf4ed,bg=#ea9d34] L " + mode_tab "#[fg=#faf4ed,bg=#6d8f89] T " + mode_pane "#[fg=#faf4ed,bg=#907aa9] P " + mode_session "#[fg=#faf4ed,bg=#56949f] S " + mode_resize "#[fg=#faf4ed,bg=#ea9d34] R " + mode_move "#[fg=#faf4ed,bg=#d7827e] M " + mode_search "#[fg=#faf4ed,bg=#b4637a] S " - tab_normal "#[fg=#acb0be,bg=#eff1f5] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}" - tab_active "#[fg=#eff1f5,bg=#1e66f5,bold,underline] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}" + tab_normal "#[fg=#9893a5,bg=#faf4ed] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}" + tab_active "#[fg=#faf4ed,bg=#286983,bold,underline] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}" tab_fullscreen_indicator "󰊓 " tab_sync_indicator "󰓦 " tab_floating_indicator "󰉈 " - datetime "#[fg=#4c4f69,bg=#eff1f5] {format} " + datetime "#[fg=#575279,bg=#faf4ed] {format} " datetime_format "%A, %d %b %Y %H:%M" datetime_timezone "Europe/Berlin" }