NixOS module: my starship shell prompt config
Interesting part is that the time displayed in the prompt is always refreshed to when the command is issued, so I know at what time I issued the command, and not at what time the previous command finished.
{ config, pkgs, lib, ... }: {
programs.starship = {
enable = true;
settings = {
format = "$time$username$hostname$localip$shlvl$singularity$kubernetes$directory$vcsh$fossil_branch$git_branch$git_commit$git_state$git_metrics$git_status$hg_branch$pijul_channel$docker_context$package$bun$c$cmake$cobol$daml$dart$deno$dotnet$elixir$elm$erlang$fennel$golang$gradle$haskell$haxe$helm$java$julia$kotlin$lua$nim$nodejs$ocaml$opa$perl$php$pulumi$purescript$python$raku$rlang$red$ruby$rust$scala$swift$terraform$vlang$vagrant$zig$buf$guix_shell$nix_shell$conda$meson$spack$memory_usage$aws$gcloud$openstack$azure$env_var$crystal$custom$sudo$cmd_duration$line_break$jobs$battery$status$container$os$shell$character";
add_newline = false;
character.success_symbol = "[>](bold green)";
character.error_symbol = "[>](bold red)";
directory.truncate_to_repo = false;
directory.truncation_symbol = "…";
git_branch.always_show_remote = true;
git_branch.format = "[$symbol$branch(:$remote_name/$remote_branch)]($style) ";
time.format = "[$time]($style) ";
time.disabled = false;
rust.disabled = true;
nix_shell.format = "[$symbol]($style) ";
nix_shell.symbol = " ";
};
};
programs.fish.interactiveShellInit = ''
# function starship_transient_rprompt_func
# end
function starship_transient_prompt_func
# redraw, just to refresh the time
${pkgs.starship}/bin/starship prompt
end
enable_transience
'';
environment.systemPackages = [
pkgs.starship
];
fonts.fonts = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
}