From 77d8cf1b3686f30370c3f06a235bb01dc814249b Mon Sep 17 00:00:00 2001 From: Jet Date: Sun, 31 May 2026 14:42:16 -0700 Subject: [PATCH] feat: use jj-starship --- flake.nix | 2 ++ home-modules/packages.nix | 1 + home-modules/shell.nix | 11 ++++++++--- pkgs/jj-starship.nix | 40 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 pkgs/jj-starship.nix diff --git a/flake.nix b/flake.nix index a352386..33c4dbf 100644 --- a/flake.nix +++ b/flake.nix @@ -62,6 +62,8 @@ inputs.helix.overlays.default opencode.overlays.default (final: prev: { + jj-starship = prev.callPackage ./pkgs/jj-starship.nix { }; + # opencode's dev branch asks for Bun 1.3.14, but this revision builds and runs with nixpkgs' Bun 1.3.13. opencode = prev.opencode.overrideAttrs (old: { postPatch = (old.postPatch or "") + '' diff --git a/home-modules/packages.nix b/home-modules/packages.nix index b995a5a..01558d3 100644 --- a/home-modules/packages.nix +++ b/home-modules/packages.nix @@ -149,6 +149,7 @@ in mkp224o nixfmt difftastic + jj-starship ripgrep tea trash-cli diff --git a/home-modules/shell.nix b/home-modules/shell.nix index 758b666..875a387 100644 --- a/home-modules/shell.nix +++ b/home-modules/shell.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { programs.helix = { @@ -23,14 +23,19 @@ enable = true; enableBashIntegration = true; settings = { - format = "$directory$git_status$nix_shell$cmd_duration$line_break$character"; + format = "$directory\${custom.jj}$nix_shell$cmd_duration$line_break$character"; directory.truncation_length = 3; - git_status.style = "red"; git_branch.disabled = true; + git_status.disabled = true; nix_shell.format = "[$symbol]($style) "; cmd_duration.min_time = 500; character.success_symbol = "[❯](bold green)"; character.error_symbol = "[❯](bold red)"; + custom.jj = { + when = "jj-starship detect"; + shell = [ "${pkgs.jj-starship}/bin/jj-starship" ]; + format = "$output "; + }; }; }; diff --git a/pkgs/jj-starship.nix b/pkgs/jj-starship.nix new file mode 100644 index 0000000..721dc73 --- /dev/null +++ b/pkgs/jj-starship.nix @@ -0,0 +1,40 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + libgit2, + zlib, + versionCheckHook, + withGit ? true, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "jj-starship"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "dmmulroy"; + repo = "jj-starship"; + rev = "v${finalAttrs.version}"; + hash = "sha256-NLds7i1ZmscicaNLmkZCWmc7A+367BXxGioRd4yYof8="; + }; + + cargoHash = "sha256-i7x/y+BkKH+Xj1bU4RRe9fcteabB+4uAgJuW3x5/jv4="; + buildNoDefaultFeatures = !withGit; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ zlib ] ++ lib.optionals withGit [ libgit2 ]; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + meta = { + description = "Unified Starship prompt module for Git and Jujutsu repositories that is optimized for latency"; + homepage = "https://github.com/dmmulroy/jj-starship"; + changelog = "https://github.com/dmmulroy/jj-starship/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + mainProgram = "jj-starship"; + }; +})