From d252f01f17d1adaae3d51ec8bf129d9c60a80b99 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sat, 13 Jun 2026 20:18:46 +0100 Subject: [PATCH] feat(shell): flat starship prompt, drop the powerline styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The powerline look (the `[]` separator glyph + bg-filled segments) didn't read well. Switch to a flat prompt: bold-accent directory, warn git branch, subtext git-status/duration, `❯` character — plain colored text, no background fills, each module carrying its own trailing space so there are no stray gaps. Also reference cmd_duration in `format` (it was configured but never shown). Generated starship.toml verified valid; nix flake check passes. Visual pass still wants a live terminal. Co-Authored-By: Claude Opus 4.8 --- README.md | 8 +++++--- modules/home/shell.nix | 30 ++++++++++++++++++------------ 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 0310fe8..6e9c7e5 100644 --- a/README.md +++ b/README.md @@ -364,9 +364,11 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot. and yazi fell back to presets. Fixed by adding `group = "git"` to both git fetcher entries in `modules/home/yazi.nix` (the git plugin's `setup()` only renders the linemode; the fetcher still needs registering). -- **Starship prompt styling:** drop the powerline look — the current prompt - doesn't read well. Rework the `format`/segment styling in - `modules/home/shell.nix:59` toward a flat, plain prompt. +- ✓ **Starship prompt styling:** dropped the powerline look (the `[]` + separator glyph + `bg:` fills) for a flat prompt — bold-accent directory, + warn git branch, subtext status/duration, `❯` character, all plain + colored text (`modules/home/shell.nix`). Also wired in `cmd_duration`, + which was configured but never referenced in `format`. - ✓ **xfce deprecation warnings:** moved `xfce.exo` → `pkgs.xfce4-exo` and the three Thunar plugins to their new top-level names in `modules/nixos/file-manager.nix`; the eval warnings are gone. diff --git a/modules/home/shell.nix b/modules/home/shell.nix index f0f7c66..654294b 100644 --- a/modules/home/shell.nix +++ b/modules/home/shell.nix @@ -56,35 +56,41 @@ in palettes.nomarchy = { inherit (c) base text accent good warn bad subtext; }; + # Flat prompt — colored text only, no powerline separators or + # background fills. Each module emits its own trailing space so + # there are no stray gaps when git/duration are absent. format = lib.concatStrings [ - "[](accent)" "$directory" - "$git_branch$git_status" + "$git_branch" + "$git_status" + "$cmd_duration" "$character" ]; directory = { - style = "fg:text bg:accent"; - format = "[ $path ]($style)"; + style = "bold accent"; + format = "[$path]($style) "; truncation_length = 3; truncate_to_repo = true; }; git_branch = { - style = "fg:base bg:warn"; - format = "[ $symbol$branch ]($style)"; + style = "warn"; + format = "[$symbol$branch]($style) "; symbol = " "; }; git_status = { - style = "fg:base bg:warn"; - format = "[$all_status$ahead_behind ]($style)"; + style = "subtext"; + # Parenthesised → the segment (and its trailing space) only + # render when there's actually a status to show. + format = "([$all_status$ahead_behind]($style) )"; }; character = { - success_symbol = "[ ❯](good)"; - error_symbol = "[ ❯](bad)"; + success_symbol = "[❯](good)"; + error_symbol = "[❯](bad)"; }; cmd_duration = { min_time = 2000; - style = "fg:subtext"; - format = "[ $duration ]($style)"; + style = "subtext"; + format = "[ $duration]($style) "; }; }; };