automate/020_starship-prompt.sh

104 lines
2.8 KiB
Bash

#!/usr/bin/env bash
sudo apt-get update -qq
sudo apt-get install -y -qq starship
DEST=${1-/et/skel}
mkdir -p ${DEST}/.config/starship
conf_print_starship_toml() {
cat <<'EOF'
# Insert a blank line between shell prompts
add_newline = true
# Increase the default command timeout to 2 seconds
command_timeout = 2000
# Define the order and format of the information in our prompt
format = """\
[](fg:#3B76F0)\
$directory\
${custom.directory_separator_not_git}\
${custom.directory_separator_git}\
$symbol($git_branch[](fg:#FCF392))\
$symbol( $git_commit$git_status$git_metrics$git_state)$fill$cmd_duration$nodejs$all\
${custom.git_config_email}
$character"""
# Fill character (empty space) between the left and right prompt
[fill]
symbol = " "
# Disable the line break between the first and second prompt lines
[line_break]
disabled = true
# Customize the format of the working directory
[directory]
truncate_to_repo = true
format = "[ﱮ $path ]($style)"
style = "fg:text bg:#3B76F0"
[git_branch]
symbol = " "
format = "[ $symbol$branch(:$remote_branch) ]($style)"
style = "fg:#1C3A5E bg:#FCF392"
[git_metrics]
disabled = false
[nodejs]
format = "via [$symbol($version )]($style)"
style = "yellow"
[package]
disabled = true # Enable to output the current working directory's package version
format = "[$symbol$version]($style) "
display_private = true
# Output the command duration if over 2 seconds
[cmd_duration]
min_time = 2_000
format = "[  $duration ]($style)"
style = "white"
# Customize the battery indicator
[battery]
format = "[$symbol $percentage]($style) "
empty_symbol = "🪫"
charging_symbol = "🔋"
full_symbol = '🔋'
[[battery.display]]
threshold = 10
style = 'red'
# Output the current git config email address
[custom.git_config_email]
description = "Output the current git user's configured email address."
command = "git config user.email"
format = "\n[$symbol(  $output)]($style)"
# Only when inside git repository
when = "git rev-parse --is-inside-work-tree >/dev/null 2>&1"
style = "text"
# Output a styled separator right after the directory when inside a git repository.
[custom.directory_separator_git]
description = "Output a styled separator right after the directory when inside a git repository."
command = ""
format = "[](fg:#3B76F0 bg:#FCF392)"
# Only when inside git repository
when = "git rev-parse --is-inside-work-tree >/dev/null 2>&1"
# Output a styled separator right after the directory when NOT inside a git repository.
[custom.directory_separator_not_git]
description = "Output a styled separator right after the directory when NOT inside a git repository."
command = ""
format = "[](fg:#3B76F0)"
# Only when NOT inside a git repository
when = "! git rev-parse --is-inside-work-tree > /dev/null 2>&1"
EOF
}
conf_print_starship_toml | tee ${DEST}/.config/starship/starship.toml