dotfiles/home/programs/starship.nix

126 lines
2.6 KiB
Nix

{ lib, config, ... }:
{
programs.starship = {
enable = true;
enableFishIntegration = true;
enableTransience = true;
settings = {
add_newline = true;
character = {
success_symbol = "[󰘧](bold green)";
error_symbol = "[󰘧](bold red)";
};
cmd_duration = {
style = "yellow";
format = "[ $duration]($style)";
};
docker_context = {
symbol = " ";
format = "\\[[$symbol$context]($style)\\]";
};
elixir = {
symbol = " ";
format = "\\[[$symbol($version \\(OTP $otp_version\\))]($style)\\]";
};
erlang = {
symbol = " ";
format = "\\[[$symbol($version)]($style)\\]";
};
git_branch = {
symbol = " ";
format = "\\[[$symbol$branch]($style)\\]";
};
hostname = {
ssh_only = true;
ssh_symbol = " ";
format = "\\[[$ssh_symbol$hostname]($style)\\]";
};
java = {
symbol = " ";
format = "\\[[$symbol($version)]($style)\\]";
};
nix_shell = {
symbol = " ";
format = "\\[[$symbol$state( \\($name\\))]($style)\\]";
};
nodejs = {
symbol = " ";
format = "\\[[$symbol($version)]($style)\\]";
};
os = {
disabled = true;
format = "$symbol";
symbols = {
Macos = " ";
NixOS = " ";
};
};
package = {
symbol = " ";
format = "\\[[$symbol$version]($style)\\]";
};
php = {
symbol = " ";
format = "\\[[$symbol($version)]($style)\\]";
};
python = {
symbol = " ";
format = "\\[[\${symbol}\${pyenv_prefix}(\${version})(\\($virtualenv\\))]($style)\\]";
};
ruby = {
symbol = " ";
format = "\\[[$symbol($version)]($style)\\]";
};
status = {
disabled = false;
symbol = " ";
success_symbol = "";
not_executable_symbol = " ";
not_found_symbol = " ";
sigint_symbol = " ";
signal_symbol = " ";
map_symbol = true;
};
time = {
format = "\\[[$time]($style)\\]";
};
username = {
format = "\\[[ $user]($style)\\]";
};
format = "$all";
right_format = "$cmd_duration";
};
};
programs.fish.interactiveShellInit = lib.mkIf config.programs.starship.enableTransience ''
function starship_transient_prompt_func
starship module character
end
function starship_transient_rprompt_func
starship module cmd_duration
end
'';
}