{ config, pkgs, ... }: { # Starship prompt configuration (equivalent to your starship-prompt.sh) programs.starship = { enable = true; enableBashIntegration = true; # settings = { # # Main prompt format # format = '' # $username$hostname$directory$git_branch$git_status$nodejs$php$go$python$docker_context$nix_shell # $character # ''; # # # Right side format # right_format = "$cmd_duration$time"; # # # Character (prompt indicator) # character = { # success_symbol = "[❯](bold green)"; # error_symbol = "[❯](bold red)"; # vicmd_symbol = "[❮](bold yellow)"; # }; # # # Directory # directory = { # style = "bold cyan"; # truncation_length = 3; # truncate_to_repo = false; # format = "[$path]($style)[$lock_symbol]($lock_style) "; # }; # # # Git branch # git_branch = { # style = "bold purple"; # format = "on [$symbol$branch]($style) "; # symbol = " "; # }; # # # Git status # git_status = { # style = "red"; # ahead = "⇡\${count}"; # diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; # behind = "⇣\${count}"; # conflicted = "="; # deleted = "✘"; # modified = "!"; # renamed = "»"; # staged = "+"; # stashed = "$"; # untracked = "?"; # format = "([$all_status$ahead_behind]($style))"; # }; # # # Username # username = { # style_user = "bold yellow"; # style_root = "bold red"; # format = "[$user]($style) "; # disabled = false; # show_always = false; # }; # # # Hostname # hostname = { # ssh_only = false; # format = "[@$hostname]($style) "; # style = "bold green"; # disabled = true; # }; # # # Language versions # nodejs = { # style = "bold green"; # format = "via [$symbol($version)]($style) "; # symbol = " "; # detect_extensions = ["js" "mjs" "cjs" "ts" "tsx" "vue"]; # detect_files = ["package.json" "package-lock.json" "yarn.lock"]; # }; # # php = { # style = "bold blue"; # format = "via [$symbol($version)]($style) "; # symbol = " "; # detect_extensions = ["php"]; # detect_files = ["composer.json" "composer.lock"]; # }; # # go = { # style = "bold cyan"; # format = "via [$symbol($version)]($style) "; # symbol = " "; # detect_extensions = ["go"]; # detect_files = ["go.mod" "go.sum"]; # }; # # python = { # style = "bold yellow"; # format = "via [$symbol$pyenv_prefix($version)]($style) "; # symbol = " "; # detect_extensions = ["py"]; # detect_files = ["requirements.txt" "pyproject.toml" "Pipfile"]; # }; # # # Docker # docker_context = { # style = "blue bold"; # format = "via [$symbol$context]($style) "; # symbol = " "; # only_with_files = true; # detect_files = ["docker-compose.yml" "docker-compose.yaml" "Dockerfile"]; # }; # # # Nix shell # nix_shell = { # style = "bold blue"; # format = "via [$symbol$state( \\($name\\))]($style) "; # symbol = "❄️ "; # impure_msg = "[impure shell](bold red)"; # pure_msg = "[pure shell](bold green)"; # unknown_msg = "[unknown shell](bold yellow)"; # }; # # # Command duration # cmd_duration = { # min_time = 2000; # style = "bold yellow"; # format = "took [$duration]($style) "; # }; # # # Time # time = { # disabled = false; # style = "bold white"; # format = "[$time]($style)"; # time_format = "%T"; # utc_time_offset = "local"; # }; # # # Status # status = { # style = "bg:blue"; # symbol = "🔴"; # format = "[\\[$symbol $common_meaning$signal_name$maybe_int\\]]($style) "; # map_symbol = true; # disabled = false; # }; # # # Memory usage # memory_usage = { # disabled = false; # threshold = 70; # style = "bold dimmed white"; # format = "via $symbol[${ram}( | ${swap})]($style) "; # symbol = " "; # }; # # # Package version # package = { # disabled = false; # style = "208 bold"; # format = "is [$symbol$version]($style) "; # symbol = "📦 "; # }; # # # AWS # aws = { # style = "bold orange"; # format = "on [$symbol($profile)(\\($region\\))(\\[$duration\\])]($style) "; # symbol = "☁️ "; # }; # }; }; }