轻量、迅速、客制化的高颜值终端!

快: 很快 —— 真的真的非常快!
客制化: 可定制各种各样的提示符。
通用: 适用于任何 Shell、任何操作系统。
智能: 一目了然地显示相关信息。
功能丰富: 支持所有你喜欢的工具。
易用: 安装快速 —— 几分钟就可上手。

官方安装脚本

curl -sS https://starship.rs/install.sh | sh

添加系统环境变量

#编辑环境变量
nano ~/.bashrc
#在最后添加这一句
#starship 
eval "$(starship init bash)"

创建配置文件

mkdir -p ~/.config && touch ~/.config/starship.toml

添加以下内容

# 根据 schema 提供自动补全
"$schema" = 'https://starship.rs/config-schema.json'

# 在提示符之间插入空行
add_newline = true

# 将提示符中的 '❯' 替换为 '➜'
[character] # 此组件名称为 'character'
success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜'

# 禁用 'package' 组件,将其隐藏
[package]
disabled = true

保存,然后重新开一个ssh窗口就生效了
更多配置可以参考:https://starship.rs/zh-CN/config/

安装FiraCode Nerd Font脚本

#!/bin/bash

declare target="linux"
declare repo="ryanoasis/nerd-fonts"
declare -a fonts=(
  BitstreamVeraSansMono
  CodeNewRoman
  DroidSansMono
  FiraCode
  FiraMono
  Go-Mono
  Hack
  Hermit
  JetBrainsMono
  Meslo
  Noto
  Overpass
  ProggyClean
  RobotoMono
  SourceCodePro
  SpaceMono
  Ubuntu
  UbuntuMono
)


ARGS=`getopt -o p --long windows -- "$@"`
if [ $? -ne 0 ]; then
  echo "getopt failed: " $ARGS
  exit 1
fi

eval set -- "${ARGS}"

while true
do
case "$1" in
  -p|--windows)
    target=windows
    shift
    ;;
  --)
    shift
    break
    ;;
esac
done


get_latest_release() {
  echo $(curl --silent "https://api.github.com/repos/$@/releases/latest" |
    grep '"tag_name":' |
    sed -E 's/.*"([^"]+)".*/\1/')
}

function install_linux_fonts() {
  local fonts_dir
  fonts_dir="${HOME}/.local/share/fonts"
  if [[ ! -d "$fonts_dir" ]]; then
    mkdir -p "$fonts_dir"
  fi
  mv $@/*.ttf $fonts_dir/

  # fc-cache -fv
}

# Install font for the current user. It'll appear in "Font settings".
function install_windows_fonts() {
  local dst_dir
  dst_dir=$(wslpath $(cmd.exe /c "echo %LOCALAPPDATA%\Microsoft\\Windows\\Fonts" 2>/dev/null | sed 's/\r$//'))
  mkdir -p "$dst_dir"
  local src
  for src in "$@"; do
    local file=$(basename "$src")
    test -f "$dst_dir/$file" || cp -f "$src" "$dst_dir/"
    local win_path
    win_path=$(wslpath -w "$dst_dir/$file")
    echo $win_path
    reg.exe add                                                      \
      "HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts" \
      /v "${file%.*} (TrueType)"  /t REG_SZ /d "$win_path" /f 2>/dev/null
  done
}

function main() {
  local version
  version=$( get_latest_release $repo )
  local tmp_dir
  tmp_dir="$(mktemp -d)"

  trap "rm -rf ${tmp_dir@Q}" INT TERM EXIT

  for font in "${fonts[@]}"; do
    zip_file="${font}.zip"
    download_url="https://github.com/$repo/releases/download/${version}/${zip_file}"
    echo "Downloading $download_url"
    wget -q --show-progress -P "$tmp_dir" "$download_url"
    # unzip -o means replace file without asking.
    unzip -o "$tmp_dir/$zip_file" -d "$tmp_dir"
    rm "$tmp_dir/$zip_file"
  done
  find "$tmp_dir" -name '*Windows Compatible*' -delete

  if [ "$target" = "linux" ]
  then
    install_linux_fonts $tmp_dir
  elif [ "$target" = "windows" ]
  then
    install_windows_fonts $tmp_dir/*.ttf
  fi
}

main

echo -e '\033[0;32m'
echo 'Fonts successfully installed.'
echo -e '\033[0m'

安装完之后刷新缓存

fc-cache -fv
Last modification:April 21st, 2024 at 03:54 pm
如果觉得我的文章对你有用,请随意赞赏