{ config, lib, ... }: let gitColor = "#${config.lib.stylix.colors.base08}"; hostnameColor = "#${config.lib.stylix.colors.base0A}"; dirColor = "#${config.lib.stylix.colors.base0C}"; timeColor = "#${config.lib.stylix.colors.base00}"; redColor = "#${config.lib.stylix.colors.base09}"; in { programs.starship = { enable = true; enableBashIntegration = true; settings = { format = lib.concatStrings [ "$os" "» " "$username" "$hostname" " »" "$directory" " »" "$git_branch" "$git_status" "$rust" "$docker_context" "$nix_shell" "$status" ]; username = { show_always = true; style_user = "fg:${hostnameColor}"; style_root = "fg:${hostnameColor}"; format = "[$user]($style)"; disabled = false; }; hostname = { ssh_only = true; style = "fg:${hostnameColor}"; format = "[@$hostname]($style)"; disabled = false; }; os = { style = "fg:${hostnameColor}"; disabled = false; }; nix_shell = { disabled = true; heuristic = true; symbol = " "; format = "[$symbol$state(\($name\))]($style)"; style = "fg:${gitColor}"; }; directory = { style = "fg:${dirColor}"; format = "[ $path ]($style)"; truncation_length = 3; truncation_symbol = "…/"; substitutions = { Documents = "󰈙 "; Downloads = " "; Music = " "; Pictures = " "; }; }; git_branch = { symbol = ""; style = "fg:${gitColor}"; format = "[ $symbol $branch ]($style)"; }; git_status = { style = "fg:${gitColor}"; format = "[$all_status$ahead_behind]($style)"; }; status = { style = "fg:${redColor}"; format = "[$status ]($style) » "; disabled = false; }; time = { disabled = false; time_format = "%R"; # Hour:Minute Format style = "fg:${timeColor}"; format = "[ $time]($style)"; }; }; }; }