115 lines
2.7 KiB
Nix
115 lines
2.7 KiB
Nix
{ lib
|
|
, config
|
|
, ...
|
|
}:
|
|
with lib; let
|
|
cfg = config.myHome.shell.starship;
|
|
in
|
|
{
|
|
options.myHome.shell.starship = { enable = mkEnableOption "starship"; };
|
|
|
|
config = mkIf cfg.enable {
|
|
programs.starship = {
|
|
enable = true;
|
|
settings = {
|
|
add_newline = false;
|
|
command_timeout = 1000;
|
|
format = lib.concatStrings [
|
|
"$username"
|
|
"$hostname"
|
|
"$directory"
|
|
"$git_branch"
|
|
"$git_status"
|
|
"$\{custom.direnv\}"
|
|
"$fill"
|
|
"$python"
|
|
"$status"
|
|
"$cmd_duration"
|
|
"$line_break"
|
|
"$character"
|
|
];
|
|
|
|
username = {
|
|
style_user = "yellow";
|
|
style_root = "red";
|
|
format = "[$user]($style)";
|
|
show_always = false;
|
|
};
|
|
|
|
hostname = {
|
|
ssh_only = true;
|
|
format = "[@$hostname]($style) in ";
|
|
style = "green";
|
|
};
|
|
|
|
directory = {
|
|
truncation_length = 3;
|
|
format = "[$path]($style)[$read_only]($read_only_style) ";
|
|
style = "blue";
|
|
read_only = " ";
|
|
truncation_symbol = "../";
|
|
truncate_to_repo = true;
|
|
fish_style_pwd_dir_length = 1;
|
|
};
|
|
|
|
git_branch = {
|
|
format = "on [$symbol$branch]($style) ";
|
|
style = "purple";
|
|
symbol = " ";
|
|
};
|
|
|
|
git_status = {
|
|
format = "([$all_status$ahead_behind]($style) )";
|
|
style = "purple";
|
|
conflicted = " ";
|
|
ahead = " ";
|
|
behind = " ";
|
|
diverged = " ";
|
|
up_to_date = " ";
|
|
untracked = " ";
|
|
stashed = " ";
|
|
modified = " ";
|
|
staged = " ";
|
|
renamed = " ";
|
|
deleted = " ";
|
|
};
|
|
|
|
fill = {
|
|
symbol = " ";
|
|
};
|
|
|
|
python = {
|
|
format = "[\${symbol}\${pyenv_prefix}(\${version} )(\($virtualenv\) )]($style)";
|
|
symbol = "🐍 ";
|
|
};
|
|
|
|
status = {
|
|
disabled = false;
|
|
format = "[$symbol]($style) ";
|
|
symbol = " ";
|
|
success_symbol = " ";
|
|
style = "red";
|
|
};
|
|
|
|
cmd_duration = {
|
|
min_time = 2000;
|
|
format = "took [$duration]($style) ";
|
|
style = "yellow";
|
|
};
|
|
|
|
character = {
|
|
success_symbol = "[](green)";
|
|
error_symbol = "[](green)";
|
|
vicmd_symbol = "[](purple)";
|
|
};
|
|
|
|
custom.direnv = {
|
|
format = "[$symbol]($style)";
|
|
symbol = " ";
|
|
style = "blue";
|
|
when = "env | grep -E '^DIRENV_FILE='";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|