{ 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='"; }; }; }; }; }