Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6a0f4a31ff |
@@ -0,0 +1,11 @@
|
||||
[advisories]
|
||||
ignore = [
|
||||
# Potential segfault in the time crate
|
||||
# chrono dependency, but vulnerable function is never called
|
||||
# Tacked in #3163
|
||||
"RUSTSEC-2020-0071",
|
||||
# chrono: Potential segfault in localtime_r invocations
|
||||
# starship avoids setting any environment variables to avoid this issue
|
||||
# Tracked in #3166
|
||||
"RUSTSEC-2020-0159",
|
||||
]
|
||||
@@ -14,20 +14,34 @@
|
||||
],
|
||||
"excludes": [
|
||||
"CHANGELOG.md",
|
||||
"docs/.vitepress/dist/**",
|
||||
"docs/.vuepress/dist/**",
|
||||
"**/node_modules",
|
||||
"**/*-lock.json",
|
||||
".github/*",
|
||||
"docs/??-??/**",
|
||||
"docs/??-???/**",
|
||||
"docs/???-??/**",
|
||||
"docs/???-???/**",
|
||||
"docs/ar-SA/**",
|
||||
"docs/ckb-IR/**",
|
||||
"docs/de-DE/**",
|
||||
"docs/es-ES/**",
|
||||
"docs/fr-FR/**",
|
||||
"docs/id-ID/**",
|
||||
"docs/it-IT/**",
|
||||
"docs/ja-JP/**",
|
||||
"docs/ko-KR/**",
|
||||
"docs/nl-NL/**",
|
||||
"docs/pl-PL/**",
|
||||
"docs/pt-BR/**",
|
||||
"docs/pt-PT/**",
|
||||
"docs/ru-RU/**",
|
||||
"docs/tr-TR/**",
|
||||
"docs/vi-VN/**",
|
||||
"docs/zh-CN/**",
|
||||
"docs/zh-TW/**",
|
||||
"target/"
|
||||
],
|
||||
"plugins": [
|
||||
"https://github.com/dprint/dprint-plugin-typescript/releases/download/0.96.1/plugin.wasm",
|
||||
"https://github.com/dprint/dprint-plugin-json/releases/download/0.22.0/plugin.wasm",
|
||||
"https://github.com/dprint/dprint-plugin-markdown/releases/download/0.22.1/plugin.wasm",
|
||||
"https://github.com/dprint/dprint-plugin-toml/releases/download/0.7.0/plugin.wasm"
|
||||
"https://plugins.dprint.dev/typescript-0.68.2.wasm",
|
||||
"https://plugins.dprint.dev/json-0.15.2.wasm",
|
||||
"https://plugins.dprint.dev/markdown-0.13.2.wasm",
|
||||
"https://plugins.dprint.dev/toml-0.5.4.wasm"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,27 +16,12 @@ Closes #
|
||||
<!--- Please describe in detail how you tested your changes. -->
|
||||
<!--- Include details of your testing environment, tests ran to see how -->
|
||||
<!--- your change affects other areas of the code, etc. -->
|
||||
<!--- Most changes do not need to be tested on multiple operating systems. -->
|
||||
- [ ] I have tested using **MacOS**
|
||||
- [ ] I have tested using **Linux**
|
||||
- [ ] I have tested using **Windows**
|
||||
|
||||
#### AI-Assistance
|
||||
<!-- Per our AI Policy (AI_POLICY.md), all AI usage must be declared. -->
|
||||
Have you used AI-assistance to author this PR?
|
||||
|
||||
- [ ] Yes
|
||||
- [ ] No
|
||||
|
||||
If **yes**, describe the scope of assistance:
|
||||
<!--- Describe how you used AI-Assistance -->
|
||||
<!--- Disclosure is required if you have used AI-assistance -->
|
||||
<!--- For example: answering project questions, writing tests, implementation, or documentation -->
|
||||
N/A
|
||||
|
||||
#### Checklist:
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||
- [ ] I have updated the documentation accordingly.
|
||||
- [ ] I have updated the tests accordingly.
|
||||
- [ ] I understand and have read the code I contribute and can answer questions about it.
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: cargo
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
labels:
|
||||
- "\U0001F4E6 dependencies"
|
||||
- package-ecosystem: npm
|
||||
directory: "/docs"
|
||||
schedule:
|
||||
interval: weekly
|
||||
open-pull-requests-limit: 10
|
||||
labels:
|
||||
- "\U0001F4E6 dependencies"
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
labels:
|
||||
- "\U0001F4E6 dependencies"
|
||||
@@ -1,150 +0,0 @@
|
||||
{
|
||||
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
|
||||
extends: [
|
||||
'config:best-practices',
|
||||
'security:openssf-scorecard',
|
||||
// automerge minor updates
|
||||
':automergeMinor',
|
||||
':automergeBranch',
|
||||
],
|
||||
ignorePresets: [
|
||||
':dependencyDashboard',
|
||||
':semanticPrefixFixDepsChoreOthers',
|
||||
],
|
||||
labels: [
|
||||
'📦 dependencies',
|
||||
],
|
||||
minimumReleaseAge: '4 days',
|
||||
semanticCommits: 'enabled',
|
||||
semanticCommitType: 'build',
|
||||
rangeStrategy: 'bump',
|
||||
rebaseWhen: 'conflicted',
|
||||
lockFileMaintenance: {
|
||||
enabled: true,
|
||||
extends: [
|
||||
'schedule:weekly',
|
||||
],
|
||||
groupName: 'lockfile maintenance',
|
||||
automerge: true,
|
||||
},
|
||||
packageRules: [
|
||||
// group updates to related packages
|
||||
{
|
||||
groupName: 'clap crates',
|
||||
matchDatasources: [
|
||||
'crate',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'clap{/,}**',
|
||||
],
|
||||
},
|
||||
{
|
||||
groupName: 'gitoxide crates',
|
||||
matchDatasources: [
|
||||
'crate',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'gix{/,}**',
|
||||
],
|
||||
},
|
||||
{
|
||||
groupName: 'pest crates',
|
||||
matchDatasources: [
|
||||
'crate',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'pest{/,}**',
|
||||
],
|
||||
},
|
||||
{
|
||||
groupName: 'toml crates',
|
||||
matchDatasources: [
|
||||
'crate',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'toml{/,}**',
|
||||
],
|
||||
},
|
||||
{
|
||||
groupName: 'unicode crates',
|
||||
matchDatasources: [
|
||||
'crate',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'unicode{/,}**',
|
||||
],
|
||||
},
|
||||
// Prevent too many PRs by grouping certain updates together and only updating them weekly
|
||||
{
|
||||
groupName: 'dprint plugins',
|
||||
extends: [
|
||||
'schedule:weekly',
|
||||
],
|
||||
matchPackageNames: [
|
||||
'dprint{/,}**',
|
||||
],
|
||||
},
|
||||
{
|
||||
groupName: 'npm',
|
||||
matchDatasources: [
|
||||
'npm',
|
||||
],
|
||||
extends: [
|
||||
'schedule:weekly',
|
||||
],
|
||||
},
|
||||
// Avoid frequent updates due to pinned digest values in GitHub Actions
|
||||
{
|
||||
matchDepTypes: [
|
||||
'action',
|
||||
],
|
||||
extends: [
|
||||
'schedule:weekly',
|
||||
],
|
||||
},
|
||||
],
|
||||
// custom regex update managers
|
||||
customManagers: [
|
||||
{
|
||||
customType: 'regex',
|
||||
managerFilePatterns: [
|
||||
'/(^|\\/)\\.?dprint.json/',
|
||||
],
|
||||
matchStrings: [
|
||||
'"https://github.com/(?<depName>.+)/releases/download/(?<currentValue>.+)/plugin.wasm"',
|
||||
],
|
||||
datasourceTemplate: 'github-releases',
|
||||
},
|
||||
{
|
||||
customType: 'regex',
|
||||
managerFilePatterns: [
|
||||
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
|
||||
],
|
||||
matchStrings: [
|
||||
'cargo install.*--version (?<currentValue>\\S+).*\\s(?<depName>\\S+)',
|
||||
],
|
||||
datasourceTemplate: 'crate',
|
||||
},
|
||||
{
|
||||
customType: 'regex',
|
||||
managerFilePatterns: [
|
||||
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
|
||||
],
|
||||
matchStrings: [
|
||||
'^\\s+tool: (?<depName>[\\w-]+)@(?<currentValue>[^\\s]+)',
|
||||
],
|
||||
datasourceTemplate: 'crate',
|
||||
},
|
||||
{
|
||||
customType: 'regex',
|
||||
managerFilePatterns: [
|
||||
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
|
||||
],
|
||||
matchStrings: [
|
||||
'ziglang==(?<currentValue>\\S+)',
|
||||
],
|
||||
datasourceTemplate: 'pypi',
|
||||
depNameTemplate: 'ziglang',
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -8,10 +8,8 @@ jobs:
|
||||
trigger_crowdin_tm:
|
||||
name: Crowdin Translation Memory Trigger
|
||||
runs-on: ubuntu-latest
|
||||
# Prevent this workflow from running (and failing) on forks
|
||||
if: github.repository == 'starship/starship'
|
||||
steps:
|
||||
- uses: starship/crowdin-pretranslate-action@05f21625b1486f1b77d53002fed82c4609247712 # v0.1.1
|
||||
- uses: starship/crowdin-pretranslate-action@v0.1.1
|
||||
with:
|
||||
project_id: 372655
|
||||
api_key: ${{ secrets.CROWDIN_API_TOKEN }}
|
||||
|
||||
@@ -12,9 +12,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
- name: Docs | Format
|
||||
uses: dprint/check@9cb3a2b17a8e606d37aae341e49df3654933fc23 # v2.3
|
||||
uses: dprint/check@v2.0
|
||||
|
||||
# Validate preset files
|
||||
taplo:
|
||||
@@ -22,61 +22,21 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
- name: Install | Taplo
|
||||
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5 # v2.82.0
|
||||
with:
|
||||
tool: taplo-cli@0.10.0
|
||||
run: cargo install --debug --locked --version 0.6.3 taplo-cli
|
||||
- name: Presets | Validate with schema
|
||||
run: taplo lint --schema "file://${GITHUB_WORKSPACE}/.github/config-schema.json" docs/public/presets/toml/*.toml
|
||||
run: taplo lint --schema "file://${GITHUB_WORKSPACE}/.github/config-schema.json" docs/.vuepress/public/presets/toml/*.toml
|
||||
|
||||
# If this is not a Crowdin PR, block changes to translated documentation
|
||||
block-crowdin:
|
||||
name: Block Translated Changes
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref != 'i18n_master' }}
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Prevent File Change
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
uses: xalvarez/prevent-file-change-action@v1.2.0
|
||||
if: ${{ github.event.pull_request.head.ref != 'i18n_master' }}
|
||||
with:
|
||||
script: |
|
||||
const { execSync } = require('child_process');
|
||||
const pattern = /^docs\/[a-z][a-z][a-z]?-[A-Z][A-Z]?\/.*$/;
|
||||
const base = context.payload.pull_request.base.sha;
|
||||
const head = context.payload.pull_request.head.sha;
|
||||
|
||||
const result = execSync(`git diff --name-only ${base} ${head}`).toString().split('\n');
|
||||
|
||||
for (const file of result) {
|
||||
if (pattern.test(file)) {
|
||||
core.setFailed(`To avoid conflicts, changes to the translated documentation are only allowed via Crowdin at https://translate.starship.rs.`);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
# Vitepress build
|
||||
vitepress:
|
||||
name: Vitepress [Build]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24.16.0
|
||||
cache: 'npm'
|
||||
cache-dependency-path: docs/package-lock.json
|
||||
|
||||
- name: Setup | Install dependencies
|
||||
run: npm install
|
||||
working-directory: docs
|
||||
|
||||
- name: Build | Build docs site
|
||||
run: npm run build
|
||||
working-directory: docs
|
||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
pattern: docs/[a-z][a-z][a-z]?-[A-Z][A-Z]?/.*
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
name: Install Script
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "install/**"
|
||||
pull_request:
|
||||
paths:
|
||||
- "install/**"
|
||||
|
||||
jobs:
|
||||
shellcheck:
|
||||
name: Shellcheck [Linter]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Lint | Run shellcheck
|
||||
run: shellcheck --severity=warning install/**/*.sh
|
||||
|
||||
shfmt:
|
||||
name: Shfmt [Formatter]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Install shfmt
|
||||
run: |
|
||||
curl -sS https://webi.sh/shfmt | sh
|
||||
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Format | Check shfmt
|
||||
run: shfmt -d install/**/*.sh
|
||||
|
||||
test_install_script:
|
||||
name: Test Install Script
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Test | Piped execution with curl
|
||||
run: |
|
||||
# Test the installation method described at https://starship.rs/
|
||||
mkdir -p "$HOME/.test-install"
|
||||
curl -sS "file://$(pwd)/install/install.sh" | sh -s -- --yes --bin-dir "$HOME/.test-install"
|
||||
"$HOME/.test-install/starship" --version
|
||||
@@ -0,0 +1,15 @@
|
||||
name: Auto-merge Dependabot PRs
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 * * * *"
|
||||
jobs:
|
||||
auto_merge:
|
||||
if: (github.event_name == 'schedule' && github.repository == 'starship/starship') || (github.event_name != 'schedule')
|
||||
name: Auto-merge Dependabot PRs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: akheron/dependabot-cron-action@d020867c009553e279f0200b621459444828a9b0
|
||||
with:
|
||||
token: ${{ secrets.DEPENDABOT_GITHUB_API_TOKEN }}
|
||||
auto-merge: "minor"
|
||||
merge-method: "squash"
|
||||
@@ -1,31 +0,0 @@
|
||||
name: Publish Docs
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
publish_docs:
|
||||
name: Publish docs to Netlify
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24.16.0
|
||||
cache: 'npm'
|
||||
cache-dependency-path: docs/package-lock.json
|
||||
|
||||
- name: Setup | Install dependencies
|
||||
run: npm install
|
||||
working-directory: docs
|
||||
|
||||
- name: Build | Build docs site
|
||||
run: npm run build
|
||||
working-directory: docs
|
||||
|
||||
- name: Publish
|
||||
run: npx netlify-cli deploy --no-build --prod --dir=docs/.vitepress/dist
|
||||
env:
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
@@ -2,7 +2,7 @@ name: Release
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
env:
|
||||
CARGO_INCREMENTAL: 0
|
||||
CARGO_NET_RETRY: 10
|
||||
@@ -20,11 +20,12 @@ jobs:
|
||||
release_created: ${{ steps.release.outputs.release_created }}
|
||||
tag_name: ${{ steps.release.outputs.tag_name }}
|
||||
steps:
|
||||
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
|
||||
- uses: google-github-actions/release-please-action@v3
|
||||
id: release
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
release-type: rust
|
||||
draft: true
|
||||
|
||||
# Build sources for every OS
|
||||
github_build:
|
||||
@@ -55,17 +56,12 @@ jobs:
|
||||
os: ubuntu-latest
|
||||
name: starship-arm-unknown-linux-musleabihf.tar.gz
|
||||
|
||||
- target: riscv64gc-unknown-linux-musl
|
||||
os: ubuntu-latest
|
||||
name: starship-riscv64gc-unknown-linux-musl.tar.gz
|
||||
use_zigbuild: true
|
||||
|
||||
- target: x86_64-apple-darwin
|
||||
os: macos-latest
|
||||
os: macOS-11
|
||||
name: starship-x86_64-apple-darwin.tar.gz
|
||||
|
||||
- target: aarch64-apple-darwin
|
||||
os: macos-latest
|
||||
os: macOS-11
|
||||
name: starship-aarch64-apple-darwin.tar.gz
|
||||
|
||||
- target: x86_64-pc-windows-msvc
|
||||
@@ -93,83 +89,45 @@ jobs:
|
||||
RUSTFLAGS: ${{ matrix.rustflags || '' }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --target ${{ matrix.target }} --no-self-update
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
target: ${{ matrix.target }}
|
||||
|
||||
- name: Setup | Install cargo-wix [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: cargo install --version 0.3.8 cargo-wix
|
||||
# aarch64 is only supported in wix 4.0 development builds
|
||||
if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc'
|
||||
run: cargo install --version 0.3.2 cargo-wix
|
||||
env:
|
||||
# cargo-wix does not require static crt
|
||||
RUSTFLAGS: ""
|
||||
RUSTFLAGS: ''
|
||||
|
||||
- name: Setup | Install cross [Linux]
|
||||
if: matrix.os == 'ubuntu-latest' && !matrix.use_zigbuild
|
||||
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5 # v2.82.0
|
||||
- name: Build | Build
|
||||
uses: actions-rs/cargo@v1.0.3
|
||||
with:
|
||||
tool: cross@0.2.5
|
||||
|
||||
- name: Setup | Install Zig [riscv64]
|
||||
if: matrix.use_zigbuild
|
||||
run: pip install ziglang==0.16.0
|
||||
|
||||
- name: Setup | Install cargo-zigbuild [riscv64]
|
||||
if: matrix.use_zigbuild
|
||||
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5 # v2.82.0
|
||||
with:
|
||||
tool: cargo-zigbuild
|
||||
|
||||
- name: Build | Build [Cargo]
|
||||
if: matrix.os != 'ubuntu-latest'
|
||||
run: cargo build --release --locked --target ${{ matrix.target }}
|
||||
|
||||
- name: Build | Build [Cross]
|
||||
if: matrix.os == 'ubuntu-latest' && !matrix.use_zigbuild
|
||||
run: cross build --release --locked --target ${{ matrix.target }}
|
||||
|
||||
- name: Build | Build [Zigbuild]
|
||||
if: matrix.use_zigbuild
|
||||
run: cargo zigbuild --release --locked --target ${{ matrix.target }}
|
||||
command: build
|
||||
args: --release --locked --target ${{ matrix.target }}
|
||||
use-cross: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
|
||||
- name: Build | Installer [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: >
|
||||
cargo wix -v --no-build --nocapture -I install/windows/main.wxs
|
||||
--target ${{ matrix.target }}
|
||||
--output target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi
|
||||
|
||||
- name: Sign | Upload [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest'
|
||||
id: unsigned-artifacts
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc'
|
||||
uses: actions-rs/cargo@v1.0.3
|
||||
with:
|
||||
name: unsigned-${{ matrix.name }}
|
||||
path: |
|
||||
target/${{ matrix.target }}/release/starship.exe
|
||||
target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi
|
||||
|
||||
- name: Sign | Sign [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: signpath/github-action-submit-signing-request@b9d91eadd323de506c0c81cf0c7fe7438f3360fd # v2.2
|
||||
with:
|
||||
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
|
||||
organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}'
|
||||
project-slug: 'starship'
|
||||
github-artifact-id: '${{ steps.unsigned-artifacts.outputs.artifact-id }}'
|
||||
signing-policy-slug: 'release-signing'
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: 'target/${{ matrix.target }}/release'
|
||||
command: wix
|
||||
args: -v --no-build --nocapture -I install/windows/main.wxs --target ${{ matrix.target }} --output target/wix/starship-${{ matrix.target }}.msi
|
||||
|
||||
- name: Post Build | Prepare artifacts [Windows]
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: |
|
||||
cd target/${{ matrix.target }}/release
|
||||
strip starship.exe
|
||||
7z a ../../../${{ matrix.name }} starship.exe
|
||||
cd -
|
||||
|
||||
@@ -177,22 +135,24 @@ jobs:
|
||||
if: matrix.os != 'windows-latest'
|
||||
run: |
|
||||
cd target/${{ matrix.target }}/release
|
||||
# TODO: investigate better cross platform stripping
|
||||
strip starship || true
|
||||
tar czvf ../../../${{ matrix.name }} starship
|
||||
cd -
|
||||
|
||||
- name: Release | Upload artifacts
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.name }}
|
||||
path: ${{ matrix.name }}
|
||||
|
||||
- name: Release | Upload installer artifacts [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: starship-${{ matrix.target }}.msi
|
||||
path: target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi
|
||||
path: target/wix/starship-${{ matrix.target }}.msi
|
||||
|
||||
# Notarize starship binaries for MacOS and build notarized pkg installers
|
||||
notarize_and_pkgbuild:
|
||||
@@ -216,13 +176,12 @@ jobs:
|
||||
env:
|
||||
KEYCHAIN_FILENAME: app-signing.keychain-db
|
||||
KEYCHAIN_ENTRY: AC_PASSWORD
|
||||
STARSHIP_VERSION: ${{ needs.release_please.outputs.tag_name }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# Required to include the recently merged Crowdin PR
|
||||
ref: main
|
||||
ref: master
|
||||
|
||||
- name: Notarize | Set up secrets
|
||||
env:
|
||||
@@ -255,11 +214,6 @@ jobs:
|
||||
# Add Apple Developer ID credentials to keychain
|
||||
xcrun notarytool store-credentials "$KEYCHAIN_ENTRY" --team-id "$APPLEID_TEAMID" --apple-id "$APPLEID_USERNAME" --password "$APPLEID_PASSWORD" --keychain "$KEYCHAIN_PATH"
|
||||
|
||||
- name: Setup | Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24.16.0
|
||||
|
||||
- name: Notarize | Build docs
|
||||
run: |
|
||||
cd docs
|
||||
@@ -267,7 +221,7 @@ jobs:
|
||||
npm run build
|
||||
|
||||
- name: Notarize | Download artifacts
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.name }}
|
||||
path: artifacts
|
||||
@@ -279,7 +233,7 @@ jobs:
|
||||
run: bash install/macos_packages/build_and_notarize.sh starship docs ${{ matrix.arch }} ${{ matrix.pkgname }}
|
||||
|
||||
- name: Notarize | Upload Notarized Flat Installer
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.pkgname }}
|
||||
path: ${{ matrix.pkgname }}
|
||||
@@ -288,11 +242,10 @@ jobs:
|
||||
run: tar czvf ${{ matrix.name }} starship
|
||||
|
||||
- name: Notarize | Upload Notarized Binary
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.name }}
|
||||
path: ${{ matrix.name }}
|
||||
overwrite: true
|
||||
|
||||
- name: Cleanup Secrets
|
||||
if: ${{ always() }}
|
||||
@@ -307,58 +260,53 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Artifacts
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
uses: actions/download-artifact@v3
|
||||
|
||||
- name: Setup | Checksums
|
||||
run: for file in starship-*/starship-*; do openssl dgst -sha256 -r "$file" | awk '{print $1}' > "${file}.sha256"; done
|
||||
|
||||
- name: Setup | Publish Release
|
||||
run: gh release edit ${{ needs.release_please.outputs.tag_name }} --draft=false --repo=starship/starship
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build | Add Artifacts to Release
|
||||
run: gh release upload ${{ needs.release_please.outputs.tag_name }} starship-*/starship-* --repo starship/starship
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
files: starship-*/starship-*
|
||||
tag_name: ${{ needs.release_please.outputs.tag_name }}
|
||||
draft: false
|
||||
|
||||
# Publish starship to Crates.io
|
||||
cargo_publish:
|
||||
name: Publish Cargo Package
|
||||
runs-on: ubuntu-latest
|
||||
needs: [release_please, upload_artifacts]
|
||||
needs: release_please
|
||||
if: ${{ needs.release_please.outputs.release_created == 'true' }}
|
||||
permissions:
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --no-self-update
|
||||
|
||||
- name: Build | Authenticate
|
||||
uses: rust-lang/crates-io-auth-action@c6f97d42243bad5fab37ca0427f495c86d5b1a18 # v1.0.5
|
||||
id: auth
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Build | Publish
|
||||
run: cargo publish --token ${{ steps.auth.outputs.token }}
|
||||
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
||||
|
||||
update_brew_formula:
|
||||
name: Update Brew Formula
|
||||
runs-on: ubuntu-latest
|
||||
needs: [release_please, upload_artifacts]
|
||||
needs: release_please
|
||||
if: ${{ needs.release_please.outputs.release_created == 'true' }}
|
||||
steps:
|
||||
- uses: mislav/bump-homebrew-formula-action@ccf2332299a883f6af50a1d2d41e5df7904dd769 # v4.1
|
||||
- uses: mislav/bump-homebrew-formula-action@v2.1
|
||||
with:
|
||||
formula-name: starship
|
||||
tag-name: ${{ needs.release_please.outputs.tag_name }}
|
||||
env:
|
||||
# Used for creating the formula update PR
|
||||
COMMITTER_TOKEN: ${{ secrets.GH_PAT }}
|
||||
COMMITTER_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
||||
# Used for verifying the SHA256 sum of the draft release
|
||||
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
||||
|
||||
winget_update:
|
||||
name: Update Winget Manifest
|
||||
@@ -366,37 +314,13 @@ jobs:
|
||||
needs: [release_please, github_build, upload_artifacts]
|
||||
if: ${{ needs.release_please.outputs.release_created == 'true' }}
|
||||
env:
|
||||
URL_64: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-x86_64-pc-windows-msvc
|
||||
URL_32: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-i686-pc-windows-msvc
|
||||
URL_ARM: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-aarch64-pc-windows-msvc
|
||||
URL_64: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-x86_64-pc-windows-msvc.msi
|
||||
URL_32: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-i686-pc-windows-msvc.msi
|
||||
steps:
|
||||
# Publishing will fail if the repo is too far behind the upstream
|
||||
- run: gh repo sync matchai/winget-pkgs
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
|
||||
- run: |
|
||||
$version = '${{ needs.release_please.outputs.tag_name }}'.replace('v', '')
|
||||
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
|
||||
./wingetcreate.exe update Starship.Starship -s -v $version `
|
||||
-u ${{ env.URL_64 }}.msi ${{ env.URL_64 }}.zip `
|
||||
${{ env.URL_32 }}.msi ${{ env.URL_32 }}.zip `
|
||||
${{ env.URL_ARM }}.msi ${{ env.URL_ARM }}.zip `
|
||||
-t ${{ secrets.GH_PAT }}
|
||||
|
||||
choco_update:
|
||||
name: Update Chocolatey Package
|
||||
runs-on: windows-latest
|
||||
needs: [release_please, github_build, upload_artifacts]
|
||||
if: ${{ needs.release_please.outputs.release_created == 'true' }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- name: Setup | Artifacts
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
- run: pwsh ./install/windows/choco/update.ps1
|
||||
env:
|
||||
STARSHIP_VERSION: ${{ needs.release_please.outputs.tag_name }}
|
||||
PUSH_TOKEN: ${{ secrets.CHOCO_TOKEN }}
|
||||
./wingetcreate.exe update Starship.Starship -s -v $version -u $env:URL_64 $env:URL_32 -t ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
merge_crowdin_pr:
|
||||
name: Merge Crowdin PR
|
||||
@@ -405,21 +329,34 @@ jobs:
|
||||
if: ${{ needs.release_please.outputs.release_created == 'true' }}
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- name: Merge | Merge Crowdin PR
|
||||
run: gh pr merge i18n_master --squash --repo=starship/starship
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
publish_docs:
|
||||
name: Trigger docs deployment
|
||||
name: Publish docs to Netlify
|
||||
runs-on: ubuntu-latest
|
||||
needs: merge_crowdin_pr
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- name: Trigger workflow dispatch
|
||||
run: gh workflow run publish-docs.yml
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# Required to include the recently merged Crowdin PR
|
||||
ref: master
|
||||
|
||||
- name: Setup | Install dependencies
|
||||
run: npm install
|
||||
working-directory: docs
|
||||
|
||||
- name: Build | Build docs site
|
||||
run: npm run build
|
||||
working-directory: docs
|
||||
|
||||
- name: Publish
|
||||
uses: netlify/actions/cli@master
|
||||
with:
|
||||
args: deploy --prod --dir=docs/.vuepress/dist
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
|
||||
@@ -8,22 +8,22 @@ on:
|
||||
paths:
|
||||
- "**/Cargo.toml"
|
||||
- "**/Cargo.lock"
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
jobs:
|
||||
security_audit:
|
||||
if: (github.event_name == 'schedule' && github.repository == 'starship/starship') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
checks:
|
||||
- advisories
|
||||
- bans licenses sources
|
||||
|
||||
# Prevent sudden announcement of a new advisory from failing ci:
|
||||
continue-on-error: ${{ matrix.checks == 'advisories' }}
|
||||
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- name: Test | Security Audit
|
||||
uses: EmbarkStudios/cargo-deny-action@bb137d7af7e4fb67e5f82a49c4fce4fad40782fe # v2.0.20
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
command: check ${{ matrix.checks }}
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- name: Test | Security Audit
|
||||
uses: actions-rs/audit-check@v1.2.0
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
name: Spell Check
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
typos:
|
||||
name: Spell Check with Typos
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: crate-ci/typos@37bb98842b0d8c4ffebdb75301a13db0267cef89 # v1.47.2
|
||||
@@ -24,10 +24,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --component rustfmt --no-self-update
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
components: rustfmt
|
||||
|
||||
- name: Build | Format
|
||||
run: cargo fmt --all -- --check
|
||||
@@ -41,16 +46,24 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --component clippy --no-self-update
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
components: clippy
|
||||
|
||||
- name: Build | Lint
|
||||
run: cargo clippy --workspace --locked -- -D warnings
|
||||
uses: actions-rs/cargo@v1.0.3
|
||||
with:
|
||||
command: clippy
|
||||
args: --workspace --locked --all-targets --all-features -- -D clippy::all
|
||||
|
||||
# Ensure that the project could be successfully compiled
|
||||
cargo_check:
|
||||
@@ -58,13 +71,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --no-self-update
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Build | Check
|
||||
run: cargo check --workspace --locked
|
||||
@@ -76,13 +93,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --no-self-update
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Build | Check
|
||||
run: cargo check --workspace --locked --no-default-features
|
||||
@@ -94,13 +115,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --no-self-update
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Build | Check
|
||||
run: cargo check --workspace --locked --all-features
|
||||
@@ -110,27 +135,25 @@ jobs:
|
||||
name: Check if config schema is up to date
|
||||
needs: cargo_check
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: Setup | Rust
|
||||
run: rustup toolchain install stable --profile minimal --no-self-update
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Setup | Rust
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Run | Generate Schema
|
||||
run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json
|
||||
|
||||
- name: Check | Detect Changes
|
||||
run: |
|
||||
if ! git diff --exit-code .github/config-schema.json; then
|
||||
echo "::error file=.github/config-schema.json::config-schema.json is out of date. Run 'cargo run --features config-schema -- config-schema > .github/config-schema.json' and commit the result."
|
||||
exit 1
|
||||
fi
|
||||
run: git diff --exit-code .github/config-schema.json
|
||||
|
||||
# Run tests on Linux, macOS, and Windows
|
||||
# On both Rust stable and Rust nightly
|
||||
@@ -150,43 +173,38 @@ jobs:
|
||||
RUSTFLAGS: ${{ matrix.rustflags || '' }}
|
||||
steps:
|
||||
- name: Setup | Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
# Install all the required dependencies for testing
|
||||
- name: Setup | Rust
|
||||
run: |
|
||||
rustup toolchain install ${{ matrix.rust }} --profile minimal --component llvm-tools-preview --no-self-update
|
||||
rustup default ${{ matrix.rust }}
|
||||
|
||||
- name: Setup | Cache
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: ${{ matrix.rust }}
|
||||
components: llvm-tools-preview
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Install cargo-llvm-cov
|
||||
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5 # v2.82.0
|
||||
with:
|
||||
tool: cargo-llvm-cov@0.8.5
|
||||
uses: taiki-e/install-action@cargo-llvm-cov
|
||||
|
||||
# For windows installer test
|
||||
# On stable rust & main repo pushes only
|
||||
- name: Install cargo-wix [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest' && matrix.rust == 'stable'
|
||||
run: cargo install --version 0.3.8 cargo-wix
|
||||
run: cargo install --version 0.3.2 cargo-wix
|
||||
env:
|
||||
# cargo-wix does not require static crt
|
||||
RUSTFLAGS: ""
|
||||
RUSTFLAGS: ''
|
||||
|
||||
# Install Mercurial (pre-installed on Linux)
|
||||
# Install Mercurial (pre-installed on Linux and windows)
|
||||
- name: Setup | Mercurial (macos)
|
||||
if: matrix.os == 'macOS-latest'
|
||||
run: brew install mercurial
|
||||
|
||||
- name: Setup | Mercurial (windows)
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: |
|
||||
winget install --id Mercurial.Mercurial --silent --exact --disable-interactivity --accept-source-agreements
|
||||
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\Mercurial" -Encoding utf8
|
||||
|
||||
# Run the ignored tests that expect the above setup
|
||||
- name: Build | Test
|
||||
run: "cargo llvm-cov
|
||||
@@ -202,53 +220,15 @@ jobs:
|
||||
- name: Build | Installer [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest' && matrix.rust == 'stable'
|
||||
run: >
|
||||
cargo wix --dbg-build -v --nocapture -I install/windows/main.wxs
|
||||
--output target/debug/starship-x86_64-pc-windows-msvc.msi
|
||||
|
||||
- name: Build | Chocolatey Package [Windows]
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest' && matrix.rust == 'stable'
|
||||
run: |
|
||||
# Setup dummy release artifacts
|
||||
foreach ($arch in @("aarch64", "i686", "x86_64")) {
|
||||
foreach ($ext in @("zip", "msi")) {
|
||||
New-Item -ItemType Directory -Path ./starship-$arch-pc-windows-msvc.$ext
|
||||
New-Item -ItemType File -Path ./starship-$arch-pc-windows-msvc.$ext/starship-$arch-pc-windows-msvc.$ext
|
||||
}
|
||||
}
|
||||
# Build package
|
||||
pwsh ./install/windows/choco/update.ps1
|
||||
env:
|
||||
STARSHIP_VERSION: v1.2.3
|
||||
|
||||
- name: Sign | Upload Executable [Windows]
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
continue-on-error: true
|
||||
id: unsigned-artifacts
|
||||
if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship'
|
||||
uses: actions-rs/cargo@v1.0.3
|
||||
with:
|
||||
name: unsigned-artifacts-dbg
|
||||
path: |
|
||||
target/debug/starship.exe
|
||||
target/debug/starship-x86_64-pc-windows-msvc.msi
|
||||
|
||||
- name: Sign | Sign [Windows]
|
||||
uses: signpath/github-action-submit-signing-request@b9d91eadd323de506c0c81cf0c7fe7438f3360fd # v2.2
|
||||
continue-on-error: true
|
||||
if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship'
|
||||
with:
|
||||
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
|
||||
organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}'
|
||||
project-slug: 'starship'
|
||||
github-artifact-id: '${{ steps.unsigned-artifacts.outputs.artifact-id }}'
|
||||
signing-policy-slug: 'test-signing'
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: target/debug
|
||||
command: wix
|
||||
args: --dbg-build -v --nocapture -I install/windows/main.wxs
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
|
||||
uses: codecov/codecov-action@v3
|
||||
if: github.repository == 'starship/starship'
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: lcov.info
|
||||
fail_ci_if_error: true
|
||||
|
||||
@@ -27,8 +27,7 @@ Cargo.lock
|
||||
|
||||
# Compiled files for documentation
|
||||
docs/node_modules
|
||||
docs/.vitepress/dist/
|
||||
docs/.vitepress/cache/
|
||||
docs/.vuepress/dist/
|
||||
|
||||
# Ignore pkg files within the install directory
|
||||
install/**/*.pkg
|
||||
install/**/*.pkg
|
||||
@@ -1,41 +0,0 @@
|
||||
# AI Usage Policy
|
||||
|
||||
This policy supplements our [Contributing Guide](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
This project is maintained by volunteers.
|
||||
This policy exists to keep review burden reasonable.
|
||||
The policy is inspired by the [Ghostty](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md) and [LLVM](https://llvm.org/docs/AIToolPolicy.html) AI policies.
|
||||
|
||||
Contributions that violate this policy may be closed without further notice.
|
||||
|
||||
## Mandatory Disclosure
|
||||
|
||||
Every Pull Request that utilizes AI-assisted tooling (including but not limited to Claude Code, Cursor, GitHub Copilot, ChatGPT, or local LLMs) must disclose its usage.
|
||||
|
||||
### PR Description
|
||||
|
||||
You must complete the **AI-Assistance** section in our Pull Request Template.
|
||||
|
||||
## Human-in-the-Loop
|
||||
|
||||
Contributors must fully understand all submitted contributions.
|
||||
|
||||
### Contributions
|
||||
|
||||
- You must be able to explain what your changes do and defend your implementation choices.
|
||||
- You are expected to have read and understood every line of code you submit.
|
||||
- If your response to a maintainer's question is an unedited copy-paste from an LLM, or if you cannot explain the mechanics of your PR, the PR will be closed.
|
||||
|
||||
### Issue Triage and Discussions
|
||||
|
||||
You are not allowed to reply to user issues or discussions with unverified or raw AI-generated information.
|
||||
|
||||
## "Good First Issue" Protections
|
||||
|
||||
You may not submit contributions to close a `🌱 good first issue` if they were authored with substantial AI assistance.
|
||||
These issues are intentionally triaged as learning opportunities for new developers navigating the codebase for the first time.
|
||||
|
||||
## Low-Effort Contributions & Prohibition of Autonomous Agents
|
||||
|
||||
- Contributions that are overly verbose, contain unsupported or hallucinated claims, or otherwise show the hallmarks of low-effort LLM usage may be closed without further notice.
|
||||
- Contributions via OpenClaw, or any other unsupervised autonomous agent operating in an automated loop, are strictly prohibited.
|
||||
@@ -1,615 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
## [1.25.1](https://github.com/starship/starship/compare/v1.25.0...v1.25.1) (2026-04-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **git:** improve bare repository detection ([#7421](https://github.com/starship/starship/issues/7421)) ([27079d7](https://github.com/starship/starship/commit/27079d7669b3072a944d3610f5dd5fec65321841))
|
||||
* **presets:** Update no-nerd-font to be up-to-date ([#7440](https://github.com/starship/starship/issues/7440)) ([65fb647](https://github.com/starship/starship/commit/65fb647bc38da09fe5d140f055c9f67d740bfa67))
|
||||
* **python:** align `python_binary` schema with argument support ([#7415](https://github.com/starship/starship/issues/7415)) ([3ec9b5c](https://github.com/starship/starship/commit/3ec9b5c54caa828164c710500a25ccd43ef26a64))
|
||||
|
||||
## [1.25.0](https://github.com/starship/starship/compare/v1.24.2...v1.25.0) (2026-04-18)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add Maven module ([#7189](https://github.com/starship/starship/issues/7189)) ([70b0f73](https://github.com/starship/starship/commit/70b0f7355497715a0e9d480326dc7b721b5314fb))
|
||||
* add statusline subcommand for Claude Code integration ([#7234](https://github.com/starship/starship/issues/7234)) ([b8ee821](https://github.com/starship/starship/commit/b8ee82167c5b49c7e9fd70e5542fad0e56810b39))
|
||||
* **battery:** Update default `unknown_symbol` ([#7278](https://github.com/starship/starship/issues/7278)) ([88d384f](https://github.com/starship/starship/commit/88d384f582de7c49b201bc30739c9ad6620fa174))
|
||||
* **directory:** add support for regexes in substitutions ([#7145](https://github.com/starship/starship/issues/7145)) ([2e8f26e](https://github.com/starship/starship/commit/2e8f26e44846cd52d06563aef98e22b89965dd25))
|
||||
* **env_var:** include $symbol in default format ([#7262](https://github.com/starship/starship/issues/7262)) ([3885e81](https://github.com/starship/starship/commit/3885e81357b04c244c19c0c8b05ccbbd4f797d62))
|
||||
* **git_status:** add variables to track worktree and index changes ([#5655](https://github.com/starship/starship/issues/5655)) ([0110bf5](https://github.com/starship/starship/commit/0110bf59c86f6f0f33f95dc614c231acc19547b8))
|
||||
* **python:** add option to replace generic venv-names with parent dir ([#7112](https://github.com/starship/starship/issues/7112)) ([083ab00](https://github.com/starship/starship/commit/083ab008fc77b982a223af8f4f18020c7a64fec6))
|
||||
* **vcs:** Introduce the VCS module ([#6388](https://github.com/starship/starship/issues/6388)) ([0dd5a4f](https://github.com/starship/starship/commit/0dd5a4f402c8d94524aaaa5632b2d0cba7fe1630))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **aws:** isolate tests from host AWS config files ([#7196](https://github.com/starship/starship/issues/7196)) ([e910f47](https://github.com/starship/starship/commit/e910f47597f3acec36c1c21bf4204af1a3265b92))
|
||||
* **aws:** support `$duration` for `sso_session` ([#7100](https://github.com/starship/starship/issues/7100)) ([8108cc9](https://github.com/starship/starship/commit/8108cc95cf1b1182f239a3a4cc399d3fcd912187))
|
||||
* **direnv:** accept null loadedRC state ([#7317](https://github.com/starship/starship/issues/7317)) ([56b8901](https://github.com/starship/starship/commit/56b8901f6feaa841de1f38054db7b3ae495a457b))
|
||||
* **docs:** Re-add `style` option to `env_var` module ([#7298](https://github.com/starship/starship/issues/7298)) ([e2277e5](https://github.com/starship/starship/commit/e2277e5958c62a5bb1cc1f4ad76ccd051e22d1c5))
|
||||
* enable std feature for whoami crate ([#7211](https://github.com/starship/starship/issues/7211)) ([9931ab2](https://github.com/starship/starship/commit/9931ab25b28b91b502dae93fc3826fd9a18a01b0))
|
||||
* **format:** allow empty textgroups to set prev_fg/prev_bg ([#7201](https://github.com/starship/starship/issues/7201)) ([9186188](https://github.com/starship/starship/commit/91861886a779805cd8265a85c629e579d513aa75))
|
||||
* **helm:** remove deprecated --client flag from helm version command ([#7193](https://github.com/starship/starship/issues/7193)) ([8a69666](https://github.com/starship/starship/commit/8a69666084d248b8fd76b6c54f38aea12abce6e3))
|
||||
* **hg_state:** avoid false-positive MERGING state ([#7329](https://github.com/starship/starship/issues/7329)) ([7a27475](https://github.com/starship/starship/commit/7a274752d0803960ae25259c8641f6e676f9c7b2))
|
||||
* **install:** improve UX for version option ([#7197](https://github.com/starship/starship/issues/7197)) ([c576625](https://github.com/starship/starship/commit/c576625343a8353ed2e99157d86065c2e713048e))
|
||||
|
||||
## [1.24.2](https://github.com/starship/starship/compare/v1.24.1...v1.24.2) (2025-12-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **cmd_duration:** avoid freezing on notify on macOS 26 ([#7187](https://github.com/starship/starship/issues/7187)) ([0daa8d3](https://github.com/starship/starship/commit/0daa8d3f921f5b7f08445a29e2842928b6e637c4))
|
||||
* **fish:** restore job counting compability with older versions ([#7173](https://github.com/starship/starship/issues/7173)) ([a261b48](https://github.com/starship/starship/commit/a261b48caa4129cd6baa5fa98f364eff66593bc4))
|
||||
* **fish:** use native transient prompt if available ([#7015](https://github.com/starship/starship/issues/7015)) ([cc65e0c](https://github.com/starship/starship/commit/cc65e0c7429068f1123fe5d9844ebebdfa1b9547))
|
||||
* **git:** Basic Reftable compatibility and future-proofing ([#7154](https://github.com/starship/starship/issues/7154)) ([6d9c8ea](https://github.com/starship/starship/commit/6d9c8ea8a9736d2e12bda46c9cdb1f8fc1de630c))
|
||||
* **mise:** align documentation and implementation ([#7131](https://github.com/starship/starship/issues/7131)) ([08824d7](https://github.com/starship/starship/commit/08824d7c6e1f69150cc1c28f3ff46bbb5447a7d0))
|
||||
* Revert "feat(install.sh): handle installation directory prompt case-insensitively ([#7138](https://github.com/starship/starship/issues/7138)) ([d11bc8d](https://github.com/starship/starship/commit/d11bc8d5867d7d7c16850803b4eed7643bf33b20))
|
||||
* **zsh:** fix job counting ([#7124](https://github.com/starship/starship/issues/7124)) ([46ab862](https://github.com/starship/starship/commit/46ab8621a7490bdcea635feb6233ce038264ff4e))
|
||||
|
||||
## [1.24.1](https://github.com/starship/starship/compare/v1.24.0...v1.24.1) (2025-11-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **fish:** fix job counting ([#7082](https://github.com/starship/starship/issues/7082)) ([7795bab](https://github.com/starship/starship/commit/7795bab3bd55c6515bce73e1e01c977203113ced))
|
||||
* improve timeout warning message in the directory scanner ([#7120](https://github.com/starship/starship/issues/7120)) ([d6daf8a](https://github.com/starship/starship/commit/d6daf8a4e1cdfbd361efe26ddefa0b60efaa5b1d))
|
||||
|
||||
## [1.24.0](https://github.com/starship/starship/compare/v1.23.0...v1.24.0) (2025-10-25)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add mercurial state ([#6745](https://github.com/starship/starship/issues/6745)) ([5f0b31b](https://github.com/starship/starship/commit/5f0b31b4c8da64a3dbe27f5966dfbc4ab2b9f7bf))
|
||||
* **aws:** support duration for aws sso ([#6614](https://github.com/starship/starship/issues/6614)) ([44e9e56](https://github.com/starship/starship/commit/44e9e56480a748ccda1a64a9f623dc2b19ecfe98))
|
||||
* **cli:** accept 'powershell' for completions subcommand ([#7028](https://github.com/starship/starship/issues/7028)) ([4caee4a](https://github.com/starship/starship/commit/4caee4a7ca5dbb78c346a84cc39ca3a90a9238a5))
|
||||
* **container:** Add detection of Incus containers ([#6917](https://github.com/starship/starship/issues/6917)) ([6886ad0](https://github.com/starship/starship/commit/6886ad082cd55a5a07160cc847c9c38915dca848))
|
||||
* **fish:** support input-mode detection for helix-keybinds ([#6841](https://github.com/starship/starship/issues/6841)) ([26a6237](https://github.com/starship/starship/commit/26a62372d11a42f7fec0b65c388e585a79d05b04))
|
||||
* Fortran module ([#6685](https://github.com/starship/starship/issues/6685)) ([90d8c4a](https://github.com/starship/starship/commit/90d8c4a256b67bfef9cf33e4d560eb34c390d101))
|
||||
* **git_branch:** add ignore_bare_repo flag ([#6936](https://github.com/starship/starship/issues/6936)) ([87b7ac3](https://github.com/starship/starship/commit/87b7ac342f93b88780863251421283c4874d356c))
|
||||
* **install.sh:** handle installation directory prompt responses case-insensitively ([#6866](https://github.com/starship/starship/issues/6866)) ([bc48b5f](https://github.com/starship/starship/commit/bc48b5fcb07b3ea806127bc6ab13616028e92642))
|
||||
* new module `xmake` ([#6811](https://github.com/starship/starship/issues/6811)) ([ff0acb1](https://github.com/starship/starship/commit/ff0acb193eaa04ab63a8e56e1bd18019444b886f))
|
||||
* **nu:** Add job support for nushell ([#6684](https://github.com/starship/starship/issues/6684)) ([ac2359c](https://github.com/starship/starship/commit/ac2359ca8a020825b5c68b5e3b8da35d4917f46e))
|
||||
* **package:** Add support for Ansible Galaxy ([#6905](https://github.com/starship/starship/issues/6905)) ([07778a8](https://github.com/starship/starship/commit/07778a8452bb565db55e32c32d7c8434a7bda9dd))
|
||||
* **package:** pyproject hatchling dynamic version ([#6656](https://github.com/starship/starship/issues/6656)) ([ef5227e](https://github.com/starship/starship/commit/ef5227eeafa4dd5c99aff1fdab07574bc423d648))
|
||||
* **terraform:** support opentofu for terraform version detection ([#6910](https://github.com/starship/starship/issues/6910)) ([ef7d8bd](https://github.com/starship/starship/commit/ef7d8bd442f659b64cc23fd4b096e696531289ba))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* consider text-only meta variables in conditionals set if non-empty ([#6338](https://github.com/starship/starship/issues/6338)) ([286b0f2](https://github.com/starship/starship/commit/286b0f2be30db81bc948579c137f0cc646fcde65))
|
||||
* **docker_context:** add `compose.yml` and `compose.yaml` to files ([#6625](https://github.com/starship/starship/issues/6625)) ([a98a05f](https://github.com/starship/starship/commit/a98a05f1ac4dfc215337a266c784cd62256f0c33))
|
||||
* **explain:** Filter out non-printing ANSI escape codes ([#6861](https://github.com/starship/starship/issues/6861)) ([2c11c08](https://github.com/starship/starship/commit/2c11c086b8da5ea43ae795fa0e71a621e983ebcc))
|
||||
* **fossil_metrics:** match single-file ([#6785](https://github.com/starship/starship/issues/6785)) ([5dd40ea](https://github.com/starship/starship/commit/5dd40ea62fb697239c2a84072414bd30059067d9))
|
||||
* **git_metrics:** adhere to `git_status` `use_git_executable` option ([#6927](https://github.com/starship/starship/issues/6927)) ([05daa3e](https://github.com/starship/starship/commit/05daa3e27832dde93f784c2659b31f94bb827f80))
|
||||
* **git_status:** Do not show up-to-date when untracked ([#6755](https://github.com/starship/starship/issues/6755)) ([f42b53e](https://github.com/starship/starship/commit/f42b53edd8bc26ec95dd027d9cf776ec70597cc3))
|
||||
* **hg_branch:** Strip extraneous newlines from hg topic. ([#6766](https://github.com/starship/starship/issues/6766)) ([ccc32e7](https://github.com/starship/starship/commit/ccc32e73fc0a0f99d90cff3a0efb73efecce1d84))
|
||||
* improve adhere to directory scanning timeout ([#6694](https://github.com/starship/starship/issues/6694)) ([109a681](https://github.com/starship/starship/commit/109a6811cee1faae677a24a7d92fa8ed39397485))
|
||||
* **jobs:** Count job groups instead of processes for fish ([#6899](https://github.com/starship/starship/issues/6899)) ([95bf53f](https://github.com/starship/starship/commit/95bf53f6b9f7dbc50708e0f459b6dc7a7b7ebd20))
|
||||
* **modules:** username detect_env_vars logic ([#6934](https://github.com/starship/starship/issues/6934)) ([a60df1d](https://github.com/starship/starship/commit/a60df1d1fe2e670132a86e314971dce2ac4c1607)), closes [#6870](https://github.com/starship/starship/issues/6870)
|
||||
* **nushell:** Startup `cmd_duration` should be 0ms not 823ms ([#6854](https://github.com/starship/starship/issues/6854)) ([0ad1cf8](https://github.com/starship/starship/commit/0ad1cf831a9e7938ed5e3d3262d3647e828ee4de))
|
||||
* **pixi:** Don't trigger pixi module by `.pixi` directory ([#6709](https://github.com/starship/starship/issues/6709)) ([a477186](https://github.com/starship/starship/commit/a477186e52e156eeac780e9b79210a19715f4919))
|
||||
* **preset/nerd-font:** remove double spaces in `gcloud` default value and use Google Cloud-specific icon ([#6822](https://github.com/starship/starship/issues/6822)) ([3b5bbe3](https://github.com/starship/starship/commit/3b5bbe3566583f4549234f89874a3662d67c5012))
|
||||
* **preset/pure:** only enable python module if venv is active ([#6689](https://github.com/starship/starship/issues/6689)) ([5e8851a](https://github.com/starship/starship/commit/5e8851a95364e9713d1c5ddc409248f0705a9410))
|
||||
* **presets/plaint-text:** Add missing entries ([#6929](https://github.com/starship/starship/issues/6929)) ([e593332](https://github.com/starship/starship/commit/e5933327d705cc33951e9bf6ad08a0128720725b))
|
||||
* remove double spaces in default values ([#6649](https://github.com/starship/starship/issues/6649)) ([e406f55](https://github.com/starship/starship/commit/e406f552f84b37631152f34617712085d65c5e7b))
|
||||
* rust-ini 0.21.2 has been yanked from crates.io. ([#6916](https://github.com/starship/starship/issues/6916)) ([b698fb0](https://github.com/starship/starship/commit/b698fb05593c81c1e2f35af0f1e61c00dd85c6ce))
|
||||
* **terraform:** amend module to `exec_cmds_return_first`-changes ([#6956](https://github.com/starship/starship/issues/6956)) ([0f5d8d4](https://github.com/starship/starship/commit/0f5d8d4a4a932b5ed99aece6a6484887d7f4e06a))
|
||||
* **test/git_commit:** avoid spawning an editor lead to timeout if tag signing is enabled ([#6887](https://github.com/starship/starship/issues/6887)) ([32c29cf](https://github.com/starship/starship/commit/32c29cfda784bdcc6a97c0e637f99100af1a0c2d))
|
||||
* **time:** don't print misleading log message ([#7008](https://github.com/starship/starship/issues/7008)) ([5db4ea7](https://github.com/starship/starship/commit/5db4ea7878fb6ad40982021b64a907459cf22577))
|
||||
* **zsh:** check if vars are set before reading them ([#6742](https://github.com/starship/starship/issues/6742)) ([608ae37](https://github.com/starship/starship/commit/608ae37bcfd498b72020689b19debb79d236c411))
|
||||
* **zsh:** do not fail under ERR_EXIT conditions if `STARSHIP_DURATION` computes to 0 ([#6922](https://github.com/starship/starship/issues/6922)) ([38db5f0](https://github.com/starship/starship/commit/38db5f0094d1109b8e7b4332b6c20c2a8b125cf1))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **git_status:** avoid gix index load when `core.fsmonitor` is used ([#6817](https://github.com/starship/starship/issues/6817)) ([1c2f4d4](https://github.com/starship/starship/commit/1c2f4d46594d38abd423752efa3b21903e5a1e3b))
|
||||
* Parallelize child modules for env_var|custom ([#6748](https://github.com/starship/starship/issues/6748)) ([7f4eb6f](https://github.com/starship/starship/commit/7f4eb6fdae5218413963f07f86df4e2b340bd05e))
|
||||
|
||||
## [1.23.0](https://github.com/starship/starship/compare/v1.22.1...v1.23.0) (2025-04-27)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add network namespace module ([#6449](https://github.com/starship/starship/issues/6449)) ([eb42f5a](https://github.com/starship/starship/commit/eb42f5ac7003da1f9543f5258dd674cec96a7320))
|
||||
* Add support for pixi ([#6335](https://github.com/starship/starship/issues/6335)) ([7e88ba9](https://github.com/starship/starship/commit/7e88ba9561bead33cefaba1003637e0213199a15))
|
||||
* added mise module ([#5747](https://github.com/starship/starship/issues/5747)) ([d24e787](https://github.com/starship/starship/commit/d24e78754a0ce1d5ea77eae0a7d3b19aaa7bcfc8))
|
||||
* **c++:** adding c++ module ([#6570](https://github.com/starship/starship/issues/6570)) ([ed07646](https://github.com/starship/starship/commit/ed076460995cb5175e47442dc11b46ff0f039b4a))
|
||||
* **completions:** Offer Nushell completions ([#6366](https://github.com/starship/starship/issues/6366)) ([df454d5](https://github.com/starship/starship/commit/df454d5a64fa6de5d2e334c5aa9b07150bf09ae6))
|
||||
* **nodejs:** disable if bun project files detected ([#6346](https://github.com/starship/starship/issues/6346)) ([00ce705](https://github.com/starship/starship/commit/00ce7057efb7c431e7f9b526ca3ee941573e9f40))
|
||||
* **package:** support JSR package version ([#6502](https://github.com/starship/starship/issues/6502)) ([bd2321a](https://github.com/starship/starship/commit/bd2321a12fc47135f316e90f22ccab6a61b50730))
|
||||
* **preset:** Add gcloud symbol to nerd-fonts preset to match aws ([#6693](https://github.com/starship/starship/issues/6693)) ([348c23f](https://github.com/starship/starship/commit/348c23fd58d90352cb128d32c495c1107a98d930))
|
||||
* **python:** add support for `python_binary` arguments in config ([#6523](https://github.com/starship/starship/issues/6523)) ([7667555](https://github.com/starship/starship/commit/76675559c041fa2ae6a85cb946218e5e1f04bf75))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **battery:** prefer charge ratio over current capacity ([#6603](https://github.com/starship/starship/issues/6603)) ([d245939](https://github.com/starship/starship/commit/d2459391194cf5a142d98b1297fe5f630c3415f5))
|
||||
* Change to a non-yanked version of the log crate ([#6495](https://github.com/starship/starship/issues/6495)) ([ed20b1d](https://github.com/starship/starship/commit/ed20b1d23b1b7ed914fca30fb6788f3d609f4a52))
|
||||
* **fossil_metrics:** Add -i flag to the fossil_metrics module's command ([#6544](https://github.com/starship/starship/issues/6544)) ([eb7d80b](https://github.com/starship/starship/commit/eb7d80bafac8f6ae719ee357aeff129065ddd7e6))
|
||||
* **package:** fix cargo workspace version ([#6626](https://github.com/starship/starship/issues/6626)) ([834bbf5](https://github.com/starship/starship/commit/834bbf53e53fc7f46f168e6d13677b737af73dbf))
|
||||
* **preset:** add missing rlang to plain-text-symbols preset ([ddafaa6](https://github.com/starship/starship/commit/ddafaa62fc85fddff2bc2cc3a1daaf919f8b8f0d))
|
||||
* **preset:** add missing rlang to plain-text-symbols preset ([#6458](https://github.com/starship/starship/issues/6458)) ([ddafaa6](https://github.com/starship/starship/commit/ddafaa62fc85fddff2bc2cc3a1daaf919f8b8f0d))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **ancestor-scan:** preallocate and reuse a single `PathBuf` ([#6387](https://github.com/starship/starship/issues/6387)) ([b3cb92e](https://github.com/starship/starship/commit/b3cb92e6483a6cc054c6f7db14951c99bd7c9e9b))
|
||||
* use `gitoxide` for `git_status` and `git_metrics` modules ([#6476](https://github.com/starship/starship/issues/6476)) ([daf8d93](https://github.com/starship/starship/commit/daf8d93d27fdc70b110a4a56799d7dc3a10c3810))
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* Remove specialized whoami hostname function choice for windows ([#6651](https://github.com/starship/starship/issues/6651)) ([8eefdb2](https://github.com/starship/starship/commit/8eefdb21a6099d86b831ff1d42ae7f2a1678185a))
|
||||
|
||||
## [1.22.1](https://github.com/starship/starship/compare/v1.22.0...v1.22.1) (2025-01-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **windows:** downgrade libz-ng-sys ([#6489](https://github.com/starship/starship/issues/6489)) ([6f7c67b](https://github.com/starship/starship/commit/6f7c67b4858b755c19754a2ec1063502545a16b6))
|
||||
|
||||
## [1.22.0](https://github.com/starship/starship/compare/v1.21.1...v1.22.0) (2025-01-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **battery:** Use best match instead of first match for `battery.display` threshold ([#6442](https://github.com/starship/starship/issues/6442)) ([2690a32](https://github.com/starship/starship/commit/2690a329cf9a6b4a160d024674193007fb292e1a))
|
||||
* **bun:** Detect bun using new text-format lockfile ([#6441](https://github.com/starship/starship/issues/6441)) ([2df521c](https://github.com/starship/starship/commit/2df521c69b0b1400edee7b7b332b5e2a900c7775))
|
||||
* **direnv:** allow direnv to detect environment variables ([#6196](https://github.com/starship/starship/issues/6196)) ([4593716](https://github.com/starship/starship/commit/45937166c8b3cb53f09b29c65d0f547aa7f2f022))
|
||||
* **status:** add `{success,failure}_style` options ([#6269](https://github.com/starship/starship/issues/6269)) ([e21775c](https://github.com/starship/starship/commit/e21775c694a81cf092eafa3c9a7b169ae9c8ebf2))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **fish:** restore support for fish <v3.4.0 ([#6337](https://github.com/starship/starship/issues/6337)) ([85d3fb2](https://github.com/starship/starship/commit/85d3fb2e2ab96e639fe6b67ba1afbb94b6c5b83e))
|
||||
* handle variable bash $SHLVL behavior with explicit option ([#4912](https://github.com/starship/starship/issues/4912)) ([7ead2b5](https://github.com/starship/starship/commit/7ead2b55eb58a878dc3ea8d87204f84862bd8148))
|
||||
* **hostname:** use DNS instead of NetBIOS name on Windows ([#6343](https://github.com/starship/starship/issues/6343)) ([43f097e](https://github.com/starship/starship/commit/43f097eae838c1fba52659113826669802081918))
|
||||
* **init/pwsh:** preserve ViModeChangeHandler ([#6225](https://github.com/starship/starship/issues/6225)) ([9b6d394](https://github.com/starship/starship/commit/9b6d394e01d50db4395cfe402531bfd96c540462))
|
||||
* **init:** do not use cygpath for elvish ([#6376](https://github.com/starship/starship/issues/6376)) ([576aa14](https://github.com/starship/starship/commit/576aa14d15f57abf7d1c28e3486f2682e45c2f62))
|
||||
* **status:** add trailing space to `pipestatus_format` ([#6404](https://github.com/starship/starship/issues/6404)) ([8a38b8f](https://github.com/starship/starship/commit/8a38b8f6f19fa6f17098e32f22183beac0498764))
|
||||
* **username:** avoid using `whoami` on android ([#6342](https://github.com/starship/starship/issues/6342)) ([af5d139](https://github.com/starship/starship/commit/af5d139060bbb60690196dc53e05424ac3c0fb5d)), closes [#6340](https://github.com/starship/starship/issues/6340)
|
||||
|
||||
## [1.21.1](https://github.com/starship/starship/compare/v1.21.0...v1.21.1) (2024-10-18)
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* "perf(fish): Skip unnecessary indirection in starship init fish" ([#6326](https://github.com/starship/starship/issues/6326)) ([00d927b](https://github.com/starship/starship/commit/00d927bb20e618b587635876d2e10047f98eff88))
|
||||
|
||||
## [1.21.0](https://github.com/starship/starship/compare/v1.20.1...v1.21.0) (2024-10-17)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **deno:** add `deno.lock` file to default `detect_files` list ([#6310](https://github.com/starship/starship/issues/6310)) ([22c6c52](https://github.com/starship/starship/commit/22c6c5201d8fa682ad43501cf46427263a530c71))
|
||||
* **hostname:** add option to replace hostnames with aliases ([#6097](https://github.com/starship/starship/issues/6097)) ([68a8fc9](https://github.com/starship/starship/commit/68a8fc9563a52c4119241375d181ff68bb3d3da3))
|
||||
* **mojo:** add module for Mojo language ([#6108](https://github.com/starship/starship/issues/6108)) ([171746a](https://github.com/starship/starship/commit/171746a58408cbc0d48dedc52e21327bd35fccd4))
|
||||
* **package:** support alternative gradle module version syntax ([#6079](https://github.com/starship/starship/issues/6079)) ([a62012e](https://github.com/starship/starship/commit/a62012e3280238b4c794bbe484b296af3b8fb53a))
|
||||
* **python:** Add detect env vars option ([#4486](https://github.com/starship/starship/issues/4486)) ([8a2d944](https://github.com/starship/starship/commit/8a2d944bc80a0a8358c30e639e8af51c1d45d973))
|
||||
* **python:** detect pixi and ipynb files ([#6228](https://github.com/starship/starship/issues/6228)) ([36134d8](https://github.com/starship/starship/commit/36134d896bda3c739ffd6555be62499716b0a9b0))
|
||||
* **release:** codesign windows release binaries ([#6273](https://github.com/starship/starship/issues/6273)) ([fcc697b](https://github.com/starship/starship/commit/fcc697b9b31aef44aefaf9a6660d51d44f707149))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bash:** fix variable leak in Bash integration ([#6143](https://github.com/starship/starship/issues/6143)) ([e1189ed](https://github.com/starship/starship/commit/e1189ed7567de580d8f51c8baf870056a6060789))
|
||||
* **cmd_duration:** Make render_time format more consistent ([#5825](https://github.com/starship/starship/issues/5825)) ([4abea6b](https://github.com/starship/starship/commit/4abea6b601c53adfa5719a7aac11069dc054cdf8))
|
||||
* **docker_context:** Ignore Docker Desktop "desktop-linux" context. ([#6314](https://github.com/starship/starship/issues/6314)) ([14babde](https://github.com/starship/starship/commit/14babde435f6307a8a28f9d323f0d66a319e9eab))
|
||||
* **docs:** correct username options ([#6084](https://github.com/starship/starship/issues/6084)) ([d96fbc5](https://github.com/starship/starship/commit/d96fbc5bcb9c039f875c4a55cff31edda57d5e6e))
|
||||
* **fish:** add missing arguments for fish transient prompt functions ([#6181](https://github.com/starship/starship/issues/6181)) ([d6814be](https://github.com/starship/starship/commit/d6814be0ba35dd52f6f0d0e1a3f14d5f106efd63)), closes [#6180](https://github.com/starship/starship/issues/6180)
|
||||
* **fish:** improve fish transient prompt ([#6107](https://github.com/starship/starship/issues/6107)) ([274dff3](https://github.com/starship/starship/commit/274dff37dbb375821a90d6976a11cf57d9386e4f))
|
||||
* **fish:** use correct input function in transient execute ([#6265](https://github.com/starship/starship/issues/6265)) ([244c2c6](https://github.com/starship/starship/commit/244c2c629e1f358bf849923531d5cf0d69c2db2d))
|
||||
* Fixed "Click to download TOML" links ([#6234](https://github.com/starship/starship/issues/6234)) ([0200d75](https://github.com/starship/starship/commit/0200d75b3781977d5335e637858f4e0996ee0384))
|
||||
* **git_status:** read proper name for core.fsmonitor flag ([#6173](https://github.com/starship/starship/issues/6173)) ([33b3b8e](https://github.com/starship/starship/commit/33b3b8e3986f6180a8f7b461a5a07fea702ec628))
|
||||
* **package:** support alternative gradle module version syntax ([#6080](https://github.com/starship/starship/issues/6080)) ([a62012e](https://github.com/starship/starship/commit/a62012e3280238b4c794bbe484b296af3b8fb53a))
|
||||
* **python:** improve parsing of `pyvenv.cfg` files ([#6145](https://github.com/starship/starship/issues/6145)) ([7b65ad5](https://github.com/starship/starship/commit/7b65ad51635463003941ec0ecea1d4d315b2df53))
|
||||
* use `whoami` for user/hostname queries again ([#6311](https://github.com/starship/starship/issues/6311)) ([77f0883](https://github.com/starship/starship/commit/77f08832d5228dff6c0e01ba4d4ad206c9d2362f))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **fish:** Skip unnecessary indirection in starship init fish ([#6253](https://github.com/starship/starship/issues/6253)) ([798f640](https://github.com/starship/starship/commit/798f64033f5348793003ddd74fa0ce1c744c300b))
|
||||
* Skip unnecessary indirection in starship init fish ([798f640](https://github.com/starship/starship/commit/798f64033f5348793003ddd74fa0ce1c744c300b))
|
||||
|
||||
## [1.20.1](https://github.com/starship/starship/compare/v1.20.0...v1.20.1) (2024-07-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **ci:** move to macos-latest image ([#6132](https://github.com/starship/starship/issues/6132)) ([c7a8ea7](https://github.com/starship/starship/commit/c7a8ea757033512b5723a39be71bdb91fdcfbdb1))
|
||||
|
||||
## [1.20.0](https://github.com/starship/starship/compare/v1.19.0...v1.20.0) (2024-07-26)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **color:** add prev_fg and prev_bg as color specifiers based on the previous foreground/background colors respectively ([#6017](https://github.com/starship/starship/issues/6017)) ([9a3e87f](https://github.com/starship/starship/commit/9a3e87f2cbaa8ca4b8dea41f4f56ff297e94bb1a))
|
||||
* **color:** add prevfg,prevbg as color specifiers based on the previous foreground/background colors respectively ([9a3e87f](https://github.com/starship/starship/commit/9a3e87f2cbaa8ca4b8dea41f4f56ff297e94bb1a))
|
||||
* **gcloud:** Disabled gcloud module when active config hasn't been set ([#6039](https://github.com/starship/starship/issues/6039)) ([4d36d46](https://github.com/starship/starship/commit/4d36d463b91a245a62c357de308cad3cdec48edf))
|
||||
* **purescript:** add support for spago-next configuration files ([#6036](https://github.com/starship/starship/issues/6036)) ([e028186](https://github.com/starship/starship/commit/e0281868c9d7801fc25f64f86ab8312d2a5a1794))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **direnv:** replace nonexistent "orange" color with "bright-yellow" ([#5969](https://github.com/starship/starship/issues/5969)) ([478d5cc](https://github.com/starship/starship/commit/478d5cccb6f7f4622dd681756cf004ba92c98607))
|
||||
* **dotnet:** Remove duplicate v in dotnet version ([#6060](https://github.com/starship/starship/issues/6060)) ([52a89a5](https://github.com/starship/starship/commit/52a89a515ed44d861ea556a0bb70d6901660a9b5))
|
||||
* improve non-msvc windows support by bumping stable dependencies ([#5989](https://github.com/starship/starship/issues/5989)) ([50a6b84](https://github.com/starship/starship/commit/50a6b846045899c88d95b063a6b939a6dcb72a5c))
|
||||
* **k8s:** don't trigger if scan config is set but env vars are not ([#5979](https://github.com/starship/starship/issues/5979)) ([8c75822](https://github.com/starship/starship/commit/8c75822d4380e020ebd289a4ef06cd4d31ee5196))
|
||||
* **preset:** fix typo in Open Policy Agent module format string ([#6118](https://github.com/starship/starship/issues/6118)) ([eba9748](https://github.com/starship/starship/commit/eba9748eb1bd9e1802d2a770eb0907cdb73292d6))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **k8s:** Improve performance of kubeconfig module ([#6032](https://github.com/starship/starship/issues/6032)) ([fae92b2](https://github.com/starship/starship/commit/fae92b29646f73bf1eb843fde80885c58480e85b))
|
||||
|
||||
## [1.19.0](https://github.com/starship/starship/compare/v1.18.2...v1.19.0) (2024-05-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **container:** show name if available ([#5195](https://github.com/starship/starship/issues/5195)) ([3e3f18e](https://github.com/starship/starship/commit/3e3f18ef277c9bb3db9f60c964f280c7d981102c))
|
||||
* **gleam:** Add Gleam module ([#5886](https://github.com/starship/starship/issues/5886)) ([34a8f7e](https://github.com/starship/starship/commit/34a8f7e62845fd66df3f6f9003cb850f2b0d9bc5))
|
||||
* **k8s:** Add detect env vars option ([#4488](https://github.com/starship/starship/issues/4488)) ([e3b5dff](https://github.com/starship/starship/commit/e3b5dff3524608328de6ee3cbb390f8c640b0ce0))
|
||||
* **nats:** Add NATS Context ([#5900](https://github.com/starship/starship/issues/5900)) ([5facd85](https://github.com/starship/starship/commit/5facd85da56d28e74878286923f148bc468f71c3))
|
||||
* **odin:** Add Odin Lang module ([#5873](https://github.com/starship/starship/issues/5873)) ([335c514](https://github.com/starship/starship/commit/335c514e9ee5fa5bc8a8294b4804ddf198504b97))
|
||||
* **username:** add aliases option ([#5855](https://github.com/starship/starship/issues/5855)) ([9c1eadd](https://github.com/starship/starship/commit/9c1eaddae154daed9e1d00faac414586f7920013))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bash:** fix handling of the preserved DEBUG trap (used in Bash <= 4.3) ([#5908](https://github.com/starship/starship/issues/5908)) ([fe1a8df](https://github.com/starship/starship/commit/fe1a8df6fa5121cc83b288cf054a8ed16631d335))
|
||||
* **bash:** use `eval` instead of a procsub for the POSIX mode ([#5020](https://github.com/starship/starship/issues/5020)) ([0f859e8](https://github.com/starship/starship/commit/0f859e8b61c8ada354f4ea4147fb8752dca02c51))
|
||||
* **bash:** use eval instead of a procsub for the POSIX mode ([0f859e8](https://github.com/starship/starship/commit/0f859e8b61c8ada354f4ea4147fb8752dca02c51))
|
||||
* **bun:** change default icon ([#5880](https://github.com/starship/starship/issues/5880)) ([be4e97c](https://github.com/starship/starship/commit/be4e97c2d9169cbf0bc30e271dd4ba07530dc46f))
|
||||
* **scala:** use scala-cli first to avoid timeout ([2221a88](https://github.com/starship/starship/commit/2221a88f5ada124c657a265b878e37be47998766))
|
||||
* **xonsh:** remove `| cat` workaround from xonsh init ([#5113](https://github.com/starship/starship/issues/5113)) ([de5b7f0](https://github.com/starship/starship/commit/de5b7f041a8c88ecf912b3be3b32d70f76518348))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **scala:** use scala-cli first to avoid timeout ([#5952](https://github.com/starship/starship/issues/5952)) ([2221a88](https://github.com/starship/starship/commit/2221a88f5ada124c657a265b878e37be47998766))
|
||||
|
||||
## [1.18.2](https://github.com/starship/starship/compare/v1.18.1...v1.18.2) (2024-03-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* replace unmaintained crates `yaml-rust`, `dirs-next` ([#5887](https://github.com/starship/starship/issues/5887)) ([796a411](https://github.com/starship/starship/commit/796a411602c9ca4e5103c54247440f4efe892918))
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* "build(deps): update rust crate gix to 0.61.1" ([#5878](https://github.com/starship/starship/issues/5878)) ([eb80dba](https://github.com/starship/starship/commit/eb80dbab99e38b5018aa3fb70b06ae9e4d793b24))
|
||||
|
||||
## [1.18.1](https://github.com/starship/starship/compare/v1.18.0...v1.18.1) (2024-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** update rust crate os_info to 3.8.2 ([#5870](https://github.com/starship/starship/issues/5870)) ([d421f63](https://github.com/starship/starship/commit/d421f63785f901caf222941cbfae7cb8c0feec74))
|
||||
* replace all remaining paths referring to vuepress ([#5859](https://github.com/starship/starship/issues/5859)) ([d5861f9](https://github.com/starship/starship/commit/d5861f9f974147d307c319865890cbb3e50dbe5a))
|
||||
|
||||
## [1.18.0](https://github.com/starship/starship/compare/v1.17.1...v1.18.0) (2024-03-21)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* $gemset variable for Ruby module ([#5429](https://github.com/starship/starship/issues/5429)) ([938ea3c](https://github.com/starship/starship/commit/938ea3c40145af68d8e28b2ef0275531f1123202))
|
||||
* **bash:** Support right prompt and transience ([#4902](https://github.com/starship/starship/issues/4902)) ([5ead13d](https://github.com/starship/starship/commit/5ead13d6aa6303c85c562f1b940048cc539667cd))
|
||||
* **bash:** use PS0 for preexec hook ([#5735](https://github.com/starship/starship/issues/5735)) ([ae711c0](https://github.com/starship/starship/commit/ae711c0f332f4f24c843e59d6d5783e398e21b38))
|
||||
* **direnv:** use JSON status with direnv >= 2.33.0 ([#5692](https://github.com/starship/starship/issues/5692)) ([482c7b7](https://github.com/starship/starship/commit/482c7b719fc304fcad5f3572c4551f8ff4179522))
|
||||
* **docs:** move to vitepress ([#5785](https://github.com/starship/starship/issues/5785)) ([7485c90](https://github.com/starship/starship/commit/7485c90c9f7259c026a84dd0335f56860005315d))
|
||||
* **install:** Add version option to install script ([f66bfd9](https://github.com/starship/starship/commit/f66bfd9435f215867681a699428bd882d8c63ce7))
|
||||
* **install:** Add version option to install script ([#5728](https://github.com/starship/starship/issues/5728)) ([f66bfd9](https://github.com/starship/starship/commit/f66bfd9435f215867681a699428bd882d8c63ce7))
|
||||
* **os:** add new os symbols ([#5849](https://github.com/starship/starship/issues/5849)) ([df65b21](https://github.com/starship/starship/commit/df65b2155f92c03d07cabbcee6c92104a878c963))
|
||||
* **quarto:** Add Quarto module ([#5820](https://github.com/starship/starship/issues/5820)) ([0e49f04](https://github.com/starship/starship/commit/0e49f04a6b249090cf3703c5dac041a51e6bf530))
|
||||
* **release:** add winget arm64 push & repo sync ([#5033](https://github.com/starship/starship/issues/5033)) ([aef1a3f](https://github.com/starship/starship/commit/aef1a3f275e7ec9095c4718ecf6a268abfe7794a))
|
||||
* **username:** add detect_env_vars as option ([#5833](https://github.com/starship/starship/issues/5833)) ([b8a812b](https://github.com/starship/starship/commit/b8a812b93207da992ff8ae9f8b955bfa1252072b))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bash:** Handle Unbound Variables Errors in Bash ([#4972](https://github.com/starship/starship/issues/4972)) ([7093d5c](https://github.com/starship/starship/commit/7093d5cd84967edba93c9ed412b07519664f6356))
|
||||
* **bash:** improve integration with bash-preexec ([#5734](https://github.com/starship/starship/issues/5734)) ([2aa711c](https://github.com/starship/starship/commit/2aa711ccc7096437e21149b18d1384534bfbcc57))
|
||||
* **character:** also handle vi edit mode in pwsh ([#5775](https://github.com/starship/starship/issues/5775)) ([0891ec2](https://github.com/starship/starship/commit/0891ec27a40421cd742a853885731aed63f412aa))
|
||||
* **direnv:** update to work with direnv v2.33 ([#5657](https://github.com/starship/starship/issues/5657)) ([cec111a](https://github.com/starship/starship/commit/cec111affdaf0a52f72c398f8307cf7e19c7dd8d))
|
||||
* **git_branch:** fall back to "HEAD" when there is no current branch ([#5768](https://github.com/starship/starship/issues/5768)) ([6a96e84](https://github.com/starship/starship/commit/6a96e84a15e3ea598356e4fcad23ac4b2690dd1e))
|
||||
* **nu:** continuation prompt not being displayed correctly ([#5851](https://github.com/starship/starship/issues/5851)) ([d308e91](https://github.com/starship/starship/commit/d308e918ee014f4ca9976683e79e819afd8160f7))
|
||||
* **status:** fix pipestatus width calculation ([#5036](https://github.com/starship/starship/issues/5036)) ([ab84043](https://github.com/starship/starship/commit/ab840439e326a80c53466c7b767d29be0112b9d2)), closes [#3162](https://github.com/starship/starship/issues/3162)
|
||||
* **zsh:** improve starship binary path escaping ([#5574](https://github.com/starship/starship/issues/5574)) ([2bb57cf](https://github.com/starship/starship/commit/2bb57cf0cd6d53194d26f4be96dff5fa14942622))
|
||||
|
||||
## [1.17.1](https://github.com/starship/starship/compare/v1.17.0...v1.17.1) (2024-01-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* v1.17.0 post-release fix-ups ([#5660](https://github.com/starship/starship/issues/5660)) ([89dc192](https://github.com/starship/starship/commit/89dc19214bb671fe50a8f1be79a4594e7998ddea))
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* refactor(modules): use whoami crate to get username ([#5669](https://github.com/starship/starship/issues/5669)) ([a83e107](https://github.com/starship/starship/commit/a83e10776ba37bd1ab439e5e4d0125a06e947728))
|
||||
|
||||
## [1.17.0](https://github.com/starship/starship/compare/v1.16.0...v1.17.0) (2023-12-28)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add additional exit status code meanings from libc ([#5412](https://github.com/starship/starship/issues/5412)) ([81c7d0c](https://github.com/starship/starship/commit/81c7d0cc5805dc10018f0589a6671e1b727a0e9c))
|
||||
* add typst module ([7b21705](https://github.com/starship/starship/commit/7b217056bdb8dcb5b328b51fa3b68fe837f9fb3c))
|
||||
* **aws:** Adding the AWS SSO CLI env variable to profile list ([#5640](https://github.com/starship/starship/issues/5640)) ([6d96df3](https://github.com/starship/starship/commit/6d96df3c6828161bb9dc922fe45ef35a1ce33771))
|
||||
* **direnv:** add new direnv module ([#5157](https://github.com/starship/starship/issues/5157)) ([e47bfba](https://github.com/starship/starship/commit/e47bfbabb9b7d6af12a29db9413a6ec03fba174b))
|
||||
* **fossil_metrics:** add fossil_metrics module ([#4874](https://github.com/starship/starship/issues/4874)) ([e867cda](https://github.com/starship/starship/commit/e867cda1eb90ba452768bd2e0738afc2fd0db613))
|
||||
* **hostname:** add detect_env_vars as option ([#5196](https://github.com/starship/starship/issues/5196)) ([43b2d42](https://github.com/starship/starship/commit/43b2d42cd526e34c5f0290e7409fbd6d3a54e908))
|
||||
* **kubernetes:** Add styling based on current context ([#4550](https://github.com/starship/starship/issues/4550)) ([6b444e0](https://github.com/starship/starship/commit/6b444e05c688f9b871d0fe4624cd5559eba1f95c))
|
||||
* R lang packages version, remove .Rprofile from rlang detection ([#5588](https://github.com/starship/starship/issues/5588)) ([5267c46](https://github.com/starship/starship/commit/5267c464eb5e4b23e44cdb7c56919991f4f67ae3))
|
||||
* **scanner:** add option not to follow symlinks ([#5325](https://github.com/starship/starship/issues/5325)) ([7b851fc](https://github.com/starship/starship/commit/7b851fc30e109213e911eec38460315872f1ae59))
|
||||
* **shell:** allow distinguishing between pwsh and powershell ([#5478](https://github.com/starship/starship/issues/5478)) ([d7a34b4](https://github.com/starship/starship/commit/d7a34b45f88ced63bd79a582c14a6b2f8ebd9544))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bash:** unbound variable error with STARSHIP_PREEXEC_READY ([#5438](https://github.com/starship/starship/issues/5438)) ([8168c21](https://github.com/starship/starship/commit/8168c21293de8118af1e95778b1eee8f26cd6d6a))
|
||||
* **docker_context:** ignore unix domain socket path from Docker Context ([#5616](https://github.com/starship/starship/issues/5616)) ([a910e09](https://github.com/starship/starship/commit/a910e094f77ba6d67349a561e5e9780becfe823a)), closes [#5548](https://github.com/starship/starship/issues/5548)
|
||||
* **git_status:** Avoid printing error on missing stash ref ([#5434](https://github.com/starship/starship/issues/5434)) ([00d3dc8](https://github.com/starship/starship/commit/00d3dc86a21d11aede96f81ffbe49babe487984e))
|
||||
* **git:** prevent `core.fsmonitor` from executing external commands ([#3981](https://github.com/starship/starship/issues/3981)) ([03278e4](https://github.com/starship/starship/commit/03278e4de4f540cbd0e346e9df878c7e6798d757))
|
||||
* **install:** do not use curl installed through snap ([#5442](https://github.com/starship/starship/issues/5442)) ([0e73817](https://github.com/starship/starship/commit/0e738175c57d5789350b996b69c5713aac03835e))
|
||||
* **pastel-powerline:** remove `$path` from docker-context module format string ([#5534](https://github.com/starship/starship/issues/5534)) ([6abc83d](https://github.com/starship/starship/commit/6abc83decdf176842985b4daa5b09771c6b93415))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **git_status:** avoid running in bare repos ([#5581](https://github.com/starship/starship/issues/5581)) ([ac4a839](https://github.com/starship/starship/commit/ac4a83910357d69950ca304a3fb41d1d39bc3592))
|
||||
* Skip unnecessary indirection in starship init zsh ([#5322](https://github.com/starship/starship/issues/5322)) ([5ca8daa](https://github.com/starship/starship/commit/5ca8daacd4ce936f97170f814a780b34bfaa486e))
|
||||
|
||||
## [1.16.0](https://github.com/starship/starship/compare/v1.15.0...v1.16.0) (2023-07-30)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **pwsh:** Support vi command mode indicator ([#5049](https://github.com/starship/starship/issues/5049)) ([3180509](https://github.com/starship/starship/commit/318050976b58f032a17ff4d122d21cb63faf8e3b))
|
||||
* **shlvl:** add repeat_offset for repeated symbol ([#5289](https://github.com/starship/starship/issues/5289)) ([3402f0e](https://github.com/starship/starship/commit/3402f0e82aab907a77f0967abb99d4cde512c069))
|
||||
* update the nushell init file and make it valid module and overlay ([#5188](https://github.com/starship/starship/issues/5188)) ([470aeb0](https://github.com/starship/starship/commit/470aeb09a72936a66937d68f96165a977b5c213d))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bash:** Clear out completed jobs before counting NUM_JOBS ([#5253](https://github.com/starship/starship/issues/5253)) ([0a05b5c](https://github.com/starship/starship/commit/0a05b5ca8b7f147ead6d575297ef9f34191193af))
|
||||
* **rprompt:** remove lprompt modules from `$all` again ([#5067](https://github.com/starship/starship/issues/5067)) ([b9a4b08](https://github.com/starship/starship/commit/b9a4b08ac24805061c5faaef98ccbee7b018f5f0))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **git_status:** query git stash count via gitoxide ([#5238](https://github.com/starship/starship/issues/5238)) ([410f107](https://github.com/starship/starship/commit/410f107c722a2f07737d4be01960f2621bf418dd))
|
||||
|
||||
## [1.15.0](https://github.com/starship/starship/compare/v1.14.2...v1.15.0) (2023-06-06)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* Add Solidity Module ([#5047](https://github.com/starship/starship/issues/5047)) ([b2ebd5b](https://github.com/starship/starship/commit/b2ebd5b50c62fe5eb1cf8f5b0f79deaff2edd059))
|
||||
* add typechange to git_status module ([#4829](https://github.com/starship/starship/issues/4829)) ([edb96ca](https://github.com/starship/starship/commit/edb96cad580e5c414c34a4f64476a64a20595459))
|
||||
* **aws:** support aws sso with automatic authentication refresh ([#5170](https://github.com/starship/starship/issues/5170)) ([297176b](https://github.com/starship/starship/commit/297176b0b8b9da34176d7b278837f77f960799b1))
|
||||
* **azure:** subscription name aliases ([#4949](https://github.com/starship/starship/issues/4949)) ([27ffa37](https://github.com/starship/starship/commit/27ffa37cfdf2eff9874e543f88fa389bf5c2dae3))
|
||||
* **gcloud:** add `detect_env_vars` option ([#5166](https://github.com/starship/starship/issues/5166)) ([d07a8e3](https://github.com/starship/starship/commit/d07a8e3668838223aeeb94e810a0b29806e35f78))
|
||||
* **git_metrics:** add option to ignore submodules ([#5052](https://github.com/starship/starship/issues/5052)) ([ce01423](https://github.com/starship/starship/commit/ce014231521c981260ff7c1018acf694c65c97fe))
|
||||
* **golang:** adding `mod_version` variable ([#5177](https://github.com/starship/starship/issues/5177)) ([351bf9d](https://github.com/starship/starship/commit/351bf9d0b382adcc3e073c1a293fd815bb623f37))
|
||||
* **nodejs:** Add `expected_version` variable ([#5081](https://github.com/starship/starship/issues/5081)) ([70d2014](https://github.com/starship/starship/commit/70d2014f3447e616fb45b63b2793b256e19aa631))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* bump libz-ng-sys ([#5218](https://github.com/starship/starship/issues/5218)) ([6ab8f40](https://github.com/starship/starship/commit/6ab8f4061fe816a78a310c01a993a5a4690369ff))
|
||||
* **config:** Make print-config not panic without a config ([#5001](https://github.com/starship/starship/issues/5001)) ([ce7f984](https://github.com/starship/starship/commit/ce7f984932a97b4ad3cd6e6ece8e1c3b6022ba99))
|
||||
* ensure nested style variables are processed during formatting ([e5cec9e](https://github.com/starship/starship/commit/e5cec9ea50963a45bb1c209abc747ee1983dcabd))
|
||||
* **presets:** Added ($style) to format in module 'sudo' in Bracketed Segments Preset ([#5146](https://github.com/starship/starship/issues/5146)) ([1bd6db5](https://github.com/starship/starship/commit/1bd6db58307c1945c3b0cabec8d6663730394377))
|
||||
* **snap:** Update snapcraft.yaml to add personal-files interface ([#5131](https://github.com/starship/starship/issues/5131)) ([b3ccc0f](https://github.com/starship/starship/commit/b3ccc0f05e451ada800d233613ef32756682249f))
|
||||
* **style:** ensure nested style variables are processed during formatting ([#5120](https://github.com/starship/starship/issues/5120)) ([e5cec9e](https://github.com/starship/starship/commit/e5cec9ea50963a45bb1c209abc747ee1983dcabd))
|
||||
* update of presets and default configuration to reflect changes in Nerd Fonts 3.0 ([#5162](https://github.com/starship/starship/issues/5162)) ([2558c45](https://github.com/starship/starship/commit/2558c4588b5bcc404df474c948de0b72b109be01))
|
||||
|
||||
## [1.14.2](https://github.com/starship/starship/compare/v1.14.1...v1.14.2) (2023-04-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **git_commit:** resolve panic on 32-bit targets ([#5095](https://github.com/starship/starship/issues/5095)) ([5ef90a6](https://github.com/starship/starship/commit/5ef90a615f73a9f240a3c63ab601db1302adb01d))
|
||||
|
||||
## [1.14.1](https://github.com/starship/starship/compare/v1.14.0...v1.14.1) (2023-04-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* bootstrap manifest for release-please ([#5087](https://github.com/starship/starship/issues/5087)) ([e392d14](https://github.com/starship/starship/commit/e392d14f4eb65d8761ea8bafb498d2a0d966dcef))
|
||||
* trigger release ([8bdb953](https://github.com/starship/starship/commit/8bdb953ad85068e182878c3295a94559a608ee31))
|
||||
* update the release-please manifest ([cd501ec](https://github.com/starship/starship/commit/cd501ecd9fb4b898d6d4472b46471a05a42b6052))
|
||||
|
||||
## [1.14.0](https://github.com/starship/starship/compare/v1.13.1...v1.14.0) (2023-04-10)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **aws:** add support for source_profile ([#3834](https://github.com/starship/starship/issues/3834)) ([d2801ac](https://github.com/starship/starship/commit/d2801ac44301dcef1f87ab5fd26abee36997f71d))
|
||||
* **aws:** add support for source_profile ([#4859](https://github.com/starship/starship/issues/4859)) ([d2801ac](https://github.com/starship/starship/commit/d2801ac44301dcef1f87ab5fd26abee36997f71d))
|
||||
* **aws:** Adds support for AWS_CREDENTIAL_EXPIRATION environment variable ([#5002](https://github.com/starship/starship/issues/5002)) ([74ce7fd](https://github.com/starship/starship/commit/74ce7fdbee071c28c77fd148d4ba02515f272d10))
|
||||
* **custom:** add option to check if pwd is in a repo ([#4822](https://github.com/starship/starship/issues/4822)) ([d29ce7c](https://github.com/starship/starship/commit/d29ce7c45d4ea21a6e14ad308bd50cb0e61d1ef8))
|
||||
* **fossil:** detection of Fossil check-outs in subdirectories ([#4910](https://github.com/starship/starship/issues/4910)) ([4bca74e](https://github.com/starship/starship/commit/4bca74eca29e159f0d6f27db432927012848408c))
|
||||
* **release:** handle chocolatey starship.portable and starship.install pkg publishing ([#4723](https://github.com/starship/starship/issues/4723)) ([b55774d](https://github.com/starship/starship/commit/b55774d3a68b32c0ed17983adeb6355e75c65f6b))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **fossil_branch:** fossil checkout database file name on windows ([#4978](https://github.com/starship/starship/issues/4978)) ([c07a21d](https://github.com/starship/starship/commit/c07a21d48abe4e01a96a2d1b641876207e8d02fb))
|
||||
* **fossil_branch:** use proper fossil checkout database file name on windows ([c07a21d](https://github.com/starship/starship/commit/c07a21d48abe4e01a96a2d1b641876207e8d02fb))
|
||||
* **gradle:** add support for unstable Gradle versions ([#5021](https://github.com/starship/starship/issues/5021)) ([f7fe41f](https://github.com/starship/starship/commit/f7fe41f9c6c455e8ced284ad2d55d2a51a5da748))
|
||||
* **init:** avoid cygpath for starship binary path ([#4970](https://github.com/starship/starship/issues/4970)) ([0ad0465](https://github.com/starship/starship/commit/0ad0465a7a3296b3223693c655f370b7aae0d441))
|
||||
* **java:** wrong version number when using Android Studio JDK ([#4966](https://github.com/starship/starship/issues/4966)) ([de7e948](https://github.com/starship/starship/commit/de7e94884bc309814f6af79d68d664efb513e093))
|
||||
* **preset:** add output-flag to avoid encoding issues ([#4926](https://github.com/starship/starship/issues/4926)) ([5e78226](https://github.com/starship/starship/commit/5e78226a3fbe722331f6f0a1d352bbc48d38247f))
|
||||
* **pulumi:** Fix formatting on pulumi module when using version ([#5038](https://github.com/starship/starship/issues/5038)) ([aef799b](https://github.com/starship/starship/commit/aef799bfb089c5d259354208a6bcd5a0b639888f))
|
||||
|
||||
## [1.13.1](https://github.com/starship/starship/compare/v1.13.0...v1.13.1) (2023-02-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* trigger release ([ff82fb9](https://github.com/starship/starship/commit/ff82fb99af88c007a18c7655fb0150c4415bb5db))
|
||||
|
||||
## [1.13.0](https://github.com/starship/starship/compare/v1.12.0...v1.13.0) (2023-02-24)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add pijul_channel module ([#4765](https://github.com/starship/starship/issues/4765)) ([67b6376](https://github.com/starship/starship/commit/67b6376e2ef0835350e3e856ade6602b6c187c42))
|
||||
* **config:** Adds support for --profile <custom profile name> ([#3467](https://github.com/starship/starship/issues/3467)) ([10433e3](https://github.com/starship/starship/commit/10433e31effb4040c47d02d565d1643bcf984fa6))
|
||||
* **env_var:** Add support for env_var.VAR in format ([#4497](https://github.com/starship/starship/issues/4497)) ([5d4cb6f](https://github.com/starship/starship/commit/5d4cb6ff8f6bd1915aa2c16162950b270f1759b1))
|
||||
* **fennel:** add fennel module ([#4717](https://github.com/starship/starship/issues/4717)) ([e93dbf8](https://github.com/starship/starship/commit/e93dbf86301e19a89bd64997d95ba63a64f473aa))
|
||||
* **fossil_branch:** add fossil_branch module ([#4806](https://github.com/starship/starship/issues/4806)) ([41eb98b](https://github.com/starship/starship/commit/41eb98b310cd8134cec7bd8dcb55869a984653cf))
|
||||
* **gradle:** add gradle module ([#4423](https://github.com/starship/starship/issues/4423)) ([220844d](https://github.com/starship/starship/commit/220844daa014046bedbc9ce703f8b18fbe267e3c))
|
||||
* **hg_branch:** Add support for mercurial topics and find hg root dir ([#4771](https://github.com/starship/starship/issues/4771)) ([8d2256a](https://github.com/starship/starship/commit/8d2256ab1d0ba288fb6ba9b9248bc2210ca01059))
|
||||
* **java:** Add `.sdkmanrc` for Java ([#4888](https://github.com/starship/starship/issues/4888)) ([07c2298](https://github.com/starship/starship/commit/07c2298965ee67300319c012bdf5fadbc8db4931))
|
||||
* **logger:** delete old logs & avoid more dup logs ([#4348](https://github.com/starship/starship/issues/4348)) ([e47ea57](https://github.com/starship/starship/commit/e47ea57db21125372aeeae87ce555855a98adaab))
|
||||
* **nix:** support new `nix shell` command ([#4724](https://github.com/starship/starship/issues/4724)) ([19fdf9b](https://github.com/starship/starship/commit/19fdf9bba59f6ae5a756b81d221a9dc3185208f5))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 'to to' -> 'to' ([8c2135f](https://github.com/starship/starship/commit/8c2135f55d4a8b1026ce3cf7055efde6ab47d13d))
|
||||
* **container:** reduce docker, podman and systemd confusion ([#4832](https://github.com/starship/starship/issues/4832)) ([85d683d](https://github.com/starship/starship/commit/85d683daf235854ffc356354c6b3ba7096de6193))
|
||||
* **fish:** enable transient prompt when in vi mode ([#4826](https://github.com/starship/starship/issues/4826)) ([9ac924e](https://github.com/starship/starship/commit/9ac924eb3f0f8faa6da0375d92fc1dc22b8ba721))
|
||||
* **git_commit:** fix potential test failure ([#4734](https://github.com/starship/starship/issues/4734)) ([27d167b](https://github.com/starship/starship/commit/27d167b7a202cd1da39a731813df155dacb4c81b))
|
||||
* Improve regex for extracting gradle package version from gradle.properties ([#4759](https://github.com/starship/starship/issues/4759)) ([9093891](https://github.com/starship/starship/commit/9093891acbe2c86b1615c37386dadbb0cc632199))
|
||||
* let-env warning when using nushell ([#4893](https://github.com/starship/starship/issues/4893)) ([e6c5571](https://github.com/starship/starship/commit/e6c5571fc9c1f47c711d5fcdd1799ced5b546454))
|
||||
* **nodejs:** apply `style` even if node version is unavailable ([#4713](https://github.com/starship/starship/issues/4713)) ([e88484d](https://github.com/starship/starship/commit/e88484d5674b7c038346ff1c89089e535d2e2d6d))
|
||||
* **package:** Improve regex for extracting gradle version from gradle.properties ([#4760](https://github.com/starship/starship/issues/4760)) ([9093891](https://github.com/starship/starship/commit/9093891acbe2c86b1615c37386dadbb0cc632199))
|
||||
* Remove vulnerable time-0.1.x chrono dependency ([#4750](https://github.com/starship/starship/issues/4750)) ([255f91c](https://github.com/starship/starship/commit/255f91c3ce896f71b874f260b61f86232485d823))
|
||||
|
||||
## [1.12.0](https://github.com/starship/starship/compare/v1.11.0...v1.12.0) (2022-12-13)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add Haxe support ([#4395](https://github.com/starship/starship/issues/4395)) ([2766c78](https://github.com/starship/starship/commit/2766c78749e638282d1dee56f7afcc195c16c064))
|
||||
* Add operating system module ([#4109](https://github.com/starship/starship/issues/4109)) ([3109943](https://github.com/starship/starship/commit/3109943822a15b22faaa6cdfda17ca9554bcd800))
|
||||
* **aws:** add a fallback for `expiration` key ([#4455](https://github.com/starship/starship/issues/4455)) ([5a2c85d](https://github.com/starship/starship/commit/5a2c85d078c1a8c83cc055dd0e56033abb15c2bf))
|
||||
* **azure:** add username to azure module config ([#4323](https://github.com/starship/starship/issues/4323)) ([6e15c00](https://github.com/starship/starship/commit/6e15c00238a06e92cf411a669590002eb22324e7))
|
||||
* **bug-report:** ask for confirmation before opening issue ([#4543](https://github.com/starship/starship/issues/4543)) ([8bb9038](https://github.com/starship/starship/commit/8bb9038431cd369e953ca156ed09aabd7c2ba326))
|
||||
* **directory:** add before_repo_root_style ([#4595](https://github.com/starship/starship/issues/4595)) ([ea6249b](https://github.com/starship/starship/commit/ea6249b5243acf0cce2352a1b580479546b92340))
|
||||
* **git_commit:** support showing lightweight tags ([#4632](https://github.com/starship/starship/issues/4632)) ([ac37792](https://github.com/starship/starship/commit/ac37792c19d7c545d4c51cf712f13e5e81559511))
|
||||
* **guix_shell:** Initial implementation ([#4397](https://github.com/starship/starship/issues/4397)) ([d4bcc51](https://github.com/starship/starship/commit/d4bcc519e61524e1fe30f82412a09af113d75287))
|
||||
* **init:** Use which-rs to resolve starship path ([cc2c8c4](https://github.com/starship/starship/commit/cc2c8c4a5450f2811612129abfbdc1aba12def91))
|
||||
* **localip:** use reserved remote address ([#4648](https://github.com/starship/starship/issues/4648)) ([ddd54e9](https://github.com/starship/starship/commit/ddd54e9b20427b716e13d83884b4b0db03953210)), closes [#4614](https://github.com/starship/starship/issues/4614)
|
||||
* **nu:** enable right prompt ([#4490](https://github.com/starship/starship/issues/4490)) ([a7abc0f](https://github.com/starship/starship/commit/a7abc0f4508b5357e44bc1d0a8b0ed363201824c)), closes [#3982](https://github.com/starship/starship/issues/3982)
|
||||
* Open Policy Agent module ([#1740](https://github.com/starship/starship/issues/1740)) ([#4441](https://github.com/starship/starship/issues/4441)) ([865e68d](https://github.com/starship/starship/commit/865e68da3ad752a2bc85b923258f2dbd5287ada8))
|
||||
* **package:** added showing gradle version based on the gradle.properties file ([#4432](https://github.com/starship/starship/issues/4432)) ([14ee81b](https://github.com/starship/starship/commit/14ee81b9c31047993217f060b57fb327a58c0d38))
|
||||
* **preset:** Add No Empty Icons preset ([#4518](https://github.com/starship/starship/issues/4518)) ([1a3d51f](https://github.com/starship/starship/commit/1a3d51fe76c5a62d53533f5d14ceb4425d5a33a5))
|
||||
* **preset:** Add no-nerd-font preset ([#4517](https://github.com/starship/starship/issues/4517)) ([4d86a4c](https://github.com/starship/starship/commit/4d86a4c7ae70dff552cdea85d7ea7872e2321c2f))
|
||||
* **release:** add chocolatey publishing ([#4637](https://github.com/starship/starship/issues/4637)) ([df37e8d](https://github.com/starship/starship/commit/df37e8d40c7b3556f8428ce29c53f2882af2ce25))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **aws:** enable when using .aws/credentials ([#4604](https://github.com/starship/starship/issues/4604)) ([c8ac877](https://github.com/starship/starship/commit/c8ac8777a593358868813254c662da5fcb9fe6c8))
|
||||
* **buf:** broken icon on windows 10 ([#4689](https://github.com/starship/starship/issues/4689)) ([7341607](https://github.com/starship/starship/commit/7341607c294a633477005d777bd03b18522aabf4))
|
||||
* **ci:** cache after selecting the toolchain ([#4619](https://github.com/starship/starship/issues/4619)) ([e4dbff0](https://github.com/starship/starship/commit/e4dbff0fc7e88f792b90703f03f83e31d401b90e))
|
||||
* **config:** unrecognized config properties don't cause config error ([#4547](https://github.com/starship/starship/issues/4547)) ([1b03ef2](https://github.com/starship/starship/commit/1b03ef21f34fc4acf890b01cfca3d07158ef5c46))
|
||||
* **container:** avoid detecting WSL as a systemd-container ([#4593](https://github.com/starship/starship/issues/4593)) ([b47a4fe](https://github.com/starship/starship/commit/b47a4fe51470a36116b5c941c6e07ac5730585ea))
|
||||
* don't attempt to display cmd_duration notification if in TTY ([#4535](https://github.com/starship/starship/issues/4535)) ([0427863](https://github.com/starship/starship/commit/04278631687da388005f2c26f3da2115b9075bf5))
|
||||
* **git:** check `tag_disabled` option ([#4527](https://github.com/starship/starship/issues/4527)) ([fd165b9](https://github.com/starship/starship/commit/fd165b96cc9587f81ab68b580d371b71f4e0ff35))
|
||||
* **java:** Improved regex for Java version (starship[#4610](https://github.com/starship/starship/issues/4610)) ([#4616](https://github.com/starship/starship/issues/4616)) ([a9eb65e](https://github.com/starship/starship/commit/a9eb65ef35de948880cbf340ffbfe6af126e5e44))
|
||||
* **nu:** remove -c parameter from `term size` ([#4477](https://github.com/starship/starship/issues/4477)) ([4999530](https://github.com/starship/starship/commit/49995301ce90a0f63b2d5f9cbb30021a0f08f6ff))
|
||||
* **pwsh:** fix error log display on older versions of pwsh ([#4650](https://github.com/starship/starship/issues/4650)) ([ef83e7a](https://github.com/starship/starship/commit/ef83e7a0928231b02650b3554ccd5bf21164aaff))
|
||||
* **status:** replace multiply with cross mark emoji ([#4461](https://github.com/starship/starship/issues/4461)) ([186d99e](https://github.com/starship/starship/commit/186d99e623d22fe9e2f7e52378f2ec4015f713d4))
|
||||
|
||||
## [1.11.0](https://github.com/starship/starship/compare/v1.10.3...v1.11.0) (2022-10-14)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add user-defined color palette ([#4209](https://github.com/starship/starship/issues/4209)) ([d93074d](https://github.com/starship/starship/commit/d93074d0569db4bafb1788aa3f39136b734b5370))
|
||||
* **fish:** Enable left and right transience ([#4204](https://github.com/starship/starship/issues/4204)) ([06281c2](https://github.com/starship/starship/commit/06281c268d74a85d5b28e953bea251a2115f5568))
|
||||
* **module:** Add a meson devenv indicator ([#4389](https://github.com/starship/starship/issues/4389)) ([355800f](https://github.com/starship/starship/commit/355800f8147b1755a5289dc679e2147abd662daf))
|
||||
* **schema:** deny unknown keys ([#4270](https://github.com/starship/starship/issues/4270)) ([b5d3d8f](https://github.com/starship/starship/commit/b5d3d8fcf331cdff6d0e687dcdbac77351731475))
|
||||
* **status:** Support formatting of pipestatus separator ([#4264](https://github.com/starship/starship/issues/4264)) ([6e35dfa](https://github.com/starship/starship/commit/6e35dfa85aeebb3f714389a9286623dc0f60d799))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **buf:** fix spacing & harmonize docs with actual configuration ([#4450](https://github.com/starship/starship/issues/4450)) ([3d45236](https://github.com/starship/starship/commit/3d452367bdde22a2554cc74bee4d1adfee7e8e04))
|
||||
* **directory:** don't strip duplicate directory names twice ([#4295](https://github.com/starship/starship/issues/4295)) ([801fbab](https://github.com/starship/starship/commit/801fbab720e1bb94c32bb1aa10966a0637a10e63))
|
||||
* **pwsh:** avoid potential deadlock in init ([#4335](https://github.com/starship/starship/issues/4335)) ([fd55397](https://github.com/starship/starship/commit/fd5539796f7a2b3750d1889b55a563d84b628bee))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **directory:** Skip repo resolution if unused by directory config ([#4401](https://github.com/starship/starship/issues/4401)) ([227ec32](https://github.com/starship/starship/commit/227ec32d9d7e9d673360d487062fd4bef184e844))
|
||||
|
||||
## [1.10.3](https://github.com/starship/starship/compare/v1.10.2...v1.10.3) (2022-09-07)
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **git_commit:** only use exact match for tag by default ([#4281](https://github.com/starship/starship/issues/4281)) ([5984f08](https://github.com/starship/starship/commit/5984f0829ef5369e83c28108378fe0065a617b3c))
|
||||
|
||||
## [1.10.2](https://github.com/starship/starship/compare/v1.10.1...v1.10.2) (2022-08-18)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **git:** upgrade `gitoxide` to v0.21 ([#4277](https://github.com/starship/starship/issues/4277)) ([f52ae55](https://github.com/starship/starship/commit/f52ae552d3ef2c0c0c6de6429cee7b8271f14671))
|
||||
|
||||
## [1.10.1](https://github.com/starship/starship/compare/v1.10.0...v1.10.1) (2022-08-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Disable multithreading in `jwalk` (via `gitoxide`) as workaround for [#4251](https://github.com/starship/starship/issues/4251) ([#4258](https://github.com/starship/starship/issues/4258)) ([37b54f7](https://github.com/starship/starship/commit/37b54f7ac3ba53ea851b478501a96a7c4e188fc4))
|
||||
|
||||
## [1.10.0](https://github.com/starship/starship/compare/v1.9.1...v1.10.0) (2022-08-14)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add bun module ([#4187](https://github.com/starship/starship/issues/4187)) ([85692d1](https://github.com/starship/starship/commit/85692d1bf6a8477b6879adaf8b51007389df4328))
|
||||
* Add starship preset command ([#4112](https://github.com/starship/starship/issues/4112)) ([c8a5adb](https://github.com/starship/starship/commit/c8a5adb412e98b07017ffa0edea5554b0a23b840))
|
||||
* Add support for blink, hidden, and strikethrough styles. ([#4138](https://github.com/starship/starship/issues/4138)) ([aaab920](https://github.com/starship/starship/commit/aaab920f88015eb0a44e6514bf19b1db2b14829f))
|
||||
* Add the ability to have some file extensions *prevent* a module from triggering ([#4043](https://github.com/starship/starship/issues/4043)) ([dd73447](https://github.com/starship/starship/commit/dd73447329e637ee207b1103ecb6a4bdbdc89324))
|
||||
* Enable transience for Cmd and PowerShell ([#4143](https://github.com/starship/starship/issues/4143)) ([6e9c013](https://github.com/starship/starship/commit/6e9c013e60e59660cb7ae6289af5ed129ca85996))
|
||||
* **git:** replace `git2` with `git-repository` ([#3883](https://github.com/starship/starship/issues/3883)) ([ac55a01](https://github.com/starship/starship/commit/ac55a01d0ffe907ef7af48c9597c0bca4dbd8c69))
|
||||
* **k8s:** Add folder detection to the k8s module. ([#4157](https://github.com/starship/starship/issues/4157)) ([5c5969c](https://github.com/starship/starship/commit/5c5969c50b2490309b7ae9f7e6f5f75ea04a512d))
|
||||
* **package:** support cargo workspace versions ([#4161](https://github.com/starship/starship/issues/4161)) ([0a1235e](https://github.com/starship/starship/commit/0a1235e27944f152ca195c32e7eef8985d475989))
|
||||
* **status:** Add pipestatus_segment_format option to status module ([#4103](https://github.com/starship/starship/issues/4103)) ([6143848](https://github.com/starship/starship/commit/61438484bdc76601a185298f14337cfb4d5b4e0b))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **aws:** support official `AWS_SHARED_CREDENTIALS_FILE` variable ([#4242](https://github.com/starship/starship/issues/4242)) ([1390036](https://github.com/starship/starship/commit/13900368826cf1aca160fd650f19cecc1a047372))
|
||||
* **timings:** count time spent on custom on 'when' command failure ([#4121](https://github.com/starship/starship/issues/4121)) ([aae1ed0](https://github.com/starship/starship/commit/aae1ed04babf4c7d8baaad670c076947d7200675))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **pulumi:** allow disabling upwards discovery ([#4159](https://github.com/starship/starship/issues/4159)) ([af15de9](https://github.com/starship/starship/commit/af15de93c4494bb08d8c2cb3dbf54951f6bc9239))
|
||||
* **rust:** avoid calling `rustup` in more conditions ([#4174](https://github.com/starship/starship/issues/4174)) ([d8ac940](https://github.com/starship/starship/commit/d8ac940098eb16417742723c627d0de864597410))
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **master:** release 1.10.0 ([b974610](https://github.com/starship/starship/commit/b9746100e2ee3746ea418e26ebc50494710a9d03))
|
||||
|
||||
## [1.9.1](https://github.com/starship/starship/compare/v1.9.0...v1.9.1) (2022-06-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* regenerate changelog ([8a6be8c](https://github.com/starship/starship/commit/8a6be8c941de8e31330417bdb232204969a814ff))
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **master:** release 1.9.1 ([6cbc362](https://github.com/starship/starship/commit/6cbc3620c9ee7695fe1dabc067b6fd339b8d2526))
|
||||
|
||||
## [1.9.0](https://github.com/starship/starship/compare/v1.8.0...v1.9.0) (2022-06-26)
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ If you have any questions that aren't addressed in this document, please don't h
|
||||
|
||||
- **Module**: A component in the prompt giving information based on contextual information from your OS. For example, the `rust` module shows the version of Rust that is currently installed on your computer, if your current directory is a Rust project.
|
||||
|
||||
- **Segment**: Smaller subcomponents that compose a module. For example, the `symbol` segment in the `rust` module contains the character that is shown before the version number (`🦀` by default).
|
||||
- **Segment**: Smaller sub-components that compose a module. For example, the `symbol` segment in the `rust` module contains the character that is shown before the version number (`🦀` by default).
|
||||
|
||||
## Philosophy
|
||||
|
||||
@@ -50,7 +50,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
||||
|
||||
## External commands
|
||||
|
||||
To run an external command (e.g. to get the version of a tool) and to allow for mocking use the `context.exec_cmd` function. Here's a quick example:
|
||||
To run a external command (e.g. to get the version of a tool) and to allow for mocking use the `context.exec_cmd` function. Here's a quick example:
|
||||
|
||||
```rust
|
||||
use super::{Context, Module, ModuleConfig};
|
||||
@@ -127,7 +127,7 @@ STARSHIP_LOG=trace cargo run
|
||||
|
||||
## Linting
|
||||
|
||||
Starship source files are linted with [clippy](https://crates.io/crates/clippy). Clippy will be run as part of CI. Linting errors will fail a build, so it is suggested that you run Clippy locally:
|
||||
Starship source files are linted with [clippy](https://crates.io/crates/clippy). Clippy will be ran as part of CI. Linting errors will fail a build, so it is suggested that you run Clippy locally:
|
||||
|
||||
```sh
|
||||
rustup component add clippy
|
||||
@@ -180,7 +180,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::test::ModuleRenderer;
|
||||
use nu_ansi_term::Color;
|
||||
use ansi_term::Color;
|
||||
use std::fs::File;
|
||||
use std::io;
|
||||
|
||||
@@ -218,7 +218,7 @@ mod tests {
|
||||
}
|
||||
```
|
||||
|
||||
If a module depends on output of another program, then that output should be added to the match statement in [`utils.rs`](src/utils.rs). The match has to be exactly the same as the call to `utils::exec_cmd()`, including positional arguments and flags. The array of arguments is joined by a `" "`, so `utils::exec_cmd("program", &["arg", "more_args"])` would match with the `program arg more_args` match statement.
|
||||
If a module depends on output of another program, then that output should be added to the match statement in [`utils.rs`](src/utils.rs). The match has to be exactly the same as the call to `utils::exec_cmd()`, including positional arguments and flags. The array of arguments are joined by a `" "`, so `utils::exec_cmd("program", &["arg", "more_args"])` would match with the `program arg more_args` match statement.
|
||||
|
||||
If the program cannot be mocked (e.g. It performs some filesystem operations, either writing or reading files) then it has to added to the project's GitHub Actions workflow file([`.github/workflows/workflow.yml`](.github/workflows/workflow.yml)) and the test has to be marked with an `#[ignored]`. This ensures that anyone can run the test suite locally without needing to pre-configure their environment. The `#[ignored]` attribute is bypassed during CI runs in GitHub Actions.
|
||||
|
||||
@@ -251,7 +251,7 @@ Changes to documentation can be viewed in a rendered state from the GitHub PR pa
|
||||
(go to the CI section at the bottom of the page and look for "deploy preview", then
|
||||
click on "details"). If you want to view changes locally as well, follow these steps.
|
||||
|
||||
After cloning the project, you can do the following to run the VitePress website on your local machine:
|
||||
After cloning the project, you can do the following to run the VuePress website on your local machine:
|
||||
|
||||
1. `cd` into the `/docs` directory.
|
||||
2. Install the project dependencies:
|
||||
@@ -266,17 +266,17 @@ After cloning the project, you can do the following to run the VitePress website
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Once setup is complete, you can refer to VitePress documentation on the actual implementation here: <https://vitepress.dev/guide/getting-started>.
|
||||
Once setup is complete, you can refer to VuePress documentation on the actual implementation here: <https://vuepress.vuejs.org/guide/>.
|
||||
|
||||
## Git/GitHub workflow
|
||||
|
||||
This is our preferred process for opening a PR on GitHub:
|
||||
|
||||
1. Fork this repository
|
||||
2. Create a branch off of `main` for your work: `git checkout -b my-feature-branch`
|
||||
2. Create a branch off of `master` for your work: `git checkout -b my-feature-branch`
|
||||
3. Make some changes, committing them along the way
|
||||
4. When your changes are ready for review, push your branch: `git push origin my-feature-branch`
|
||||
5. Create a pull request from your branch to `starship/main`
|
||||
5. Create a pull request from your branch to `starship/master`
|
||||
6. No need to assign the pull request to anyone, we'll review it when we can
|
||||
7. When the changes have been reviewed and approved, someone will squash and merge for you
|
||||
|
||||
@@ -292,7 +292,7 @@ everyone remember what they are. Don't worry: most of them are quite simple!
|
||||
appropriate--this is a bare minimum).
|
||||
- [ ] Add the variable to the appropriate location in the "Default Prompt
|
||||
Format" section of the documentation
|
||||
- [ ] Add an appropriate choice of options to each preset in `docs/public/presets/toml`
|
||||
- [ ] Add an appropriate choice of options to each preset in `docs/presets/README.md`
|
||||
- [ ] Update the config file schema by running `cargo run --features config-schema -- config-schema > .github/config-schema.json`
|
||||
- [ ] Create configs structs/traits in `src/configs/<module>.rs` and add the
|
||||
following:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
[package]
|
||||
name = "starship"
|
||||
version = "1.25.1"
|
||||
version = "1.9.0"
|
||||
authors = ["Starship Contributors"]
|
||||
build = "build.rs"
|
||||
categories = ["command-line-utilities"]
|
||||
documentation = "https://starship.rs/guide/"
|
||||
edition = "2024"
|
||||
edition = "2021"
|
||||
homepage = "https://starship.rs"
|
||||
# Keep `/` in front of `README.md` to exclude localized readmes
|
||||
include = [
|
||||
@@ -15,15 +15,16 @@ include = [
|
||||
"build.rs",
|
||||
"LICENSE",
|
||||
"/README.md",
|
||||
"docs/public/presets/toml/",
|
||||
"docs/.vuepress/public/presets/toml/",
|
||||
".github/config-schema.json",
|
||||
]
|
||||
keywords = ["prompt", "shell", "bash", "fish", "zsh"]
|
||||
license = "ISC"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/starship/starship"
|
||||
# MSRV is specified due to our dependency in git2
|
||||
# Note: MSRV is only intended as a hint, and only the latest version is officially supported in starship.
|
||||
rust-version = "1.90"
|
||||
rust-version = "1.60"
|
||||
description = """
|
||||
The minimal, blazing-fast, and infinitely customizable prompt for any shell! ☄🌌️
|
||||
"""
|
||||
@@ -35,71 +36,67 @@ config-schema = ["schemars"]
|
||||
notify = ["notify-rust"]
|
||||
|
||||
[dependencies]
|
||||
clap = { version = "4.6.1", features = ["derive", "cargo", "unicode"] }
|
||||
clap_complete = "4.6.5"
|
||||
clap_complete_nushell = "4.6.0"
|
||||
dirs = "6.0.0"
|
||||
dunce = "1.0.5"
|
||||
# default feature restriction addresses https://github.com/starship/starship/issues/4251
|
||||
gix = { version = "0.84.0", default-features = false, features = ["max-performance-safe", "revision", "zlib-rs", "status", "sha1"] }
|
||||
indexmap = { version = "2.14.0", features = ["serde"] }
|
||||
jiff = { version = "0.2.28", features = ["serde"] }
|
||||
jsonc-parser = { version = "0.32.4", features = ["serde"] }
|
||||
log = { version = "0.4.30", features = ["std"] }
|
||||
# notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix
|
||||
ansi_term = "0.12.1"
|
||||
chrono = "0.4.19"
|
||||
clap = { version = "=3.2.6", features = ["derive", "cargo", "unicode", "unstable-v4"] }
|
||||
clap_complete = "3.2.2"
|
||||
dirs-next = "2.0.0"
|
||||
dunce = "1.0.2"
|
||||
gethostname = "0.2.3"
|
||||
git2 = { version = "0.14.4", default-features = false }
|
||||
indexmap = { version = "1.9.1", features = ["serde"] }
|
||||
local_ipaddress = "0.1.3"
|
||||
log = { version = "0.4.16", features = ["std"] }
|
||||
# nofity-rust is optional (on by default) because the crate doesn't currently build for darwin with nix
|
||||
# see: https://github.com/NixOS/nixpkgs/issues/160876
|
||||
notify-rust = { version = "4.18.0", optional = true }
|
||||
nu-ansi-term = "0.50.3"
|
||||
open = "5.3.5"
|
||||
# update os module config and tests when upgrading os_info
|
||||
os_info = { version = "3.15.0", features = ["schemars"] }
|
||||
# for efficient shared state between `git_status` and `git_metrics`, allowing parallel printing. This is for poison-free locks.
|
||||
parking_lot = "0.12.5"
|
||||
path-slash = "0.2.1"
|
||||
pest = "2.8.6"
|
||||
pest_derive = "2.8.6"
|
||||
process_control = "5.2.0"
|
||||
quick-xml = "0.40.1"
|
||||
rand = "0.10.1"
|
||||
rayon = "1.12.0"
|
||||
regex = { version = "1.12.4", default-features = false, features = ["perf", "std", "unicode-perl"] }
|
||||
rust-ini = "0.21.3"
|
||||
semver = "1.0.28"
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
serde_json = "1.0.150"
|
||||
sha1 = "0.11.0"
|
||||
shadow-rs = { version = "2.0.0", default-features = false, features = ["build"] }
|
||||
notify-rust = { version = "4.5.8", optional = true }
|
||||
once_cell = "1.12.0"
|
||||
open = "3.0.1"
|
||||
os_info = "3.4.0"
|
||||
path-slash = "0.1.4"
|
||||
pest = "2.1.3"
|
||||
pest_derive = "2.1.0"
|
||||
quick-xml = "0.23.0"
|
||||
rand = "0.8.5"
|
||||
rayon = "1.5.3"
|
||||
regex = "1.5.6"
|
||||
rust-ini = "0.18.0"
|
||||
semver = "1.0.10"
|
||||
serde = { version = "1.0.137", features = ["derive"] }
|
||||
serde_json = "1.0.81"
|
||||
sha-1 = "0.10.0"
|
||||
shadow-rs = "0.11.0"
|
||||
# battery is optional (on by default) because the crate doesn't currently build for Termux
|
||||
# see: https://github.com/svartalf/rust-battery/issues/33
|
||||
starship-battery = { version = "0.11.0", optional = true }
|
||||
strsim = "0.11.1"
|
||||
systemstat = "=0.2.7"
|
||||
tempfile = "3.27.0"
|
||||
terminal_size = "0.4.4"
|
||||
toml = { version = "1.1.2", features = ["preserve_order"] }
|
||||
toml_edit = "0.25.12"
|
||||
unicode-segmentation = "1.13.3"
|
||||
unicode-width = "0.2.2"
|
||||
urlencoding = "2.1.3"
|
||||
versions = "7.0.0"
|
||||
which = "8.0.4"
|
||||
whoami = { version = "2.1.2", default-features = false, features = ["std", "wasi-wasite"] }
|
||||
yaml-rust2 = "0.11.0"
|
||||
starship-battery = { version = "0.7.9", optional = true }
|
||||
strsim = "0.10.0"
|
||||
systemstat = "=0.1.11"
|
||||
terminal_size = "0.1.17"
|
||||
toml = { version = "0.5.9", features = ["preserve_order"] }
|
||||
toml_edit = "0.14.4"
|
||||
unicode-segmentation = "1.9.0"
|
||||
unicode-width = "0.1.9"
|
||||
urlencoding = "2.1.0"
|
||||
versions = "4.1.0"
|
||||
which = "4.2.5"
|
||||
yaml-rust = "0.4.5"
|
||||
|
||||
guess_host_triple = "0.1.5"
|
||||
home = "0.5.12"
|
||||
shell-words = "1.1.1"
|
||||
process_control = { version = "3.5.1", features = ["crossbeam-channel"] }
|
||||
|
||||
guess_host_triple = "0.1.3"
|
||||
home = "0.5.3"
|
||||
shell-words = "1.1.0"
|
||||
|
||||
[dependencies.schemars]
|
||||
version = "1.2.1"
|
||||
version = "0.8.10"
|
||||
optional = true
|
||||
features = ["preserve_order", "indexmap2"]
|
||||
features = ["preserve_order", "indexmap"]
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
deelevate = "0.2.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies.windows]
|
||||
version = "0.62.2"
|
||||
version = "0.38.0"
|
||||
features = [
|
||||
"Win32_Foundation",
|
||||
"Win32_UI_Shell",
|
||||
@@ -109,27 +106,22 @@ features = [
|
||||
]
|
||||
|
||||
[target.'cfg(not(windows))'.dependencies]
|
||||
nix = { version = "0.31.3", default-features = false, features = ["feature", "fs", "user"] }
|
||||
nix = { version = "0.24.1", default-features = false, features = ["feature", "fs", "user"] }
|
||||
|
||||
[build-dependencies]
|
||||
shadow-rs = { version = "2.0.0", default-features = false, features = ["build"] }
|
||||
dunce = "1.0.5"
|
||||
shadow-rs = "0.11.0"
|
||||
|
||||
[target.'cfg(windows)'.build-dependencies]
|
||||
winres = "0.1.12"
|
||||
|
||||
[dev-dependencies]
|
||||
mockall = "=0.14.0"
|
||||
mockall = "0.11"
|
||||
tempfile = "3.2.0"
|
||||
|
||||
[profile.release]
|
||||
codegen-units = 1
|
||||
lto = true
|
||||
strip = true
|
||||
|
||||
[profile.bench]
|
||||
codegen-units = 16
|
||||
lto = "thin"
|
||||
strip = false
|
||||
|
||||
[lints.clippy]
|
||||
use_self = "warn"
|
||||
[[bin]]
|
||||
name = "starship"
|
||||
path = "src/main.rs"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<p align="center">
|
||||
<img
|
||||
width="400"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/logo.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/logo.png"
|
||||
alt="Starship – Cross-shell prompt"
|
||||
/>
|
||||
</p>
|
||||
@@ -9,7 +9,7 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/actions"
|
||||
><img
|
||||
src="https://img.shields.io/github/actions/workflow/status/starship/starship/workflow.yml?branch=main&label=workflow&style=flat-square"
|
||||
src="https://img.shields.io/github/workflow/status/starship/starship/Main workflow/master?label=workflow&style=flat-square"
|
||||
alt="GitHub Actions workflow status"
|
||||
/></a>
|
||||
<a href="https://crates.io/crates/starship"
|
||||
@@ -32,11 +32,6 @@
|
||||
src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square"
|
||||
alt="Follow @StarshipPrompt on Twitter"
|
||||
/></a>
|
||||
<a href="https://stand-with-ukraine.pp.ua"
|
||||
><img
|
||||
src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraineFlat.svg"
|
||||
alt="Stand With Ukraine"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -48,125 +43,108 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/blob/main/README.md"
|
||||
<a href="https://github.com/starship/starship/blob/master/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-us.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-us.png"
|
||||
alt="English"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/de-DE/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/de-DE/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-de.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-de.png"
|
||||
alt="Deutsch"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/es-ES/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/es-ES/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-es.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-es.png"
|
||||
alt="Español"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/fr-FR/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/fr-FR/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-fr.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-fr.png"
|
||||
alt="Français"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/id-ID/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/id-ID/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-id.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-id.png"
|
||||
alt="Bahasa Indonesia"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/it-IT/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/it-IT/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-it.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-it.png"
|
||||
alt="Italiano"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/ja-JP/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/ja-JP/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-jp.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-jp.png"
|
||||
alt="日本語"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/pt-BR/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/pt-BR/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-br.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-br.png"
|
||||
alt="Português do Brasil"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/ru-RU/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/ru-RU/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-ru.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png"
|
||||
alt="Русский"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/uk-UA/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/vi-VN/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-ua.png"
|
||||
alt="Українська"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/vi-VN/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-vn.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-vn.png"
|
||||
alt="Tiếng Việt"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/zh-CN/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/zh-CN/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-cn.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-cn.png"
|
||||
alt="简体中文"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/main/docs/zh-TW/guide/README.md"
|
||||
href="https://github.com/starship/starship/blob/master/docs/zh-TW/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/flag-tw.png"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-tw.png"
|
||||
alt="繁體中文"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
[](https://vshymanskyy.github.io/StandWithUkraine)
|
||||
|
||||
<h1></h1>
|
||||
|
||||
> [!WARNING]
|
||||
> **The default branch has been renamed from `master` to `main`.**
|
||||
> If you have a local clone, update it by running:
|
||||
>
|
||||
> ```sh
|
||||
> git branch -m master main
|
||||
> git fetch origin
|
||||
> git branch -u origin/main main
|
||||
> git remote set-head origin -a
|
||||
> ```
|
||||
|
||||
<img
|
||||
src="https://raw.githubusercontent.com/starship/starship/main/media/demo.gif"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/demo.gif"
|
||||
alt="Starship with iTerm2 and the Snazzy theme"
|
||||
width="50%"
|
||||
align="right"
|
||||
@@ -191,7 +169,7 @@
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)).
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [Fira Code Nerd Font](https://www.nerdfonts.com/font-downloads)).
|
||||
|
||||
### Step 1. Install Starship
|
||||
|
||||
@@ -237,16 +215,15 @@ Alternatively, install Starship using any of the following package managers:
|
||||
| **_Any_** | **[crates.io]** | `cargo install starship --locked` |
|
||||
| _Any_ | [conda-forge] | `conda install -c conda-forge starship` |
|
||||
| _Any_ | [Linuxbrew] | `brew install starship` |
|
||||
| _Any_ | [Snapcraft] | `snap install starship` |
|
||||
| Alpine Linux 3.13+ | [Alpine Linux Packages] | `apk add starship` |
|
||||
| Arch Linux | [Arch Linux Extra] | `pacman -S starship` |
|
||||
| Arch Linux | [Arch Linux Community] | `pacman -S starship` |
|
||||
| CentOS 7+ | [Copr] | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Debian 13+ | [Debian Main] | `apt install starship` |
|
||||
| Fedora 40+ | [Copr] | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Fedora 31+ | [Fedora Packages] | `dnf install starship` |
|
||||
| NixOS | [nixpkgs] | `nix-env -iA nixos.starship` |
|
||||
| Gentoo | [Gentoo Packages] | `emerge app-shells/starship` |
|
||||
| Manjaro | | `pacman -S starship` |
|
||||
| NixOS | [nixpkgs] | `nix-env -iA nixpkgs.starship` |
|
||||
| openSUSE | [OSS] | `zypper in starship` |
|
||||
| Ubuntu 25.04+ | [Ubuntu Universe] | `apt install starship` |
|
||||
| Void Linux | [Void Linux Packages] | `xbps-install -S starship` |
|
||||
|
||||
</details>
|
||||
@@ -288,7 +265,7 @@ Install Starship using any of the following package managers:
|
||||
|
||||
</details>
|
||||
|
||||
### Step 2. Set up your shell to use Starship
|
||||
### Step 2. Setup your shell to use Starship
|
||||
|
||||
Configure your shell to initialize starship. Select yours from the list below:
|
||||
|
||||
@@ -318,13 +295,13 @@ load(io.popen('starship init cmd'):read("*a"))()
|
||||
<details>
|
||||
<summary>Elvish</summary>
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
Add the following to the end of `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
eval (starship init elvish)
|
||||
```
|
||||
|
||||
Note: Only Elvish v0.18+ is supported. For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
Note: Only Elvish v0.18+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -353,14 +330,20 @@ eval $(starship init ion)
|
||||
<details>
|
||||
<summary>Nushell</summary>
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.96+ is supported
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.61+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -421,11 +404,11 @@ If you're looking to further customize Starship:
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We are always looking for contributors of **all skill levels**! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/issues?q=state%3Aopen%20label%3A%22%F0%9F%8C%B1%20good%20first%20issue%22).
|
||||
We are always looking for contributors of **all skill levels**! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue).
|
||||
|
||||
If you are fluent in a non-English language, we greatly appreciate any help keeping our docs translated and up-to-date in other languages. If you would like to help, translations can be contributed on the [Starship Crowdin](https://translate.starship.rs/).
|
||||
|
||||
If you are interested in helping contribute to starship, please take a look at our [Contributing Guide](https://github.com/starship/starship/blob/main/CONTRIBUTING.md). Also, feel free to drop into our [Discord server](https://discord.gg/8Jzqu3T) and say hi. 👋
|
||||
If you are interested in helping contribute to starship, please take a look at our [Contributing Guide](https://github.com/starship/starship/blob/master/CONTRIBUTING.md). Also, feel free to drop into our [Discord server](https://discord.gg/8Jzqu3T) and say hi. 👋
|
||||
|
||||
## 💭 Inspired By
|
||||
|
||||
@@ -437,50 +420,32 @@ Please check out these previous works that helped inspire the creation of starsh
|
||||
|
||||
- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons.
|
||||
|
||||
## ❤️ Sponsors
|
||||
|
||||
Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website.
|
||||
|
||||
## 🔒 Code Signing Policy
|
||||
|
||||
Free code signing provided by [SignPath.io], certificate by [SignPath Foundation].
|
||||
|
||||
Code Signing Roles:
|
||||
|
||||
- Reviewers: [Astronauts](https://github.com/orgs/starship/teams/astronauts)
|
||||
- Approvers and Authors: [Mission Control](https://github.com/orgs/starship/teams/mission-control)
|
||||
|
||||
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<img width="100" src="https://raw.githubusercontent.com/starship/starship/main/media/icon.png" alt="Starship rocket icon">
|
||||
<img width="100" src="https://raw.githubusercontent.com/starship/starship/master/media/icon.png" alt="Starship rocket icon">
|
||||
</p>
|
||||
|
||||
## 📝 License
|
||||
|
||||
Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).<br>
|
||||
This project is [ISC](https://github.com/starship/starship/blob/main/LICENSE) licensed.
|
||||
This project is [ISC](https://github.com/starship/starship/blob/master/LICENSE) licensed.
|
||||
|
||||
[alpine linux packages]: https://pkgs.alpinelinux.org/packages?name=starship
|
||||
[arch linux extra]: https://archlinux.org/packages/extra/x86_64/starship
|
||||
[arch linux community]: https://archlinux.org/packages/community/x86_64/starship
|
||||
[chocolatey]: https://community.chocolatey.org/packages/starship
|
||||
[conda-forge]: https://anaconda.org/conda-forge/starship
|
||||
[copr]: https://copr.fedorainfracloud.org/coprs/atim/starship
|
||||
[crates.io]: https://crates.io/crates/starship
|
||||
[debian main]: https://sources.debian.org/src/starship/1.22.1-1/
|
||||
[fedora packages]: https://src.fedoraproject.org/rpms/rust-starship
|
||||
[freshports]: https://www.freshports.org/shells/starship
|
||||
[gentoo packages]: https://packages.gentoo.org/packages/app-shells/starship
|
||||
[linuxbrew]: https://formulae.brew.sh/formula/starship
|
||||
[homebrew]: https://formulae.brew.sh/formula/starship
|
||||
[macports]: https://ports.macports.org/port/starship
|
||||
[nixpkgs]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/starship/package.nix
|
||||
[OSS]: https://software.opensuse.org/package/starship
|
||||
[nixpkgs]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix
|
||||
[pkgsrc]: https://pkgsrc.se/shells/starship
|
||||
[scoop]: https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json
|
||||
[SignPath Foundation]: https://signpath.org
|
||||
[SignPath.io]: https://signpath.io
|
||||
[snapcraft]: https://snapcraft.io/starship
|
||||
[termux]: https://github.com/termux/termux-packages/tree/master/packages/starship
|
||||
[ubuntu universe]: https://packages.ubuntu.com/source/plucky/starship
|
||||
[void linux packages]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship
|
||||
[winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Starship/Starship
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# Security Reporting
|
||||
|
||||
If you wish to report a security vulnerability privately, we appreciate your diligence. Please follow the guidelines below to submit your report.
|
||||
|
||||
## Reporting
|
||||
|
||||
To report a security vulnerability, please provide the following information:
|
||||
|
||||
1. **PUBLIC**
|
||||
- Indicate whether this vulnerability has already been publicly discussed or disclosed.
|
||||
- If so, provide relevant links.
|
||||
|
||||
2. **DESCRIPTION**
|
||||
- Provide a detailed description of the security vulnerability.
|
||||
- Include as much information as possible to help us understand and address the issue.
|
||||
|
||||
Report this, along with any additional relevant details in [GitHub Advisory](https://github.com/starship/starship/security/advisories/new).
|
||||
|
||||
## Confidentiality
|
||||
|
||||
We kindly ask you to keep the report confidential until a public announcement is made.
|
||||
|
||||
## Notes
|
||||
|
||||
- Vulnerabilities will be handled on a best-effort basis.
|
||||
- You will be notified, via your GitHub Advisory report, about eventual patches.
|
||||
- We will respond within a few weeks to confirm whether your report has been accepted or rejected.
|
||||
|
||||
Thank you for helping to improve the security of Starship!
|
||||
@@ -1,13 +1,7 @@
|
||||
use std::fs::{self, File};
|
||||
use std::io;
|
||||
use std::io::Write;
|
||||
use std::error::Error;
|
||||
|
||||
use shadow_rs::SdResult;
|
||||
|
||||
fn main() -> SdResult<()> {
|
||||
shadow_rs::ShadowBuilder::builder()
|
||||
.hook(gen_presets_hook)
|
||||
.build()?;
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
shadow_rs::new().map_err(|err| err.to_string())?;
|
||||
|
||||
#[cfg(windows)]
|
||||
{
|
||||
@@ -19,45 +13,3 @@ fn main() -> SdResult<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn gen_presets_hook(mut file: &File) -> SdResult<()> {
|
||||
println!("cargo:rerun-if-changed=docs/public/presets/toml");
|
||||
let paths = fs::read_dir("docs/public/presets/toml")?;
|
||||
let mut sortedpaths = paths.collect::<io::Result<Vec<_>>>()?;
|
||||
sortedpaths.sort_by_key(std::fs::DirEntry::path);
|
||||
|
||||
let mut presets = String::new();
|
||||
let mut match_arms = String::new();
|
||||
for unwrapped in sortedpaths {
|
||||
let file_name = unwrapped.file_name();
|
||||
let full_path = dunce::canonicalize(unwrapped.path())?;
|
||||
let full_path = full_path.to_str().expect("failed to convert to string");
|
||||
let name = file_name
|
||||
.to_str()
|
||||
.and_then(|v| v.strip_suffix(".toml"))
|
||||
.expect("Failed to process filename");
|
||||
presets.push_str(format!("print::Preset(\"{name}\"),\n").as_str());
|
||||
match_arms.push_str(format!(r#""{name}" => include_str!(r"{full_path}"),"#).as_str());
|
||||
}
|
||||
|
||||
writeln!(
|
||||
file,
|
||||
r"
|
||||
use crate::print;
|
||||
|
||||
pub fn get_preset_list<'a>() -> &'a [print::Preset] {{
|
||||
&[
|
||||
{presets}
|
||||
]
|
||||
}}
|
||||
|
||||
pub fn get_preset_content(name: &str) -> &str {{
|
||||
match name {{
|
||||
{match_arms}
|
||||
_ => unreachable!(),
|
||||
}}
|
||||
}}
|
||||
"
|
||||
)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
[advisories]
|
||||
version = 2
|
||||
|
||||
# A list of advisory IDs to ignore. Note that ignored advisories will still
|
||||
# output a note when they are encountered.
|
||||
ignore = [
|
||||
# { id = "RUSTSEC-0000-0000", reason = "" },
|
||||
]
|
||||
|
||||
[licenses]
|
||||
version = 2
|
||||
|
||||
# List of explicitly allowed licenses
|
||||
allow = [
|
||||
"Apache-2.0 WITH LLVM-exception",
|
||||
"Apache-2.0",
|
||||
"BSD-2-Clause",
|
||||
"BSD-3-Clause",
|
||||
"CC0-1.0",
|
||||
"ISC",
|
||||
"MIT-0",
|
||||
"MIT",
|
||||
"MPL-2.0",
|
||||
"Unicode-DFS-2016",
|
||||
"Unicode-3.0",
|
||||
"Unlicense",
|
||||
"WTFPL",
|
||||
"Zlib",
|
||||
]
|
||||
confidence-threshold = 0.8
|
||||
|
||||
[bans]
|
||||
multiple-versions = "allow"
|
||||
wildcards = "warn"
|
||||
|
||||
[sources]
|
||||
unknown-registry = "warn"
|
||||
unknown-git = "warn"
|
||||
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|
||||
allow-git = []
|
||||
@@ -1,112 +0,0 @@
|
||||
.VPHero .container {
|
||||
flex-direction: column;
|
||||
text-align: center !important;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.VPHero .image {
|
||||
order: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.VPHero .image-container {
|
||||
transform: none;
|
||||
height: auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.VPHero .image-container {
|
||||
max-width: 320px;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.VPHero .image img {
|
||||
width: 100%;
|
||||
max-height: 130px;
|
||||
max-width: none;
|
||||
position: static;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.VPHero .image img.uwu {
|
||||
max-height: 290px;
|
||||
max-width: 80vw;
|
||||
}
|
||||
|
||||
.VPHero .container .actions {
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
.VPHero .main {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.demo-video {
|
||||
max-width: 700px;
|
||||
width: 100%;
|
||||
margin: 50px auto;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.action-button {
|
||||
background-color: #dd0b78 !important;
|
||||
border-bottom: #c6096b !important;
|
||||
}
|
||||
|
||||
p[align="center"] img {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
p[align="center"] img[height="20"] {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nerd Font';
|
||||
src: url("/nerd-font.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
unicode-range: U+e000-f8ff, U+f0000-fffff, U+100000-10ffff;
|
||||
}
|
||||
|
||||
code {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.vp-doc [class*='language-']>button.copy {
|
||||
top: unset;
|
||||
bottom: 12px;
|
||||
}
|
||||
|
||||
:root {
|
||||
--vp-font-family-mono: 'Nerd Font', source-code-pro, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
|
||||
--vp-c-brand-1: #9b0854;
|
||||
--vp-c-brand-2: #f31186;
|
||||
--vp-c-brand-3: #dd0b78;
|
||||
--vp-c-brand-soft: rgba(221, 11, 120, 0.14);
|
||||
/* The following colors were extracted from the dark variant of the default VitePress theme
|
||||
* Styled variables from: https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css#L319-L362
|
||||
*/
|
||||
--vp-code-block-bg: #282c34;
|
||||
--vp-code-color: #282c34;
|
||||
--vp-code-block-divider-color: #000;
|
||||
--vp-code-lang-color: rgba(235, 235, 245, 0.38);
|
||||
--vp-code-line-highlight-color: rgba(101, 117, 133, 0.16);
|
||||
--vp-code-line-number-color: rgba(235, 235, 245, 0.38);
|
||||
--vp-code-copy-code-border-color: #2e2e32;
|
||||
--vp-code-copy-code-bg: #202127;
|
||||
--vp-code-copy-code-hover-border-color: #2e2e32;
|
||||
--vp-code-copy-code-hover-bg: #1b1b1f;
|
||||
--vp-code-copy-code-active-text: rgba(235, 235, 245, 0.6);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-brand-1: #ff70cd;
|
||||
--vp-c-brand-2: #ff14ad;
|
||||
--vp-c-brand-3: #ff33b8;
|
||||
--vp-c-brand-soft: rgba(255, 51, 184, 0.14);
|
||||
--vp-code-color: #fff;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import "./index.css";
|
||||
|
||||
export default DefaultTheme;
|
||||
@@ -1,346 +1,91 @@
|
||||
import { defineConfig } from "vitepress";
|
||||
|
||||
const sidebar = (lang: string | undefined, override = {}) =>
|
||||
const sidebar = (lang, override = {}) =>
|
||||
[
|
||||
{ page: "guide", text: "Guide" }, // README, which should always have a override
|
||||
"", // "Home", which should always have a override
|
||||
"guide", // README, which should always have a override
|
||||
// Overrides for any page below is an inconsistency between the sidebar title and page title
|
||||
{ page: "installing", text: "Installation" },
|
||||
{ page: "config", text: "Configuration" },
|
||||
{ page: "advanced-config", text: "Advanced Configuration" },
|
||||
{ page: "faq", text: "FAQ" },
|
||||
{ page: "presets", text: "Presets" },
|
||||
].map(item => {
|
||||
"installing",
|
||||
"config",
|
||||
"advanced-config",
|
||||
"faq",
|
||||
"presets",
|
||||
].map(page => {
|
||||
let path = "/";
|
||||
|
||||
if (lang) {
|
||||
path += `${lang}/`;
|
||||
}
|
||||
|
||||
if (item.page) {
|
||||
path += `${item.page}/`;
|
||||
if (page) {
|
||||
path += `${page}/`;
|
||||
}
|
||||
|
||||
// If no override is set for current page, let VitePress fallback to page title
|
||||
return { link: path, text: override?.[item.page] ?? item.text };
|
||||
// If no override is set for current page, let VuePress fallback to page title
|
||||
return page in override ? [path, override[page]] : path;
|
||||
});
|
||||
|
||||
const editLinkPattern = 'https://github.com/starship/starship/edit/master/docs/:path';
|
||||
|
||||
export default defineConfig({
|
||||
module.exports = {
|
||||
locales: {
|
||||
root: {
|
||||
label: "English",
|
||||
"/": {
|
||||
lang: "en-US",
|
||||
title: "Starship",
|
||||
description: "The minimal, blazing-fast, and infinitely customizable prompt for any shell!",
|
||||
|
||||
themeConfig: {
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/config/"}],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("", {
|
||||
guide: "Guide",
|
||||
}),
|
||||
// Enable edit links
|
||||
editLink: {
|
||||
text: "Edit this page on GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
}
|
||||
},
|
||||
"de-DE": {
|
||||
label: "Deutsch",
|
||||
"/de-DE/": {
|
||||
lang: "de-DE",
|
||||
title: "Starship",
|
||||
description: "Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell!",
|
||||
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Sprachen",
|
||||
returnToTopLabel: "Zurück zum Seitenanfang",
|
||||
sidebarMenuLabel: "Menü",
|
||||
|
||||
nav: [{ text: "Konfiguration", link: "/de-DE/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("de-DE", {
|
||||
guide: "Anleitung",
|
||||
installing: "Erweiterte Installation",
|
||||
faq: "Häufig gestellte Fragen",
|
||||
presets: "Konfigurations-Beispiele",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Bearbeite diese Seite auf GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
}
|
||||
},
|
||||
"es-ES": {
|
||||
label: "Español",
|
||||
"/es-ES/": {
|
||||
lang: "es-ES",
|
||||
title: "Starship",
|
||||
description:
|
||||
"¡El prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Idiomas",
|
||||
returnToTopLabel: "Volver arriba",
|
||||
sidebarMenuLabel: "Menú",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuración", link: "/es-ES/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("es-ES", {
|
||||
guide: "Guía",
|
||||
installing: "Instalación avanzada",
|
||||
faq: "Preguntas frecuentes",
|
||||
presets: "Ajustes predeterminados",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Edita esta página en GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"fr-FR": {
|
||||
label: "Français",
|
||||
"/fr-FR/": {
|
||||
lang: "fr-FR",
|
||||
title: "Starship",
|
||||
description: "L'invite minimaliste, ultra-rapide et personnalisable à l'infini pour n'importe quel shell !",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Langues",
|
||||
returnToTopLabel: "Retour en haut",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/fr-FR/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("fr-FR", {
|
||||
guide: "Guide",
|
||||
installing: "Installation avancée",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Éditez cette page sur GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"id-ID": {
|
||||
label: "Bahasa Indonesia",
|
||||
"/id-ID/": {
|
||||
lang: "id-ID",
|
||||
title: "Starship",
|
||||
description: "Prompt yang minimal, super cepat, dan dapat disesuaikan tanpa batas untuk shell apa pun!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Languages",
|
||||
returnToTopLabel: "Kembali ke atas",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Konfigurasi", link: "/id-ID/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("id-ID", {
|
||||
guide: "Petunjuk",
|
||||
installing: "Advanced Installation",
|
||||
faq: "Pertanyaan Umum",
|
||||
presets: "Prasetel",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Sunting halaman ini di Github",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"it-IT": {
|
||||
label: "Italiano",
|
||||
"/it-IT/": {
|
||||
lang: "it-IT",
|
||||
title: "Starship",
|
||||
description: "Il prompt minimalista, super veloce e infinitamente personalizzabile per qualsiasi shell!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Languages",
|
||||
returnToTopLabel: "Torna all'inizio",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/it-IT/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("it-IT", {
|
||||
guide: "Guide",
|
||||
installing: "Installazione Avanzata",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Modifica questa pagina in Github",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"ja-JP": {
|
||||
label: "日本語",
|
||||
"/ja-JP/": {
|
||||
lang: "ja-JP",
|
||||
title: "Starship",
|
||||
description: "シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "言語",
|
||||
returnToTopLabel: "ページの先頭へ",
|
||||
sidebarMenuLabel: "メニュー",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "設定", link: "/ja-JP/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("ja-JP", {
|
||||
guide: "ガイド",
|
||||
installing: "高度なインストール",
|
||||
}),
|
||||
editLink: {
|
||||
text: "GitHub で編集する",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"pt-BR": {
|
||||
label: "Português do Brasil",
|
||||
"/pt-BR/": {
|
||||
lang: "pt-BR",
|
||||
title: "Starship",
|
||||
description:
|
||||
"O prompt minimalista, extremamente rápido e infinitamente personalizável para qualquer shell!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Languages",
|
||||
returnToTopLabel: "Voltar ao topo",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuração", link: "/pt-BR/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("pt-BR", {
|
||||
guide: "Guia",
|
||||
installing: "Instalação avançada",
|
||||
faq: "Perguntas frequentes",
|
||||
presets: "Predefinições",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Edite esta página no Github",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"ru-RU": {
|
||||
label: "Русский",
|
||||
"/ru-RU/": {
|
||||
lang: "ru-RU",
|
||||
title: "Starship",
|
||||
description: "Минималистичная, быстрая и бесконечно настраиваемая командная строка для любой оболочки!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Языки",
|
||||
returnToTopLabel: "Наверх",
|
||||
sidebarMenuLabel: "Меню",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Настройка", link: "/ru-RU/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("ru-RU", {
|
||||
guide: "Руководство",
|
||||
installing: "Advanced Installation",
|
||||
config: "Настройка",
|
||||
"advanced-config": "Расширенная Настройка",
|
||||
faq: "Часто Задаваемые Вопросы",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Редактировать эту страницу на GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"uk-UA": {
|
||||
label: "Українська",
|
||||
lang: "uk-UA",
|
||||
title: "Starship",
|
||||
description: "Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Мови",
|
||||
returnToTopLabel: "Догори",
|
||||
sidebarMenuLabel: "Меню",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Налаштування", link: "/uk-UA/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("uk-UA", {
|
||||
guide: "Керівництво",
|
||||
installing: "Розширене встановлення",
|
||||
config: "Налаштування",
|
||||
"advanced-config": "Розширені налаштування",
|
||||
faq: "Часті питання",
|
||||
presets: "Шаблони",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Редагувати цю сторінку на GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"vi-VN": {
|
||||
label: "Tiếng Việt",
|
||||
"/vi-VN/": {
|
||||
lang: "vi-VN",
|
||||
title: "Starship",
|
||||
description: "Nhỏ gọn, cực nhanh, và khả năng tuỳ chỉnh vô hạn prompt cho bất kì shell nào!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "Ngôn ngữ",
|
||||
returnToTopLabel: "Quay lại đầu trang",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Cấu hình", link: "/vi-VN/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("vi-VN", {
|
||||
guide: "Hướng dẫn",
|
||||
installing: "Cài đặt nâng cao",
|
||||
faq: "Các hỏi thường gặp",
|
||||
}),
|
||||
editLink: {
|
||||
text: "Chỉnh sửa trang này trên GitHub",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"zh-CN": {
|
||||
label: "简体中文",
|
||||
"/zh-CN/": {
|
||||
lang: "zh-CN",
|
||||
title: "Starship",
|
||||
description: "轻量级、反应迅速,可定制的高颜值终端!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "语言",
|
||||
returnToTopLabel: "返回顶部",
|
||||
sidebarMenuLabel: "目录",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "配置", link: "/zh-CN/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("zh-CN", {
|
||||
guide: "指南",
|
||||
installing: "高级安装",
|
||||
config: "配置",
|
||||
"advanced-config": "高级配置",
|
||||
faq: "常见问题",
|
||||
presets: "社区配置分享",
|
||||
}),
|
||||
editLink: {
|
||||
text: "在 GitHub 上修改此页",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
"zh-TW": {
|
||||
label: "繁體中文",
|
||||
"/zh-TW/": {
|
||||
lang: "zh-TW",
|
||||
title: "Starship",
|
||||
description: "適合任何 shell 的最小、極速、無限客製化的提示字元!",
|
||||
themeConfig: {
|
||||
// text for the language dropdown
|
||||
langMenuLabel: "語言",
|
||||
returnToTopLabel: "返回頂部",
|
||||
sidebarMenuLabel: "目錄",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "設定", link: "/zh-TW/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("zh-TW", {
|
||||
guide: "指引",
|
||||
installing: "進階安裝",
|
||||
}),
|
||||
editLink: {
|
||||
text: "在 GitHub 上修改此頁面",
|
||||
pattern: editLinkPattern,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
// prettier-ignore
|
||||
@@ -364,55 +109,233 @@ export default defineConfig({
|
||||
}],
|
||||
["meta", { name: "twitter:image", content: "https://starship.rs/icon.png" }],
|
||||
["meta", { name: "twitter:alt", content: "Starship: Cross-Shell Prompt" }],
|
||||
// Google Analytics
|
||||
[
|
||||
"script",
|
||||
{
|
||||
async: '',
|
||||
src: "https://www.googletagmanager.com/gtag/js?id=G-N3M0VJ9NL6",
|
||||
},
|
||||
],
|
||||
[
|
||||
"script",
|
||||
{},
|
||||
"window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-N3M0VJ9NL6');",
|
||||
],
|
||||
],
|
||||
sitemap: {
|
||||
hostname: 'https://starship.rs'
|
||||
},
|
||||
vite: {
|
||||
resolve: {
|
||||
preserveSymlinks: true
|
||||
}
|
||||
},
|
||||
cleanUrls: true,
|
||||
markdown: {
|
||||
theme: "github-dark"
|
||||
},
|
||||
ignoreDeadLinks: [
|
||||
/\/toml\/.*/,
|
||||
],
|
||||
// VitePress doesn't support README.md as index files
|
||||
// Rewrite README.md to index.md at different levels
|
||||
rewrites: {
|
||||
"README.md": "index.md",
|
||||
":c0/README.md": ":c0/index.md",
|
||||
":c0/:c1/README.md": ":c0/:c1/index.md",
|
||||
":c0/:c1/:c2/README.md": ":c0/:c1/:c2/index.md",
|
||||
":c0/:c1/:c2/:c3/README.md": ":c0/:c1/:c2/:c3/index.md",
|
||||
},
|
||||
evergreen: true,
|
||||
theme: "default-prefers-color-scheme",
|
||||
themeConfig: {
|
||||
logo: "/icon.png",
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/starship/starship' },
|
||||
],
|
||||
|
||||
// the GitHub repo path
|
||||
repo: "starship/starship",
|
||||
// the label linking to the repo
|
||||
repoLabel: "GitHub",
|
||||
// if your docs are not at the root of the repo:
|
||||
docsDir: "docs",
|
||||
// defaults to false, set to true to enable
|
||||
editLinks: true,
|
||||
// enables Algolia DocSearch
|
||||
algolia: {
|
||||
apiKey: "44118471f56286dcda7db941a043370d",
|
||||
indexName: "starship",
|
||||
appId: "M3XUO3SQOR",
|
||||
},
|
||||
}
|
||||
});
|
||||
locales: {
|
||||
"/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Languages",
|
||||
// label for this locale in the language dropdown
|
||||
label: "English",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Edit this page on GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("", {
|
||||
guide: "Guide",
|
||||
}),
|
||||
},
|
||||
"/de-DE/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Sprachen",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Deutsch",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Bearbeite diese Seite auf GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Konfiguration", link: "/de-DE/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("de-DE", {
|
||||
guide: "Anleitung",
|
||||
installing: "Erweiterte Installation",
|
||||
faq: "Häufig gestellte Fragen",
|
||||
presets: "Konfigurations-Beispiele",
|
||||
}),
|
||||
},
|
||||
"/es-ES/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Idiomas",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Español",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Edita esta página en GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuración", link: "/es-ES/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("es-ES", {
|
||||
guide: "Guía",
|
||||
installing: "Instalación avanzada",
|
||||
faq: "Preguntas frecuentes",
|
||||
presets: "Ajustes predeterminados",
|
||||
}),
|
||||
},
|
||||
"/fr-FR/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Langues",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Français",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Éditez cette page sur GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/fr-FR/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("fr-FR", {
|
||||
guide: "Guide",
|
||||
installing: "Installation avancée",
|
||||
}),
|
||||
},
|
||||
"/id-ID/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Languages",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Bahasa Indonesia",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Sunting halaman ini di Github",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Konfigurasi", link: "/id-ID/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("id-ID", {
|
||||
guide: "Petunjuk",
|
||||
installing: "Advanced Installation",
|
||||
faq: "Pertanyaan Umum",
|
||||
presets: "Prasetel",
|
||||
}),
|
||||
},
|
||||
"/it-IT/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Languages",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Italiano",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Modifica questa pagina in Github",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuration", link: "/it-IT/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("it-IT", {
|
||||
guide: "Guide",
|
||||
installing: "Installazione Avanzata",
|
||||
}),
|
||||
},
|
||||
"/ja-JP/": {
|
||||
// text for the language dropdown
|
||||
selectText: "言語",
|
||||
// label for this locale in the language dropdown
|
||||
label: "日本語",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "GitHub で編集する",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "設定", link: "/ja-JP/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("ja-JP", {
|
||||
guide: "ガイド",
|
||||
installing: "高度なインストール",
|
||||
}),
|
||||
},
|
||||
"/pt-BR/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Languages",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Português do Brasil",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Edite esta página no Github",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Configuração", link: "/pt-BR/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("pt-BR", {
|
||||
guide: "Guia",
|
||||
installing: "Instalação avançada",
|
||||
faq: "Perguntas frequentes",
|
||||
presets: "Predefinições",
|
||||
}),
|
||||
},
|
||||
"/ru-RU/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Языки",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Русский",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Редактировать эту страницу на GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Настройка", link: "/ru-RU/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("ru-RU", {
|
||||
guide: "Руководство",
|
||||
installing: "Advanced Installation",
|
||||
config: "Настройка",
|
||||
"advanced-config": "Расширенная Настройка",
|
||||
faq: "Часто Задаваемые Вопросы",
|
||||
}),
|
||||
},
|
||||
"/vi-VN/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Ngôn ngữ",
|
||||
// label for this locale in the language dropdown
|
||||
label: "Tiếng Việt",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Chỉnh sửa trang này trên GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Cấu hình", link: "/vi-VN/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("vi-VN", {
|
||||
guide: "Hướng dẫn",
|
||||
installing: "Cài đặt nâng cao",
|
||||
faq: "Các hỏi thường gặp",
|
||||
}),
|
||||
},
|
||||
"/zh-TW/": {
|
||||
// text for the language dropdown
|
||||
selectText: "語言",
|
||||
// label for this locale in the language dropdown
|
||||
label: "繁體中文",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "在 GitHub 上修改此頁面",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "設定", link: "/zh-TW/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("zh-TW", {
|
||||
guide: "指引",
|
||||
installing: "進階安裝",
|
||||
}),
|
||||
},
|
||||
"/zh-CN/": {
|
||||
// text for the language dropdown
|
||||
selectText: "语言",
|
||||
// label for this locale in the language dropdown
|
||||
label: "简体中文",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "在 GitHub 上修改此页",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "配置", link: "/zh-CN/config/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: sidebar("zh-CN", {
|
||||
guide: "指南",
|
||||
installing: "高级安装",
|
||||
presets: "社区配置分享",
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
[
|
||||
"@vuepress/google-analytics",
|
||||
{
|
||||
ga: "UA-71160903-4",
|
||||
},
|
||||
],
|
||||
[
|
||||
"sitemap",
|
||||
{
|
||||
hostname: "https://starship.rs",
|
||||
},
|
||||
],
|
||||
["vuepress-plugin-code-copy", true],
|
||||
],
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
../../../.github/config-schema.json
|
||||
@@ -0,0 +1 @@
|
||||
../../../media/icon.png
|
||||
@@ -0,0 +1 @@
|
||||
../../../install/install.sh
|
||||
@@ -0,0 +1 @@
|
||||
../../../media/logo.png
|
||||
@@ -0,0 +1 @@
|
||||
../../../media/logo.svg
|
||||
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 179 KiB |
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
@@ -1,20 +1,6 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
[aws]
|
||||
format = '\[[$symbol($profile)(\($region\))(\[$duration\])]($style)\]'
|
||||
|
||||
[azure]
|
||||
format = '\[[$symbol($subscription)]($style)\]'
|
||||
|
||||
[battery]
|
||||
format = '\[[$symbol$percentage]($style)\]'
|
||||
|
||||
[buf]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[bun]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[c]
|
||||
format = '\[[$symbol($version(-$name))]($style)\]'
|
||||
|
||||
@@ -30,12 +16,6 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[conda]
|
||||
format = '\[[$symbol$environment]($style)\]'
|
||||
|
||||
[container]
|
||||
format = '\[[$symbol \[$name\]]($style)\]'
|
||||
|
||||
[cpp]
|
||||
format = '\[[$symbol($version(-$name))]($style)\]'
|
||||
|
||||
[crystal]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
@@ -48,9 +28,6 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[deno]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[direnv]
|
||||
format = '\[[$symbol$loaded/$allowed]($style)\]'
|
||||
|
||||
[docker_context]
|
||||
format = '\[[$symbol$context]($style)\]'
|
||||
|
||||
@@ -66,69 +43,30 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[erlang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[fennel]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[fortran]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[fossil_branch]
|
||||
format = '\[[$symbol$branch]($style)\]'
|
||||
|
||||
[fossil_metrics]
|
||||
format = '\[[+$added]($added_style)\]\[[-$deleted]($deleted_style)\]'
|
||||
|
||||
[gcloud]
|
||||
format = '\[[$symbol$account(@$domain)(\($region\))]($style)\]'
|
||||
|
||||
[git_branch]
|
||||
format = '\[[$symbol$branch]($style)\]'
|
||||
|
||||
[git_commit]
|
||||
format = '\[[\($hash$tag\)]($style)\]'
|
||||
|
||||
[git_metrics]
|
||||
format = '\[[+$added]($added_style)\]\[[-$deleted]($deleted_style)\]'
|
||||
|
||||
[git_state]
|
||||
format = '\[[$state ($progress_current/$progress_total)]($style)\]'
|
||||
|
||||
[git_status]
|
||||
format = '([\[$all_status$ahead_behind\]]($style))'
|
||||
|
||||
[gleam]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[golang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[gradle]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[guix_shell]
|
||||
format = '\[[$symbol]($style)\]'
|
||||
|
||||
[haskell]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[haxe]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[helm]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[hg_branch]
|
||||
format = '\[[$symbol$branch]($style)\]'
|
||||
|
||||
[hostname]
|
||||
format = '\[[$ssh_symbol($hostname)]($style)\] '
|
||||
|
||||
[java]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[jobs]
|
||||
format = '\[[$symbol$number]($style)\]'
|
||||
|
||||
[julia]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
@@ -138,33 +76,12 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[kubernetes]
|
||||
format = '\[[$symbol$context( \($namespace\))]($style)\]'
|
||||
|
||||
[localip]
|
||||
format = '\[[$localipv4]($style)\]'
|
||||
|
||||
[lua]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[maven]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[memory_usage]
|
||||
format = '\[$symbol[$ram( | $swap)]($style)\]'
|
||||
|
||||
[meson]
|
||||
format = '\[[$symbol$project]($style)\]'
|
||||
|
||||
[mise]
|
||||
format = '\[[$symbol$health]($style)\]'
|
||||
|
||||
[mojo]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[nats]
|
||||
format = '\[[$symbol$name]($style)\]'
|
||||
|
||||
[netns]
|
||||
format = '\[[$symbol \[$name\]]($style)\]'
|
||||
|
||||
[nim]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
@@ -177,18 +94,9 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[ocaml]
|
||||
format = '\[[$symbol($version)(\($switch_indicator$switch_name\))]($style)\]'
|
||||
|
||||
[odin]
|
||||
format = '\[[$symbol($version )]($style)\]'
|
||||
|
||||
[opa]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[openstack]
|
||||
format = '\[[$symbol$cloud(\($project\))]($style)\]'
|
||||
|
||||
[os]
|
||||
format = '\[[$symbol]($style)\]'
|
||||
|
||||
[package]
|
||||
format = '\[[$symbol$version]($style)\]'
|
||||
|
||||
@@ -198,12 +106,6 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[php]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[pijul_channel]
|
||||
format = '\[[$symbol$channel]($style)\]'
|
||||
|
||||
[pixi]
|
||||
format = '\[[$symbol$version( $environment)]($style)\]'
|
||||
|
||||
[pulumi]
|
||||
format = '\[[$symbol$stack]($style)\]'
|
||||
|
||||
@@ -213,18 +115,12 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[python]
|
||||
format = '\[[${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style)\]'
|
||||
|
||||
[quarto]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[raku]
|
||||
format = '\[[$symbol($version-$vm_version)]($style)\]'
|
||||
|
||||
[red]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[rlang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[ruby]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
@@ -234,23 +130,11 @@ format = '\[[$symbol($version)]($style)\]'
|
||||
[scala]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[shell]
|
||||
format = '\[[$indicator]($style)\]'
|
||||
|
||||
[singularity]
|
||||
format = '\[[$symbol\[$env\]]($style)\]'
|
||||
|
||||
[solidity]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[spack]
|
||||
format = '\[[$symbol$environment]($style)\]'
|
||||
|
||||
[status]
|
||||
format = '\[[$symbol$status]($style)\]'
|
||||
|
||||
[sudo]
|
||||
format = '\[[as $symbol]($style)\]'
|
||||
format = '\[[as $symbol]\]'
|
||||
|
||||
[swift]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
@@ -261,23 +145,14 @@ format = '\[[$symbol$workspace]($style)\]'
|
||||
[time]
|
||||
format = '\[[$time]($style)\]'
|
||||
|
||||
[typst]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[username]
|
||||
format = '\[[$user]($style)\]'
|
||||
|
||||
[vagrant]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[vcsh]
|
||||
format = '\[vcsh [$symbol$repo]($style)\]'
|
||||
|
||||
[vlang]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[xmake]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
|
||||
[zig]
|
||||
format = '\[[$symbol($version)]($style)\]'
|
||||
@@ -0,0 +1,68 @@
|
||||
[aws]
|
||||
symbol = " "
|
||||
|
||||
[buf]
|
||||
symbol = " "
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[dart]
|
||||
symbol = " "
|
||||
|
||||
[directory]
|
||||
read_only = " "
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
|
||||
[haskell]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
|
||||
[memory_usage]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[spack]
|
||||
symbol = "🅢 "
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
@@ -1,13 +1,5 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
[bun]
|
||||
format = "via [$symbol]($style)"
|
||||
|
||||
[buf]
|
||||
format = "with [$symbol]($style)"
|
||||
|
||||
[c]
|
||||
format = "via [$symbol($name)]($style)"
|
||||
format = "via [$symbol]($style)"
|
||||
|
||||
[cmake]
|
||||
format = "via [$symbol]($style)"
|
||||
@@ -15,9 +7,6 @@ format = "via [$symbol]($style)"
|
||||
[cobol]
|
||||
format = "via [$symbol]($style)"
|
||||
|
||||
[cpp]
|
||||
format = "via [$symbol($name)]($style)"
|
||||
|
||||
[crystal]
|
||||
format = "via [$symbol]($style)"
|
||||
|
||||
@@ -42,33 +31,12 @@ format = 'via [$symbol]($style)'
|
||||
[erlang]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[fennel]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[fortran]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[gleam]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[golang]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[gradle]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[haskell]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[haxe]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[helm]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[java]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[julia]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
@@ -78,15 +46,6 @@ format = 'via [$symbol]($style)'
|
||||
[lua]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[maven]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[meson]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[mojo]
|
||||
format = 'with [$symbol]($style)'
|
||||
|
||||
[nim]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
@@ -96,21 +55,12 @@ format = 'via [$symbol]($style)'
|
||||
[ocaml]
|
||||
format = 'via [$symbol(\($switch_indicator$switch_name\) )]($style)'
|
||||
|
||||
[odin]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[opa]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[perl]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[php]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[pixi]
|
||||
format = 'via [$symbol($environment )]($style)'
|
||||
|
||||
[pulumi]
|
||||
format = 'via [$symbol$stack]($style)'
|
||||
|
||||
@@ -120,9 +70,6 @@ format = 'via [$symbol]($style)'
|
||||
[python]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[quarto]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[raku]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
@@ -138,26 +85,14 @@ format = 'via [$symbol]($style)'
|
||||
[rust]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[scala]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[solidity]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[swift]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[typst]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[vagrant]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[vlang]
|
||||
format = 'via [$symbol]($style)'
|
||||
|
||||
[xmake]
|
||||
format = "via [$symbol]($style)"
|
||||
|
||||
[zig]
|
||||
format = 'via [$symbol]($style)'
|
||||
@@ -1,8 +1,5 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
format = """
|
||||
[](#9A348E)\
|
||||
$os\
|
||||
$username\
|
||||
[](bg:#DA627D fg:#9A348E)\
|
||||
$directory\
|
||||
@@ -14,16 +11,12 @@ $c\
|
||||
$elixir\
|
||||
$elm\
|
||||
$golang\
|
||||
$gradle\
|
||||
$haskell\
|
||||
$java\
|
||||
$julia\
|
||||
$maven\
|
||||
$nodejs\
|
||||
$bun\
|
||||
$nim\
|
||||
$rust\
|
||||
$scala\
|
||||
[](fg:#86BBD8 bg:#06969A)\
|
||||
$docker_context\
|
||||
[](fg:#06969A bg:#33658A)\
|
||||
@@ -34,20 +27,12 @@ $time\
|
||||
# Disable the blank line at the start of the prompt
|
||||
# add_newline = false
|
||||
|
||||
# You can also replace your username with a neat symbol like or disable this
|
||||
# and use the os module below
|
||||
# You can also replace your username with a neat symbol like to save some space
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bg:#9A348E"
|
||||
style_root = "bg:#9A348E"
|
||||
format = '[$user ]($style)'
|
||||
disabled = false
|
||||
|
||||
# An alternative to the username module which displays a symbol that
|
||||
# represents the current operating system
|
||||
[os]
|
||||
style = "bg:#9A348E"
|
||||
disabled = true # Disabled by default
|
||||
|
||||
[directory]
|
||||
style = "bg:#DA627D"
|
||||
@@ -58,105 +43,82 @@ truncation_symbol = "…/"
|
||||
# Here is how you can shorten some long paths by text replacement
|
||||
# similar to mapped_locations in Oh My Posh:
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
# Keep in mind that the order matters. For example:
|
||||
# "Important Documents" = " "
|
||||
# "Important Documents" = " "
|
||||
# will not be replaced, because "Documents" was already substituted before.
|
||||
# So either put "Important Documents" before "Documents" or use the substituted version:
|
||||
# "Important " = " "
|
||||
# "Important " = " "
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[cpp]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
style = "bg:#06969A"
|
||||
format = '[ $symbol $context ]($style)'
|
||||
format = '[[ $symbol $context ](bg:#06969A)]($style) $path'
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:#FCA17D"
|
||||
format = '[ $symbol $branch ]($style)'
|
||||
format = '[[ $symbol $branch ](bg:#FCA17D)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:#FCA17D"
|
||||
format = '[$all_status$ahead_behind ]($style)'
|
||||
format = '[[($all_status$ahead_behind )](bg:#FCA17D)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[gradle]
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[haskell]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[maven]
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[bun]
|
||||
symbol = ""
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[scala]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R" # Hour:Minute Format
|
||||
style = "bg:#33658A"
|
||||
format = '[ ♥ $time ]($style)'
|
||||
format = '[[ ♥ $time ](bg:#33658A)]($style)'
|
||||
@@ -0,0 +1,131 @@
|
||||
[character]
|
||||
success_symbol = "[>](bold green)"
|
||||
error_symbol = "[x](bold red)"
|
||||
vicmd_symbol = "[<](bold green)"
|
||||
|
||||
[git_commit]
|
||||
tag_symbol = " tag "
|
||||
|
||||
[git_status]
|
||||
ahead = ">"
|
||||
behind = "<"
|
||||
diverged = "<>"
|
||||
renamed = "r"
|
||||
deleted = "x"
|
||||
|
||||
[aws]
|
||||
symbol = "aws "
|
||||
|
||||
[c]
|
||||
symbol = "C "
|
||||
|
||||
[cobol]
|
||||
symbol = "cobol "
|
||||
|
||||
[conda]
|
||||
symbol = "conda "
|
||||
|
||||
[crystal]
|
||||
symbol = "cr "
|
||||
|
||||
[cmake]
|
||||
symbol = "cmake "
|
||||
|
||||
[daml]
|
||||
symbol = "daml "
|
||||
|
||||
[dart]
|
||||
symbol = "dart "
|
||||
|
||||
[deno]
|
||||
symbol = "deno "
|
||||
|
||||
[dotnet]
|
||||
symbol = ".NET "
|
||||
|
||||
[directory]
|
||||
read_only = " ro"
|
||||
|
||||
[docker_context]
|
||||
symbol = "docker "
|
||||
|
||||
[elixir]
|
||||
symbol = "exs "
|
||||
|
||||
[elm]
|
||||
symbol = "elm "
|
||||
|
||||
[git_branch]
|
||||
symbol = "git "
|
||||
|
||||
[golang]
|
||||
symbol = "go "
|
||||
|
||||
[hg_branch]
|
||||
symbol = "hg "
|
||||
|
||||
[java]
|
||||
symbol = "java "
|
||||
|
||||
[julia]
|
||||
symbol = "jl "
|
||||
|
||||
[kotlin]
|
||||
symbol = "kt "
|
||||
|
||||
[lua]
|
||||
symbol = "lua "
|
||||
|
||||
[nodejs]
|
||||
symbol = "nodejs "
|
||||
|
||||
[memory_usage]
|
||||
symbol = "memory "
|
||||
|
||||
[nim]
|
||||
symbol = "nim "
|
||||
|
||||
[nix_shell]
|
||||
symbol = "nix "
|
||||
|
||||
[ocaml]
|
||||
symbol = "ml "
|
||||
|
||||
[package]
|
||||
symbol = "pkg "
|
||||
|
||||
[perl]
|
||||
symbol = "pl "
|
||||
|
||||
[php]
|
||||
symbol = "php "
|
||||
|
||||
[pulumi]
|
||||
symbol = "pulumi "
|
||||
|
||||
[purescript]
|
||||
symbol = "purs "
|
||||
|
||||
[python]
|
||||
symbol = "py "
|
||||
|
||||
[raku]
|
||||
symbol = "raku "
|
||||
|
||||
[ruby]
|
||||
symbol = "rb "
|
||||
|
||||
[rust]
|
||||
symbol = "rs "
|
||||
|
||||
[scala]
|
||||
symbol = "scala "
|
||||
|
||||
[spack]
|
||||
symbol = "spack "
|
||||
|
||||
[sudo]
|
||||
symbol = "sudo "
|
||||
|
||||
[swift]
|
||||
symbol = "swift "
|
||||
@@ -1,5 +1,3 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
format = """
|
||||
$username\
|
||||
$hostname\
|
||||
@@ -18,7 +16,7 @@ style = "blue"
|
||||
[character]
|
||||
success_symbol = "[❯](purple)"
|
||||
error_symbol = "[❯](red)"
|
||||
vimcmd_symbol = "[❮](green)"
|
||||
vicmd_symbol = "[❮](green)"
|
||||
|
||||
[git_branch]
|
||||
format = "[$branch]($style)"
|
||||
@@ -46,5 +44,3 @@ style = "yellow"
|
||||
[python]
|
||||
format = "[$virtualenv]($style) "
|
||||
style = "bright-black"
|
||||
detect_extensions = []
|
||||
detect_files = []
|
||||
@@ -0,0 +1,38 @@
|
||||
.home .hero img
|
||||
max-width: 500px !important
|
||||
min-width: 300px
|
||||
width: 100%
|
||||
|
||||
.center
|
||||
margin 0 auto;
|
||||
width: 80%
|
||||
.demo-video
|
||||
width: 100%
|
||||
margin: 50px 0
|
||||
border-radius: 6px
|
||||
|
||||
.hero
|
||||
margin: 150px 25px 70px
|
||||
|
||||
.action-button
|
||||
background-color: #dd0b78 !important
|
||||
border-bottom: #c6096b !important
|
||||
|
||||
@font-face
|
||||
font-family: 'Nerd Font';
|
||||
src: url("/nerd-font.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal
|
||||
|
||||
code
|
||||
font-family: 'Nerd Font', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
overflow-wrap: break-word
|
||||
|
||||
@media (prefers-color-scheme: light)
|
||||
:root
|
||||
--languageTextColor: rgba(255,255,255,0.4)
|
||||
|
||||
.code-copy
|
||||
position: absolute
|
||||
right: 0
|
||||
bottom: 1px
|
||||
@@ -0,0 +1,6 @@
|
||||
$accentColor = #DD0B78
|
||||
$accentDarkColor = #ff33b8
|
||||
$textColor = #2c3e50
|
||||
$borderColor = #eaecef
|
||||
$codeBgLightColor = #282c34
|
||||
$preTextLightColor = #fff
|
||||
@@ -1,13 +1,10 @@
|
||||
---
|
||||
layout: home
|
||||
hero:
|
||||
image: /logo.svg
|
||||
text: null
|
||||
tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell!
|
||||
actions:
|
||||
- theme: brand
|
||||
text: Get Started →
|
||||
link: ./guide/
|
||||
home: true
|
||||
heroImage: /logo.svg
|
||||
heroText: null
|
||||
tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell!
|
||||
actionText: Get Started →
|
||||
actionLink: ./guide/
|
||||
features:
|
||||
- title: Compatibility First
|
||||
details: Works on the most common shells on the most common operating systems. Use it everywhere!
|
||||
@@ -22,24 +19,12 @@ metaTitle: "Starship: Cross-Shell Prompt"
|
||||
description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.
|
||||
---
|
||||
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
onMounted(() => {
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
if (urlParams.has('uwu') || urlParams.has('kawaii')) {
|
||||
const img = document.querySelector('.VPHero .VPImage.image-src')
|
||||
img.classList.add('uwu')
|
||||
img.src = '/logo-uwu.png'
|
||||
img.alt = 'Kawaii Starship Logo by @sawaratsuki1004'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
<div class="center">
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
|
||||
### Prerequisites
|
||||
|
||||
@@ -67,10 +52,10 @@ onMounted(() => {
|
||||
brew install starship
|
||||
```
|
||||
|
||||
With [Winget](https://github.com/microsoft/winget-cli):
|
||||
With [Scoop](https://scoop.sh):
|
||||
|
||||
```powershell
|
||||
winget install starship
|
||||
scoop install starship
|
||||
```
|
||||
|
||||
1. Add the init script to your shell's config file:
|
||||
@@ -105,7 +90,7 @@ onMounted(() => {
|
||||
eval "$(starship init zsh)"
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
#### Powershell
|
||||
|
||||
Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.
|
||||
|
||||
@@ -124,17 +109,20 @@ onMounted(() => {
|
||||
```
|
||||
|
||||
#### Elvish
|
||||
> [!WARNING]
|
||||
> Only elvish v0.18 or higher is supported.
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
::: warning
|
||||
|
||||
Only elvish v0.18 or higher is supported.
|
||||
|
||||
:::
|
||||
|
||||
Add the following to the end of `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
# ~/.elvish/rc.elv
|
||||
|
||||
eval (starship init elvish)
|
||||
```
|
||||
For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
|
||||
#### Tcsh
|
||||
|
||||
@@ -147,17 +135,25 @@ onMounted(() => {
|
||||
```
|
||||
|
||||
#### Nushell
|
||||
> [!WARNING]
|
||||
> This will change in the future.
|
||||
> Only Nushell v0.96+ is supported.
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
::: warning
|
||||
|
||||
This will change in the future.
|
||||
Only Nushell v0.61+ is supported.
|
||||
|
||||
:::
|
||||
|
||||
Add the following to to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
#### Xonsh
|
||||
|
||||
Add the following to the end of `~/.xonshrc`:
|
||||
|
||||
@@ -4,139 +4,11 @@ While Starship is a versatile shell, sometimes you need to do more than edit
|
||||
`starship.toml` to get it to do certain things. This page details some of the more
|
||||
advanced configuration techniques used in starship.
|
||||
|
||||
> [!WARNING]
|
||||
> The configurations in this section are subject to change in future releases of Starship.
|
||||
::: warning
|
||||
|
||||
## TransientPrompt in PowerShell
|
||||
The configurations in this section are subject to change in future releases of Starship.
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This
|
||||
is useful in cases where all the prompt information is not always needed. To enable
|
||||
this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put
|
||||
this statement in your `$PROFILE`. Transience can be disabled on-the-fly with
|
||||
`Disable-TransientPrompt`.
|
||||
|
||||
By default, the left side of input gets replaced with `>`. To customize this,
|
||||
define a new function called `Invoke-Starship-TransientFunction`. For example, to
|
||||
display Starship's `character` module here, you would do
|
||||
|
||||
```powershell
|
||||
function Invoke-Starship-TransientFunction {
|
||||
&starship module character
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
|
||||
Enable-TransientPrompt
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Cmd
|
||||
|
||||
Clink allows you to replace the previous-printed prompt with custom strings. This
|
||||
is useful in cases where all the prompt information is not always needed. To enable
|
||||
this, run `clink set prompt.transient <value>` where \<value\> can be one of:
|
||||
|
||||
- `always`: always replace the previous prompt
|
||||
- `same_dir`: replace the previous prompt only if the working directory is same
|
||||
- `off`: do not replace the prompt (i.e. turn off transience)
|
||||
|
||||
You need to do this only once. Make the following changes to your `starship.lua`
|
||||
to customize what gets displayed on the left and on the right:
|
||||
|
||||
- By default, the left side of input gets replaced with `>`. To customize this,
|
||||
define a new function called `starship_transient_prompt_func`. This function
|
||||
receives the current prompt as a string that you can utilize. For example, to
|
||||
display Starship's `character` module here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_prompt_func(prompt)
|
||||
return io.popen("starship module character"
|
||||
.." --keymap="..rl.getvariable('keymap')
|
||||
):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new
|
||||
function called `starship_transient_rprompt_func`. This function receives the
|
||||
current prompt as a string that you can utilize. For example, to display
|
||||
the time at which the last command was started here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_rprompt_func(prompt)
|
||||
return io.popen("starship module time"):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Fish
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This
|
||||
is useful in cases where all the prompt information is not always needed. To enable
|
||||
this, run `enable_transience` in the shell session. To make it permanent, put
|
||||
this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with
|
||||
`disable_transience`.
|
||||
|
||||
Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty,
|
||||
and syntactically correct.
|
||||
|
||||
- By default, the left side of input gets replaced with a bold-green `❯`. To customize this,
|
||||
define a new function called `starship_transient_prompt_func`. For example, to
|
||||
display Starship's `character` module here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_prompt_func
|
||||
starship module character
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new
|
||||
function called `starship_transient_rprompt_func`. For example, to display
|
||||
the time at which the last command was started here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_rprompt_func
|
||||
starship module time
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Bash
|
||||
|
||||
The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace
|
||||
the previous-printed prompt with custom strings. This is useful in cases where all
|
||||
the prompt information is not always needed. To enable this, put this in `~/.bashrc`
|
||||
`bleopt prompt_ps1_transient=<value>`:
|
||||
|
||||
The \<value\> here is a colon-separated list of `always`, `same-dir` and `trim`.
|
||||
When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \<value\>,
|
||||
the prompt specified by `PS1` is erased on leaving the current command line.
|
||||
If \<value\> contains a field `trim`, only the last line of multiline `PS1` is
|
||||
preserved and the other lines are erased. Otherwise, the command line will be
|
||||
redrawn as if `PS1=` is specified. When a field `same-dir` is contained in
|
||||
\<value\> and the current working directory is different from the final directory of
|
||||
the previous command line, this option `prompt_ps1_transient` is ignored.
|
||||
|
||||
Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on
|
||||
the left and on the right:
|
||||
|
||||
- To customize what the left side of input gets replaced with, configure the
|
||||
`prompt_ps1_final` Ble.sh option. For example, to display Starship's `character`
|
||||
module here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_ps1_final='$(starship module character)'
|
||||
```
|
||||
|
||||
- To customize what the right side of input gets replaced with, configure the
|
||||
`prompt_rps1_final` Ble.sh option. For example, to display
|
||||
the time at which the last command was started here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_rps1_final='$(starship module time)'
|
||||
```
|
||||
:::
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in Cmd
|
||||
|
||||
@@ -277,7 +149,7 @@ You can also set a similar output with PowerShell by creating a function named `
|
||||
```powershell
|
||||
# edit $PROFILE
|
||||
function Invoke-Starship-PreCommand {
|
||||
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
|
||||
$host.ui.Write("`e]0; PS> $env:USERNAME@$env:COMPUTERNAME`: $pwd `a")
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
@@ -291,11 +163,9 @@ in `format` is also supported in `right_format`. The `$all` variable will only c
|
||||
not explicitly used in either `format` or `right_format`.
|
||||
|
||||
Note: The right prompt is a single line following the input location. To right align modules above
|
||||
the input line in a multi-line prompt, see the [`fill` module](../config/#fill).
|
||||
the input line in a multi-line prompt, see the [`fill` module](/config/#fill).
|
||||
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash.
|
||||
|
||||
Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash.
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd.
|
||||
|
||||
### Example
|
||||
|
||||
@@ -315,17 +185,11 @@ Produces a prompt like the following:
|
||||
▶ starship on rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
|
||||
```
|
||||
|
||||
When using `zsh` (v5.0.5+), the shell adds a default trailing space to the right prompt. This can cause alignment issues specifically when using the Starship `$fill` module. To remove this gap, add the following to your `.zshrc`:
|
||||
|
||||
```zsh
|
||||
ZLE_RPROMPT_INDENT=0
|
||||
```
|
||||
|
||||
## Continuation Prompt
|
||||
|
||||
Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote).
|
||||
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`.
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `"[∙](bright-black) "`.
|
||||
|
||||
Note: `continuation_prompt` should be set to a literal string without any variables.
|
||||
|
||||
@@ -340,318 +204,8 @@ Note: Continuation prompts are only available in the following shells:
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# A continuation prompt that displays two filled-in arrows
|
||||
continuation_prompt = '▶▶ '
|
||||
```
|
||||
|
||||
## Statusline for Claude Code
|
||||
|
||||
Starship supports displaying a custom statusline when running inside Claude Code, Anthropic's CLI tool for interactive coding with Claude. This statusline provides real-time information about your Claude session, including the model being used, context window usage, and session costs.
|
||||
|
||||
For more information about the Claude Code statusline feature, see the [Claude Code statusline documentation](https://code.claude.com/docs/en/statusline).
|
||||
|
||||
### Setup
|
||||
|
||||
To use Starship as your Claude Code statusline:
|
||||
|
||||
1. Run `/statusline` in Claude Code and ask it to configure Starship, or manually add the following to your `.claude/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"statusLine": {
|
||||
"type": "command",
|
||||
"command": "starship statusline claude-code"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. Customize the statusline appearance in your `~/.config/starship.toml` (see [Configuration](#configuration) below)
|
||||
|
||||
### Overview
|
||||
|
||||
When invoked with `starship statusline claude-code`, Starship receives Claude Code session data via stdin and renders a statusline using a dedicated profile named `claude-code`.
|
||||
|
||||
The profile includes three specialized modules:
|
||||
|
||||
- `claude_model`: Displays the current Claude model being used
|
||||
- `claude_context`: Shows context window usage with a visual gauge
|
||||
- `claude_cost`: Displays session cost and statistics
|
||||
|
||||
The default profile format is:
|
||||
|
||||
```toml
|
||||
[profiles]
|
||||
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
You can customize the Claude Code statusline by modifying the `claude-code` profile and individual module configurations in your `~/.config/starship.toml`:
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Customize the claude-code profile
|
||||
[profiles]
|
||||
claude-code = "$claude_model$claude_context$claude_cost"
|
||||
|
||||
# Configure individual modules
|
||||
[claude_model]
|
||||
format = "[$symbol$model]($style) "
|
||||
symbol = "🤖 "
|
||||
style = "bold blue"
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge $percentage]($style) "
|
||||
gauge_width = 10
|
||||
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost]($style) "
|
||||
symbol = "💰 "
|
||||
```
|
||||
|
||||
### Claude Model
|
||||
|
||||
The `claude_model` module displays the current Claude model being used in the session.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| --------------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `format` | `'[$symbol$model]($style) '` | The format for the module. |
|
||||
| `symbol` | `'🤖 '` | The symbol shown before the model name. |
|
||||
| `style` | `'bold blue'` | The style for the module. |
|
||||
| `model_aliases` | `{}` | Map of model IDs or display names to shorter aliases. Checks ID first, then display name. |
|
||||
| `disabled` | `false` | Disables the `claude_model` module. |
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| -------- | ------------------- | ------------------------------------- |
|
||||
| model | `Claude 3.5 Sonnet` | The display name of the current model |
|
||||
| model_id | `claude-3-5-sonnet` | The model ID |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the value of option `style` |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Basic customization
|
||||
[claude_model]
|
||||
format = "on [$symbol$model]($style) "
|
||||
symbol = "🧠 "
|
||||
style = "bold cyan"
|
||||
|
||||
# Using model aliases for vendor-specific model names
|
||||
# You can alias by model ID or display name
|
||||
[claude_model.model_aliases]
|
||||
# Alias by vendor model ID (e.g. AWS Bedrock)
|
||||
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
|
||||
# Alias by display name
|
||||
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
|
||||
```
|
||||
|
||||
### Claude Context
|
||||
|
||||
The `claude_context` module displays context window usage as a percentage and visual gauge. The style automatically changes based on configurable thresholds.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------------------- | --------------------------------- | -------------------------------------------------- |
|
||||
| `format` | `'[$gauge $percentage]($style) '` | The format for the module. |
|
||||
| `symbol` | `''` | The symbol shown before the gauge. |
|
||||
| `gauge_width` | `5` | The width of the gauge in characters. |
|
||||
| `gauge_full_symbol` | `'█'` | The symbol used for filled segments of the gauge. |
|
||||
| `gauge_partial_symbol` | `'▒'` | The symbol used for partial segments of the gauge. |
|
||||
| `gauge_empty_symbol` | `'░'` | The symbol used for empty segments of the gauge. |
|
||||
| `display` | [see below](#display) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_context` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define thresholds and styles for different usage levels. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------------------ |
|
||||
| `threshold` | `0.0` | The minimum context windows usage percentage to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this the configuration is matched. |
|
||||
|
||||
```toml
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
hidden = true
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 30
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 60
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 80
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| -------------------------- | ------- | ----------------------------------------------------- |
|
||||
| gauge | `██▒░░` | Visual representation of context usage |
|
||||
| percentage | `65%` | Context usage as a percentage |
|
||||
| input_tokens | `45.2k` | Total input tokens in conversation |
|
||||
| output_tokens | `12.3k` | Total output tokens in conversation |
|
||||
| curr_input_tokens | `5.1k` | Input tokens from most recent API call |
|
||||
| curr_output_tokens | `1.2k` | Output tokens from most recent API call |
|
||||
| curr_cache_creation_tokens | `1.5k` | Cache creation tokens from most recent API call |
|
||||
| curr_cache_read_tokens | `23.4k` | Cache read tokens from most recent API call |
|
||||
| total_tokens | `200k` | Total context window size |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
**Minimal gauge-only display**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge]($style) "
|
||||
gauge_width = 10
|
||||
```
|
||||
|
||||
**Detailed token information**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
|
||||
```
|
||||
|
||||
**Custom gauge symbols**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
gauge_full_symbol = "▰"
|
||||
gauge_partial_symbol = ""
|
||||
gauge_empty_symbol = "▱"
|
||||
gauge_width = 10
|
||||
format = "[$gauge]($style) "
|
||||
```
|
||||
|
||||
**Custom thresholds**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 50
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 75
|
||||
style = "bold orange"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 90
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
### Claude Cost
|
||||
|
||||
The `claude_cost` module displays the total cost of the current Claude Code session in USD. Like `claude_context`, it supports threshold-based styling.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------- | -------------------------------- | ----------------------------------- |
|
||||
| `format` | `'[$symbol(\\$$cost)]($style) '` | The format for the module. |
|
||||
| `symbol` | `'💰 '` | The symbol shown before the cost. |
|
||||
| `display` | [see below](#display-1) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_cost` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define cost thresholds and styles. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------- |
|
||||
| `threshold` | `0.0` | The minimum cost in USD to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this configuration is matched. |
|
||||
|
||||
**Default configuration:**
|
||||
|
||||
```toml
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 1.0
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 5.0
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| ------------- | -------- | ----------------------------------------------------- |
|
||||
| cost | `1.23` | Total session cost in USD (formatted to 2 decimals) |
|
||||
| duration | `1m 30s` | Total session duration |
|
||||
| api_duration | `45s` | Total API call duration |
|
||||
| lines_added | `1.2k` | Total lines of code added |
|
||||
| lines_removed | `500` | Total lines of code removed |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Cost with code change statistics
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
|
||||
|
||||
# Hide module until cost exceeds $0.10
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.10
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 2.0
|
||||
style = "bold red"
|
||||
|
||||
# Show duration information
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost ($duration)]($style) "
|
||||
# A continuation prompt that displays two filled in arrows
|
||||
continuation_prompt = "▶▶"
|
||||
```
|
||||
|
||||
## Style Strings
|
||||
@@ -663,17 +217,12 @@ Style strings are a list of words, separated by whitespace. The words are not ca
|
||||
- `underline`
|
||||
- `dimmed`
|
||||
- `inverted`
|
||||
- `blink`
|
||||
- `hidden`
|
||||
- `strikethrough`
|
||||
- `bg:<color>`
|
||||
- `fg:<color>`
|
||||
- `<color>`
|
||||
- `none`
|
||||
|
||||
where `<color>` is a color specifier (discussed below). `fg:<color>` and `<color>` currently do the same thing, though this may change in the future.
|
||||
`<color>` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise.
|
||||
`inverted` swaps the background and foreground colors. The order of words in the string does not matter.
|
||||
where `<color>` is a color specifier (discussed below). `fg:<color>` and `<color>` currently do the same thing, though this may change in the future. `inverted` swaps the background and foreground colors. The order of words in the string does not matter.
|
||||
|
||||
The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future.
|
||||
|
||||
@@ -687,9 +236,3 @@ A color specifier can be one of the following:
|
||||
- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png).
|
||||
|
||||
If multiple colors are specified for foreground/background, the last one in the string will take priority.
|
||||
|
||||
Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist:
|
||||
|
||||
- Many terminals disable support for `blink` by default.
|
||||
- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
|
||||
- `strikethrough` is not supported by the default macOS Terminal.app.
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
---
|
||||
layout: home
|
||||
hero:
|
||||
image: /logo.svg
|
||||
text:
|
||||
tagline: التخصيص البسيط و السريع و الغير محدود لي ال"shell"!
|
||||
actions:
|
||||
-
|
||||
theme: brand
|
||||
text: البدء مع Starship ←
|
||||
link: ./guide/
|
||||
home: true
|
||||
heroImage: /logo.svg
|
||||
heroText:
|
||||
tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell!
|
||||
actionText: البدء مع Starship ←
|
||||
actionLink: ./guide/
|
||||
features:
|
||||
-
|
||||
title: التوافق أولاً
|
||||
@@ -25,24 +21,12 @@ metaTitle: "Starship: Cross-Shell Prompt"
|
||||
description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.
|
||||
---
|
||||
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
onMounted(() => {
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
if (urlParams.has('uwu') || urlParams.has('kawaii')) {
|
||||
const img = document.querySelector('.VPHero .VPImage.image-src')
|
||||
img.classList.add('uwu')
|
||||
img.src = '/logo-uwu.png'
|
||||
img.alt = 'Kawaii Starship Logo by @sawaratsuki1004'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
<div class="center">
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
@@ -72,10 +56,10 @@ onMounted(() => {
|
||||
brew install starship
|
||||
```
|
||||
|
||||
With [Winget](https://github.com/microsoft/winget-cli):
|
||||
بإستخدام [Scoop](https://scoop.sh):
|
||||
|
||||
```powershell
|
||||
winget install starship
|
||||
scoop install starship
|
||||
```
|
||||
|
||||
1. أضف ما يلي إلى ملف تكوين موجه الأوامر الخاص بك:
|
||||
@@ -114,7 +98,7 @@ onMounted(() => {
|
||||
```
|
||||
|
||||
|
||||
#### PowerShell
|
||||
#### Powershell
|
||||
|
||||
Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.
|
||||
|
||||
@@ -136,16 +120,19 @@ onMounted(() => {
|
||||
|
||||
#### Elvish
|
||||
|
||||
> [!WARNING] Only elvish v0.18 or higher is supported.
|
||||
::: تحذير
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
Only elvish v0.18 or higher is supported.
|
||||
|
||||
:::
|
||||
|
||||
أضف ما يلي إلى نهاية `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
# ~/.elvish/rc.elv
|
||||
|
||||
eval (starship init elvish)
|
||||
```
|
||||
For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
|
||||
|
||||
#### Tcsh
|
||||
@@ -161,15 +148,23 @@ onMounted(() => {
|
||||
|
||||
#### Nushell
|
||||
|
||||
> [!WARNING] This will change in the future. Only Nushell v0.96+ is supported.
|
||||
::: تحذير
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
This will change in the future. Only Nushell v0.61+ is supported.
|
||||
|
||||
:::
|
||||
|
||||
Add the following to to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
#### Xonsh
|
||||
|
||||
@@ -184,7 +179,7 @@ onMounted(() => {
|
||||
|
||||
#### Cmd
|
||||
|
||||
عليك بإستخدام [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) مع Cmd. Add the following to a file `starship.lua` and place this file in Clink scripts directory:
|
||||
You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Add the following to a file `starship.lua` and place this file in Clink scripts directory:
|
||||
|
||||
```lua
|
||||
-- starship.lua
|
||||
|
||||
@@ -2,99 +2,11 @@
|
||||
|
||||
While Starship is a versatile shell, sometimes you need to do more than edit `starship.toml` to get it to do certain things. This page details some of the more advanced configuration techniques used in starship.
|
||||
|
||||
> [!WARNING] The configurations in this section are subject to change in future releases of Starship.
|
||||
::: تحذير
|
||||
|
||||
## TransientPrompt in PowerShell
|
||||
The configurations in this section are subject to change in future releases of Starship.
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`.
|
||||
|
||||
By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```powershell
|
||||
function Invoke-Starship-TransientFunction {
|
||||
&starship module character
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
|
||||
Enable-TransientPrompt
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Cmd
|
||||
|
||||
Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient <value>` where \<value\> can be one of:
|
||||
|
||||
- `always`: always replace the previous prompt
|
||||
- `same_dir`: replace the previous prompt only if the working directory is same
|
||||
- `off`: do not replace the prompt (i.e. turn off transience)
|
||||
|
||||
You need to do this only once. Make the following changes to your `starship.lua` to customize what gets displayed on the left and on the right:
|
||||
|
||||
- By default, the left side of input gets replaced with `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_prompt_func(prompt)
|
||||
return io.popen("starship module character"
|
||||
.." --keymap="..rl.getvariable('keymap')
|
||||
):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_rprompt_func(prompt)
|
||||
return io.popen("starship module time"):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Fish
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`.
|
||||
|
||||
Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct.
|
||||
|
||||
- By default, the left side of input gets replaced with a bold-green `❯`. To customize this, define a new function called `starship_transient_prompt_func`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_prompt_func
|
||||
starship module character
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_rprompt_func
|
||||
starship module time
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Bash
|
||||
|
||||
The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=<value>`:
|
||||
|
||||
The \<value\> here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \<value\>, the prompt specified by `PS1` is erased on leaving the current command line. If \<value\> contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in \<value\> and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored.
|
||||
|
||||
Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on the left and on the right:
|
||||
|
||||
- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_ps1_final='$(starship module character)'
|
||||
```
|
||||
|
||||
- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_rps1_final='$(starship module time)'
|
||||
```
|
||||
:::
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in Cmd
|
||||
|
||||
@@ -209,7 +121,7 @@ You can also set a similar output with PowerShell by creating a function named `
|
||||
```powershell
|
||||
# edit $PROFILE
|
||||
function Invoke-Starship-PreCommand {
|
||||
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
|
||||
$host.ui.Write("`e]0; PS> $env:USERNAME@$env:COMPUTERNAME`: $pwd `a")
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
@@ -219,11 +131,9 @@ Invoke-Expression (&starship init powershell)
|
||||
|
||||
Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`.
|
||||
|
||||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill).
|
||||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill).
|
||||
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash.
|
||||
|
||||
Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash.
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd.
|
||||
|
||||
### مثال
|
||||
|
||||
@@ -247,7 +157,7 @@ Produces a prompt like the following:
|
||||
|
||||
Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote).
|
||||
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`.
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `"[∙](bright-black) "`.
|
||||
|
||||
Note: `continuation_prompt` should be set to a literal string without any variables.
|
||||
|
||||
@@ -262,318 +172,8 @@ Note: Continuation prompts are only available in the following shells:
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# A continuation prompt that displays two filled-in arrows
|
||||
continuation_prompt = '▶▶ '
|
||||
```
|
||||
|
||||
## Statusline for Claude Code
|
||||
|
||||
Starship supports displaying a custom statusline when running inside Claude Code, Anthropic's CLI tool for interactive coding with Claude. This statusline provides real-time information about your Claude session, including the model being used, context window usage, and session costs.
|
||||
|
||||
For more information about the Claude Code statusline feature, see the [Claude Code statusline documentation](https://code.claude.com/docs/en/statusline).
|
||||
|
||||
### Setup
|
||||
|
||||
To use Starship as your Claude Code statusline:
|
||||
|
||||
1. Run `/statusline` in Claude Code and ask it to configure Starship, or manually add the following to your `.claude/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"statusLine": {
|
||||
"type": "command",
|
||||
"command": "starship statusline claude-code"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. Customize the statusline appearance in your `~/.config/starship.toml` (see [Configuration](#configuration) below)
|
||||
|
||||
### Overview
|
||||
|
||||
When invoked with `starship statusline claude-code`, Starship receives Claude Code session data via stdin and renders a statusline using a dedicated profile named `claude-code`.
|
||||
|
||||
The profile includes three specialized modules:
|
||||
|
||||
- `claude_model`: Displays the current Claude model being used
|
||||
- `claude_context`: Shows context window usage with a visual gauge
|
||||
- `claude_cost`: Displays session cost and statistics
|
||||
|
||||
The default profile format is:
|
||||
|
||||
```toml
|
||||
[profiles]
|
||||
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
You can customize the Claude Code statusline by modifying the `claude-code` profile and individual module configurations in your `~/.config/starship.toml`:
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Customize the claude-code profile
|
||||
[profiles]
|
||||
claude-code = "$claude_model$claude_context$claude_cost"
|
||||
|
||||
# Configure individual modules
|
||||
[claude_model]
|
||||
format = "[$symbol$model]($style) "
|
||||
symbol = "🤖 "
|
||||
style = "bold blue"
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge $percentage]($style) "
|
||||
gauge_width = 10
|
||||
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost]($style) "
|
||||
symbol = "💰 "
|
||||
```
|
||||
|
||||
### Claude Model
|
||||
|
||||
The `claude_model` module displays the current Claude model being used in the session.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | الافتراضي | الوصف |
|
||||
| --------------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `format` | `'[$symbol$model]($style) '` | The format for the module. |
|
||||
| `symbol` | `'🤖 '` | The symbol shown before the model name. |
|
||||
| `style` | `'bold blue'` | The style for the module. |
|
||||
| `model_aliases` | `{}` | Map of model IDs or display names to shorter aliases. Checks ID first, then display name. |
|
||||
| `disabled` | `false` | Disables the `claude_model` module. |
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | مثال | الوصف |
|
||||
| --------- | ------------------- | ------------------------------------- |
|
||||
| model | `Claude 3.5 Sonnet` | The display name of the current model |
|
||||
| model_id | `claude-3-5-sonnet` | The model ID |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the value of option `style` |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Basic customization
|
||||
[claude_model]
|
||||
format = "on [$symbol$model]($style) "
|
||||
symbol = "🧠 "
|
||||
style = "bold cyan"
|
||||
|
||||
# Using model aliases for vendor-specific model names
|
||||
# You can alias by model ID or display name
|
||||
[claude_model.model_aliases]
|
||||
# Alias by vendor model ID (e.g. AWS Bedrock)
|
||||
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
|
||||
# Alias by display name
|
||||
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
|
||||
```
|
||||
|
||||
### Claude Context
|
||||
|
||||
The `claude_context` module displays context window usage as a percentage and visual gauge. The style automatically changes based on configurable thresholds.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | الافتراضي | الوصف |
|
||||
| ---------------------- | --------------------------------- | -------------------------------------------------- |
|
||||
| `format` | `'[$gauge $percentage]($style) '` | The format for the module. |
|
||||
| `symbol` | `''` | The symbol shown before the gauge. |
|
||||
| `gauge_width` | `5` | The width of the gauge in characters. |
|
||||
| `gauge_full_symbol` | `'█'` | The symbol used for filled segments of the gauge. |
|
||||
| `gauge_partial_symbol` | `'▒'` | The symbol used for partial segments of the gauge. |
|
||||
| `gauge_empty_symbol` | `'░'` | The symbol used for empty segments of the gauge. |
|
||||
| `display` | [see below](#display) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_context` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define thresholds and styles for different usage levels. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | الافتراضي | الوصف |
|
||||
| ----------- | ------------ | ------------------------------------------------------------------------ |
|
||||
| `threshold` | `0.0` | The minimum context windows usage percentage to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this the configuration is matched. |
|
||||
|
||||
```toml
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
hidden = true
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 30
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 60
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 80
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | مثال | الوصف |
|
||||
| ---------------------------- | ------- | ----------------------------------------------------- |
|
||||
| gauge | `██▒░░` | Visual representation of context usage |
|
||||
| percentage | `65%` | Context usage as a percentage |
|
||||
| input_tokens | `45.2k` | Total input tokens in conversation |
|
||||
| output_tokens | `12.3k` | Total output tokens in conversation |
|
||||
| curr_input_tokens | `5.1k` | Input tokens from most recent API call |
|
||||
| curr_output_tokens | `1.2k` | Output tokens from most recent API call |
|
||||
| curr_cache_creation_tokens | `1.5k` | Cache creation tokens from most recent API call |
|
||||
| curr_cache_read_tokens | `23.4k` | Cache read tokens from most recent API call |
|
||||
| total_tokens | `200k` | Total context window size |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
**Minimal gauge-only display**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge]($style) "
|
||||
gauge_width = 10
|
||||
```
|
||||
|
||||
**Detailed token information**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
|
||||
```
|
||||
|
||||
**Custom gauge symbols**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
gauge_full_symbol = "▰"
|
||||
gauge_partial_symbol = ""
|
||||
gauge_empty_symbol = "▱"
|
||||
gauge_width = 10
|
||||
format = "[$gauge]($style) "
|
||||
```
|
||||
|
||||
**Custom thresholds**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 50
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 75
|
||||
style = "bold orange"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 90
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
### Claude Cost
|
||||
|
||||
The `claude_cost` module displays the total cost of the current Claude Code session in USD. Like `claude_context`, it supports threshold-based styling.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | الافتراضي | الوصف |
|
||||
| ---------- | ---------------------------------- | ----------------------------------- |
|
||||
| `format` | `'[$symbol(\\$$cost)]($style) '` | The format for the module. |
|
||||
| `symbol` | `'💰 '` | The symbol shown before the cost. |
|
||||
| `display` | [see below](#display-1) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_cost` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define cost thresholds and styles. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | الافتراضي | الوصف |
|
||||
| ----------- | ------------ | ------------------------------------------------------------- |
|
||||
| `threshold` | `0.0` | The minimum cost in USD to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this configuration is matched. |
|
||||
|
||||
**Default configuration:**
|
||||
|
||||
```toml
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 1.0
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 5.0
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | مثال | الوصف |
|
||||
| ------------- | -------- | ----------------------------------------------------- |
|
||||
| cost | `1.23` | Total session cost in USD (formatted to 2 decimals) |
|
||||
| duration | `1m 30s` | Total session duration |
|
||||
| api_duration | `45s` | Total API call duration |
|
||||
| lines_added | `1.2k` | Total lines of code added |
|
||||
| lines_removed | `500` | Total lines of code removed |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Cost with code change statistics
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
|
||||
|
||||
# Hide module until cost exceeds $0.10
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.10
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 2.0
|
||||
style = "bold red"
|
||||
|
||||
# Show duration information
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost ($duration)]($style) "
|
||||
# A continuation prompt that displays two filled in arrows
|
||||
continuation_prompt = "▶▶"
|
||||
```
|
||||
|
||||
## Style Strings
|
||||
@@ -585,15 +185,12 @@ Style strings are a list of words, separated by whitespace. The words are not ca
|
||||
- `underline`
|
||||
- `dimmed`
|
||||
- `inverted`
|
||||
- `blink`
|
||||
- `hidden`
|
||||
- `strikethrough`
|
||||
- `bg:<color>`
|
||||
- `fg:<color>`
|
||||
- `<color>`
|
||||
- `none`
|
||||
|
||||
where `<color>` is a color specifier (discussed below). `fg:<color>` and `<color>` currently do the same thing, though this may change in the future. `<color>` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise. `inverted` swaps the background and foreground colors. The order of words in the string does not matter.
|
||||
where `<color>` is a color specifier (discussed below). `fg:<color>` and `<color>` currently do the same thing, though this may change in the future. `inverted` swaps the background and foreground colors. The order of words in the string does not matter.
|
||||
|
||||
The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future.
|
||||
|
||||
@@ -604,9 +201,3 @@ A color specifier can be one of the following:
|
||||
- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png).
|
||||
|
||||
If multiple colors are specified for foreground/background, the last one in the string will take priority.
|
||||
|
||||
Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist:
|
||||
|
||||
- Many terminals disable support for `blink` by default.
|
||||
- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
|
||||
- `strikethrough` is not supported by the default macOS Terminal.app.
|
||||
|
||||
@@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl
|
||||
|
||||
## Why do I see `Executing command "..." timed out.` warnings?
|
||||
|
||||
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings.
|
||||
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings.
|
||||
|
||||
## I see symbols I don't understand or expect, what do they mean?
|
||||
|
||||
@@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca
|
||||
env STARSHIP_LOG=trace starship module rust
|
||||
```
|
||||
|
||||
If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame.
|
||||
If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame.
|
||||
|
||||
```sh
|
||||
env STARSHIP_LOG=trace starship timings
|
||||
@@ -80,7 +80,7 @@ env STARSHIP_LOG=trace starship timings
|
||||
|
||||
This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output.
|
||||
|
||||
Finally if you find a bug you can use the `bug-report` command to create a GitHub issue.
|
||||
Finally if you find a bug you can use the `bug-report` command to create a Github issue.
|
||||
|
||||
```sh
|
||||
starship bug-report
|
||||
@@ -120,11 +120,3 @@ If Starship was installed using the install script, the following command will d
|
||||
# Locate and delete the starship binary
|
||||
sh -c 'rm "$(command -v 'starship')"'
|
||||
```
|
||||
|
||||
## How do I install Starship without `sudo`?
|
||||
|
||||
The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation directory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`.
|
||||
|
||||
For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options.
|
||||
|
||||
When using a package manager, see the documentation for your package manager about installing with or without `sudo`.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/actions"
|
||||
><img
|
||||
src="https://img.shields.io/github/actions/workflow/status/starship/starship/workflow.yml?branch=master&label=workflow&style=flat-square"
|
||||
src="https://img.shields.io/github/workflow/status/starship/starship/Main workflow/master?label=workflow&style=flat-square"
|
||||
alt="GitHub Actions workflow status"
|
||||
/></a>
|
||||
<a href="https://crates.io/crates/starship"
|
||||
@@ -20,7 +20,7 @@
|
||||
<a href="https://repology.org/project/starship/versions"
|
||||
><img
|
||||
src="https://img.shields.io/repology/repositories/starship?label=in%20repositories&style=flat-square"
|
||||
alt="واقع التغليف" /></a
|
||||
alt="Packaging status" /></a
|
||||
><br />
|
||||
<a href="https://discord.gg/starship"
|
||||
><img
|
||||
@@ -32,11 +32,6 @@
|
||||
src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square"
|
||||
alt="تابع @StarshipPrompt على تويتر"
|
||||
/></a>
|
||||
<a href="https://stand-with-ukraine.pp.ua"
|
||||
><img
|
||||
src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraineFlat.svg"
|
||||
alt="Stand With Ukraine"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -92,7 +87,7 @@
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-it.png"
|
||||
alt="الإيطالية"
|
||||
alt="Italiano"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
@@ -117,14 +112,6 @@
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png"
|
||||
alt="Русский"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/uk-UA/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ua.png"
|
||||
alt="Українська"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
@@ -152,6 +139,8 @@
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
[](https://vshymanskyy.github.io/StandWithUkraine)
|
||||
|
||||
<h1></h1>
|
||||
|
||||
<img
|
||||
@@ -161,14 +150,14 @@
|
||||
align="right"
|
||||
/>
|
||||
|
||||
**التخصيص البسيط و السريع و الغير محدود لي ال"shell"!**
|
||||
**The minimal, blazing-fast, and infinitely customizable prompt for any shell!**
|
||||
|
||||
- **Fast:** إنها _في غاية_ السرعة! 🚀
|
||||
- ** Customizable:** قم بتهيئة ال"prompt" من كل النواحي.
|
||||
- **Universal:** يعمل على أي shell، على أي نظام تشغيل.
|
||||
- ** Customizable:** تظهر المعلومات ذات الصلة في لمح البصر.
|
||||
- **Feature rich:** تدعم جميع الأدوات المفضلة لديك.
|
||||
- **Easy:** سريع التثبيت – استخدمها في دقائق معدودة.
|
||||
- **سريع:** إنها سريعة – _سريعة_ حقاً! 🚀
|
||||
- **Customizable:** configure every aspect of your prompt.
|
||||
- **Universal:** works on any shell, on any operating system.
|
||||
- **Intelligent:** shows relevant information at a glance.
|
||||
- **كثيرة المزايا:** دعم لجميع الأدوات المفضلة لديك.
|
||||
- **سهل:** سريع التثبيت – استخدمه في دقائق.
|
||||
|
||||
<p align="center">
|
||||
<a href="https://starship.rs/config/"><strong>تصفّح مستندات Starship ▶</strong></a>
|
||||
@@ -180,16 +169,16 @@
|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)).
|
||||
- تثبيت [Nerd Font](https://www.nerdfonts.com/) وتمكينه في موجه الأوامر الخاصة بك (على سبيل المثال، جرب [Fira Code Nerd Font](https://www.nerdfonts.com/font-downloads)).
|
||||
|
||||
### الخطوة الأولى. تثبيت starship
|
||||
### Step 1. Install Starship
|
||||
|
||||
حدد نظام التشغيل الخاص بك من القائمة أدناه لعرض تعليمات التثبيت:
|
||||
Select your operating system from the list below to view installation instructions:
|
||||
|
||||
<details>
|
||||
<summary>Android</summary>
|
||||
|
||||
يمكنك تثبيت starship باستخدام احد ال package managers التالية:
|
||||
Install Starship using any of the following package managers:
|
||||
|
||||
| Repository | Instructions |
|
||||
| --------------------------------------------------------------------------------- | ---------------------- |
|
||||
@@ -200,7 +189,7 @@
|
||||
<details>
|
||||
<summary>BSD</summary>
|
||||
|
||||
يمكنك تثبيت starship باستخدام احد ال package managers التالية:
|
||||
Install Starship using any of the following package managers:
|
||||
|
||||
| Distribution | Repository | Instructions |
|
||||
| ------------ | -------------------------------------------------------- | --------------------------------- |
|
||||
@@ -213,29 +202,28 @@
|
||||
<details>
|
||||
<summary>Linux</summary>
|
||||
|
||||
قم بتثبيت أحدث إصدار للنظام الخاص بك:
|
||||
Install the latest version for your system:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
يمكنك تثبيت starship باستخدام احد ال package managers التالية:
|
||||
Alternatively, install Starship using any of the following package managers:
|
||||
|
||||
| Distribution | Repository | Instructions |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
||||
| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` |
|
||||
| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` |
|
||||
| _Any_ | [Snapcraft](https://snapcraft.io/starship) | `snap install starship` |
|
||||
| Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` |
|
||||
| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` |
|
||||
| CentOS +7 | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Debian 13+ | [Debian Main](https://sources.debian.org/src/starship/1.22.1-1/) | `apt install starship` |
|
||||
| Fedora +40 | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Arch Linux | [Arch Linux Community](https://archlinux.org/packages/community/x86_64/starship) | `pacman -S starship` |
|
||||
| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Fedora 31+ | [Fedora Packages](https://src.fedoraproject.org/rpms/rust-starship) | `dnf install starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixos.starship` |
|
||||
| Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` |
|
||||
| Manjaro | | `pacman -S starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/starship/package.nix) | `nix-env -iA nixpkgs.starship` |
|
||||
| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` |
|
||||
| Ubuntu 25.04+ | [Ubuntu Universe](https://packages.ubuntu.com/source/plucky/starship) | `apt install starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` |
|
||||
| Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
|
||||
|
||||
</details>
|
||||
@@ -243,13 +231,13 @@ curl -sS https://starship.rs/install.sh | sh
|
||||
<details>
|
||||
<summary>macOS</summary>
|
||||
|
||||
قم بتثبيت أحدث إصدار للنظام الخاص بك:
|
||||
Install the latest version for your system:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
يمكنك تثبيت starship باستخدام احد ال package managers التالية:
|
||||
Alternatively, install Starship using any of the following package managers:
|
||||
|
||||
| Repository | Instructions |
|
||||
| -------------------------------------------------------- | --------------------------------------- |
|
||||
@@ -263,9 +251,9 @@ curl -sS https://starship.rs/install.sh | sh
|
||||
<details>
|
||||
<summary>Windows</summary>
|
||||
|
||||
قم بتثبيت أحدث إصدار للنظام الخاص بك مع MSI-installers من قسم الإصدارات [](https://github.com/starship/starship/releases/latest).
|
||||
Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest).
|
||||
|
||||
يمكنك تثبيت starship باستخدام احد ال package managers التالية:
|
||||
Install Starship using any of the following package managers:
|
||||
|
||||
| Repository | Instructions |
|
||||
| -------------------------------------------------------------------------------------------- | --------------------------------------- |
|
||||
@@ -277,9 +265,9 @@ curl -sS https://starship.rs/install.sh | sh
|
||||
|
||||
</details>
|
||||
|
||||
### الخطوة الثانية. Set up your shell to use Starship
|
||||
### Step 2. Setup your shell to use Starship
|
||||
|
||||
لإعداد ال starship قم بإعداد ال shell الخاص بك. اختر ما يناسبك من هذه القائمة:
|
||||
Configure your shell to initialize starship. Select yours from the list below:
|
||||
|
||||
<details>
|
||||
<summary>Bash</summary>
|
||||
@@ -295,7 +283,7 @@ eval "$(starship init bash)"
|
||||
<details>
|
||||
<summary>Cmd</summary>
|
||||
|
||||
عليك بإستخدام [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) مع Cmd. قم بإنشاء ملف في المسار `%LocalAppData%\clink\starship.lua` و ضع فيه المحتوى التالي:
|
||||
You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents:
|
||||
|
||||
```lua
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
@@ -306,13 +294,13 @@ load(io.popen('starship init cmd'):read("*a"))()
|
||||
<details>
|
||||
<summary>Elvish</summary>
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
أضف ما يلي إلى نهاية `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
eval (starship init elvish)
|
||||
```
|
||||
|
||||
ملاحظة: فقط +Elvish v0.18 مدعوم. For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
Note: Only Elvish v0.18+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -341,14 +329,20 @@ eval $(starship init ion)
|
||||
<details>
|
||||
<summary>Nushell</summary>
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.96+ is supported
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.61+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -396,7 +390,7 @@ eval "$(starship init zsh)"
|
||||
|
||||
</details>
|
||||
|
||||
### الخطوة الثالثة. تهيئة starship
|
||||
### Step 3. Configure Starship
|
||||
|
||||
Start a new shell instance, and you should see your beautiful new shell prompt. If you're happy with the defaults, enjoy!
|
||||
|
||||
@@ -408,7 +402,7 @@ If you're looking to further customize Starship:
|
||||
|
||||
## 🤝 المساهمة
|
||||
|
||||
نبحث دائماً عن مساهمين من **جميع المستويات**! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/issues?q=state%3Aopen%20label%3A%22%F0%9F%8C%B1%20good%20first%20issue%22).
|
||||
نبحث دائماً عن مساهمين من **جميع المستويات**! إذا كنت تتطلع إلى تسهيل طريقك إلى المشروع، جرب [إنشاء اول مشكلة](https://github.com/starship/starship/labels/🌱%20good%20first%20issue).
|
||||
|
||||
إذا كنت تتحدث بطلاقة بلغة غير إنجليزية، فإننا نقدر أي مساعدة للحفاظ على ترجمة المستندات وتحديثها بلغات أخرى. إذا كنت ترغب في المساعدة، يمكن المساهمة بالترجمة على [Starship Crowdin](https://translate.starship.rs/).
|
||||
|
||||
@@ -424,21 +418,6 @@ If you're looking to further customize Starship:
|
||||
|
||||
- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons.
|
||||
|
||||
## ❤️ Sponsors
|
||||
|
||||
Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website.
|
||||
|
||||
## 🔒 Code Signing Policy
|
||||
|
||||
Free code signing provided by [SignPath.io](https://signpath.io), certificate by [SignPath Foundation](https://signpath.org).
|
||||
|
||||
Code Signing Roles:
|
||||
|
||||
- Reviewers: [Astronauts](https://github.com/orgs/starship/teams/astronauts)
|
||||
- Approvers and Authors: [Mission Control](https://github.com/orgs/starship/teams/mission-control)
|
||||
|
||||
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<img width="100" src="https://raw.githubusercontent.com/starship/starship/master/media/icon.png" alt="Starship rocket icon">
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# Advanced Installation
|
||||
# التثبيت المتقدم
|
||||
|
||||
لثتبيت starship تحتاج للقيام بشيئين هما:
|
||||
To install starship, you need to do two things:
|
||||
|
||||
1. ثبت ملفات **starship** على جهازك
|
||||
1. تنبيه موجه الأوامر بإن يقوم بجعل سطر الأوامر ل starship وذلك بتعديل كود الإبتداء
|
||||
1. Get the **starship** binary onto your computer
|
||||
1. Tell your shell to use the starship binary as its prompt by modifying its init scripts
|
||||
|
||||
For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى.
|
||||
For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed.
|
||||
|
||||
هناك العديد من الحالات التي لا تلبي المعلومات في ملف README.md احتياجها ولذلك هذه بعض إرشادات التثبيت الإضافية مقدمة من مجتمع starship. إذا كانت لديك ملاحظة وقمت بحلها ولم تجد هذا الحل لها ضمن الحلول التالية، الرجاء أضفها هنا!
|
||||
There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out!
|
||||
|
||||
## [Chocolatey](https://chocolatey.org)
|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
إذهب إلى [ صفحة تثبيت Chocolatey ](https://chocolatey.org/install) و اتبع الإرشادات لتثبيت البرنامج.
|
||||
Head over to the [Chocolatey installation page](https://chocolatey.org/install) and follow the instructions to install Chocolatey.
|
||||
|
||||
### التثبيت
|
||||
### Installation
|
||||
|
||||
```powershell
|
||||
choco install starship
|
||||
@@ -23,35 +23,41 @@ choco install starship
|
||||
|
||||
## [termux](https://termux.com)
|
||||
|
||||
### التثبيت
|
||||
### المتطلبات الأساسية
|
||||
|
||||
```sh
|
||||
pkg install starship
|
||||
pkg install getconf
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.termux/files/usr/bin
|
||||
```
|
||||
|
||||
## [Funtoo Linux](https://www.funtoo.org/Welcome)
|
||||
|
||||
### التثبيت
|
||||
### Installation
|
||||
|
||||
يمكن تثبيت starship في Funtoo linux باستخدام [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage:
|
||||
On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage:
|
||||
|
||||
```sh
|
||||
emerge app-shells/starship
|
||||
```
|
||||
|
||||
## [Nix](https://wiki.nixos.org/wiki/Nix)
|
||||
## [Nix](https://nixos.wiki/wiki/Nix)
|
||||
|
||||
### احصل على ملفات الباينري
|
||||
### Getting the Binary
|
||||
|
||||
#### بشكل مباشر
|
||||
#### Imperatively
|
||||
|
||||
```sh
|
||||
nix-env -iA nixos.starship
|
||||
```
|
||||
|
||||
#### بشكل تصريحي، من أجل مستخدم واحد، عبر [home-manager](https://github.com/nix-community/home-manager)
|
||||
#### Declarative, single user, via [home-manager](https://github.com/nix-community/home-manager)
|
||||
|
||||
مكن كود`programs.starship` في ملف`home.nix` و أضف إلى الإعدادات الإعدادات التالية
|
||||
Enable the `programs.starship` module in your `home.nix` file, and add your settings
|
||||
|
||||
```nix
|
||||
{
|
||||
@@ -72,15 +78,15 @@ nix-env -iA nixos.starship
|
||||
}
|
||||
```
|
||||
|
||||
ثم بعد ذلك شغل
|
||||
then run
|
||||
|
||||
```sh
|
||||
home-manager switch
|
||||
```
|
||||
|
||||
#### بشكل تصريحي، لعدة مستخدمين
|
||||
#### Declarative, system-wide, with NixOS
|
||||
|
||||
أضف `pkgs.starship` إلى `environment.systemPackages` في `configuration.nix`, بعد ذلك شغل
|
||||
Add `pkgs.starship` to `environment.systemPackages` in your `configuration.nix`, then run
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild switch
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# الإنتقال إلى النسخة v0.45.0
|
||||
# Migrating to v0.45.0
|
||||
|
||||
النسخة 0.45.0 سوف تستمر في تقديم تحديثات جذرية حتى الوصول للنسخة المستقرة 1.0.0. لقد قمنا بتغييرات رئيسية لكيفية إعداد سطر الأوامر، وذلك يسمح بطيف أكبر من قابلية التخصيص.
|
||||
Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization.
|
||||
|
||||
هذا الدليل هو جولة خلال التغييرات الرئيسية التي قمنا بها.
|
||||
This guide is intended to walk you through the breaking changes.
|
||||
|
||||
## `prompt_order`تم استبداله بتنسيق root-level ``
|
||||
## `prompt_order` has been replaced by a root-level `format`
|
||||
|
||||
Previously to v0.45.0, `prompt_order` would accept an array of module names in the order which they should be rendered by Starship.
|
||||
|
||||
|
||||
@@ -10,14 +10,6 @@ This preset changes the symbols for each module to use Nerd Font symbols.
|
||||
|
||||
[](./nerd-font)
|
||||
|
||||
## [No Nerd Fonts](./no-nerd-font.md)
|
||||
|
||||
This preset changes the symbols for several modules so that no Nerd Font symbols are used anywhere in the prompt.
|
||||
|
||||
> [!TIP] This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544).
|
||||
|
||||
[Click to view No Nerd Font preset](./no-nerd-font)
|
||||
|
||||
## [Bracketed Segments](./bracketed-segments.md)
|
||||
|
||||
This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.).
|
||||
@@ -36,12 +28,6 @@ This preset hides the version of language runtimes. If you work in containers or
|
||||
|
||||
[](./no-runtimes)
|
||||
|
||||
## [No Empty Icons](./no-empty-icons.md)
|
||||
|
||||
This preset does not show icons if the toolset is not found.
|
||||
|
||||
[](./no-empty-icons.md)
|
||||
|
||||
## [Pure Prompt](./pure-preset.md)
|
||||
|
||||
This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure).
|
||||
@@ -53,27 +39,3 @@ This preset emulates the look and behavior of [Pure](https://github.com/sindreso
|
||||
This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship.
|
||||
|
||||
[](./pastel-powerline)
|
||||
|
||||
## [Tokyo Night](./tokyo-night.md)
|
||||
|
||||
This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme).
|
||||
|
||||
[](./tokyo-night)
|
||||
|
||||
## [Gruvbox Rainbow](./gruvbox-rainbow.md)
|
||||
|
||||
This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md).
|
||||
|
||||
[](./gruvbox-rainbow)
|
||||
|
||||
## [Jetpack](./jetpack.md)
|
||||
|
||||
This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts.
|
||||
|
||||
[](./jetpack)
|
||||
|
||||
## [Catppuccin Powerline](./catppuccin-powerline.md)
|
||||
|
||||
This preset is a minimally modified version of [Gruvbox Rainbow](./gruvbox-rainbow.md) using the [Catppuccin](https://github.com/catppuccin/catppuccin) theme palette.
|
||||
|
||||
[](./catppuccin-powerline)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#bracketed-segments)
|
||||
[Return to Presets](./README.md#bracketed-segments)
|
||||
|
||||
# Bracketed Segments Preset
|
||||
|
||||
@@ -8,10 +8,6 @@ This preset changes the format of all the built-in modules to show their segment
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset bracketed-segments -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/bracketed-segments.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/bracketed-segments.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/bracketed-segments.toml
|
||||
<<< @/.vuepress/public/presets/toml/bracketed-segments.toml
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
[Return to Presets](./#catppuccin-powerline)
|
||||
|
||||
# Catppuccin Powerline Preset
|
||||
|
||||
This preset is a minimally modified version of [Gruvbox Rainbow](./gruvbox-rainbow.md) using the [Catppuccin](https://github.com/catppuccin/catppuccin) theme palette.
|
||||
|
||||

|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset catppuccin-powerline -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
By default this preset uses the Mocha flavour of Catppucin, but you can specify any of the flavours by modifying the value of `palette`:
|
||||
|
||||
- `catppuccin_mocha`
|
||||
- `catppuccin_frappe`
|
||||
- `catppuccin_macchiato`
|
||||
- `catppuccin_latte`
|
||||
|
||||
[Click to download TOML](/presets/toml/catppuccin-powerline.toml)
|
||||
|
||||
<<< @/public/presets/toml/catppuccin-powerline.toml
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#gruvbox-rainbow)
|
||||
|
||||
# Gruvbox Rainbow Preset
|
||||
|
||||
This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md).
|
||||
|
||||

|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
- تثبيت [Nerd Font](https://www.nerdfonts.com/) وتمكينه في موجه الأوامر الخاصة بك
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset gruvbox-rainbow -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/gruvbox-rainbow.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/gruvbox-rainbow.toml
|
||||
@@ -1,24 +0,0 @@
|
||||
[Return to Presets](./#jetpack)
|
||||
|
||||
# Jetpack Preset
|
||||
|
||||
This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts.
|
||||
|
||||
> Jetpack uses the terminal's color theme.
|
||||
|
||||

|
||||
|
||||
### Prerequisite
|
||||
|
||||
- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support.
|
||||
- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended.
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset jetpack -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/jetpack.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/jetpack.toml
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#nerd-font-symbols)
|
||||
[Return to Presets](./README.md#nerd-font-symbols)
|
||||
|
||||
# Nerd Font Symbols Preset
|
||||
|
||||
@@ -12,10 +12,6 @@ This preset changes the symbols for each module to use Nerd Font symbols.
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset nerd-font-symbols -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/nerd-font-symbols.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/nerd-font-symbols.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/nerd-font-symbols.toml
|
||||
<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#no-empty-icons)
|
||||
|
||||
# No Empty Icons Preset
|
||||
|
||||
If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined.
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-empty-icons -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/no-empty-icons.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-empty-icons.toml
|
||||
@@ -1,19 +0,0 @@
|
||||
[Return to Presets](./#no-nerd-fonts)
|
||||
|
||||
# No Nerd Fonts Preset
|
||||
|
||||
This preset restricts the use of symbols to those from emoji and powerline sets.
|
||||
|
||||
This means that even without a Nerd Font installed, you should be able to view all module symbols.
|
||||
|
||||
This preset will become the default preset in a future release of starship.
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-nerd-font -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/no-nerd-font.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-nerd-font.toml
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#no-runtime-versions)
|
||||
[Return to Presets](./README.md#no-runtime-versions)
|
||||
|
||||
# No Runtime Versions Preset
|
||||
|
||||
@@ -8,10 +8,6 @@ This preset hides the version of language runtimes. If you work in containers or
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-runtime-versions -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/no-runtime-versions.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/no-runtime-versions.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-runtime-versions.toml
|
||||
<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#pastel-powerline)
|
||||
[Return to Presets](./README.md#pastel-powerline)
|
||||
|
||||
# Pastel Powerline Preset
|
||||
|
||||
@@ -12,10 +12,6 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset pastel-powerline -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/pastel-powerline.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/pastel-powerline.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/pastel-powerline.toml
|
||||
<<< @/.vuepress/public/presets/toml/pastel-powerline.toml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#plain-text-symbols)
|
||||
[Return to Presets](./README.md#plain-text-symbols)
|
||||
|
||||
## Plain Text Symbols Preset
|
||||
|
||||
@@ -8,10 +8,6 @@ This preset changes the symbols for each module into plain text. Great if you do
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset plain-text-symbols -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/plain-text-symbols.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/plain-text-symbols.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/plain-text-symbols.toml
|
||||
<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[Return to Presets](./#pure-prompt)
|
||||
[Return to Presets](./README.md#pure)
|
||||
|
||||
# Pure Preset
|
||||
|
||||
@@ -8,10 +8,6 @@ This preset emulates the look and behavior of [Pure](https://github.com/sindreso
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset pure-preset -o ~/.config/starship.toml
|
||||
```
|
||||
[Click to download TOML](/presets/toml/pure-preset.toml)
|
||||
|
||||
[Click to download TOML](/presets/toml/pure-preset.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/pure-preset.toml
|
||||
<<< @/.vuepress/public/presets/toml/pure-preset.toml
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#tokyo-night)
|
||||
|
||||
# Tokyo Night Preset
|
||||
|
||||
This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme).
|
||||
|
||||

|
||||
|
||||
### المتطلبات الأساسية
|
||||
|
||||
- تثبيت [Nerd Font](https://www.nerdfonts.com/) وتمكينه في موجه الأوامر الخاصة بك
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset tokyo-night -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/tokyo-night.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/tokyo-night.toml
|
||||
@@ -1,193 +0,0 @@
|
||||
---
|
||||
layout: home
|
||||
hero:
|
||||
image: /logo.svg
|
||||
text:
|
||||
tagline: আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট!
|
||||
actions:
|
||||
-
|
||||
theme: brand
|
||||
text: Get Started →
|
||||
link: ./guide/
|
||||
features:
|
||||
-
|
||||
title: Compatibility First
|
||||
details: Works on the most common shells on the most common operating systems. Use it everywhere!
|
||||
-
|
||||
title: Rust-Powered
|
||||
details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible.
|
||||
-
|
||||
title: Customizable
|
||||
details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be.
|
||||
footer: ISC Licensed | Copyright © 2019-present Starship Contributors
|
||||
#Used for the description meta tag, for SEO
|
||||
metaTitle: "Starship: Cross-Shell Prompt"
|
||||
description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.
|
||||
---
|
||||
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
onMounted(() => {
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
if (urlParams.has('uwu') || urlParams.has('kawaii')) {
|
||||
const img = document.querySelector('.VPHero .VPImage.image-src')
|
||||
img.classList.add('uwu')
|
||||
img.src = '/logo-uwu.png'
|
||||
img.alt = 'Kawaii Starship Logo by @sawaratsuki1004'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal.
|
||||
|
||||
### Quick Install
|
||||
|
||||
1. Install the **starship** binary:
|
||||
|
||||
|
||||
#### Install Latest Version
|
||||
|
||||
With Shell:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
To update the Starship itself, rerun the above script. It will replace the current version without touching Starship's configuration.
|
||||
|
||||
|
||||
#### Install via Package Manager
|
||||
|
||||
With [Homebrew](https://brew.sh/):
|
||||
|
||||
```sh
|
||||
brew install starship
|
||||
```
|
||||
|
||||
With [Winget](https://github.com/microsoft/winget-cli):
|
||||
|
||||
```powershell
|
||||
winget install starship
|
||||
```
|
||||
|
||||
1. Add the init script to your shell's config file:
|
||||
|
||||
|
||||
#### Bash
|
||||
|
||||
`~/.bashrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.bashrc
|
||||
|
||||
eval "$(starship init bash)"
|
||||
```
|
||||
|
||||
|
||||
#### Fish
|
||||
|
||||
`~/.config/fish/config.fish` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.config/fish/config.fish
|
||||
|
||||
starship init fish | source
|
||||
```
|
||||
|
||||
|
||||
#### Zsh
|
||||
|
||||
`~/.zshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.zshrc
|
||||
|
||||
eval "$(starship init zsh)"
|
||||
```
|
||||
|
||||
|
||||
#### PowerShell
|
||||
|
||||
Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.
|
||||
|
||||
```sh
|
||||
Invoke-Expression (&starship init powershell)
|
||||
```
|
||||
|
||||
|
||||
#### Ion
|
||||
|
||||
`~/.config/ion/initrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.config/ion/initrc
|
||||
|
||||
eval $(starship init ion)
|
||||
```
|
||||
|
||||
|
||||
#### Elvish
|
||||
|
||||
> [!WARNING] Only elvish v0.18 or higher is supported.
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
|
||||
```sh
|
||||
# ~/.elvish/rc.elv
|
||||
|
||||
eval (starship init elvish)
|
||||
```
|
||||
For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
|
||||
|
||||
#### Tcsh
|
||||
|
||||
`~/.tcshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.tcshrc
|
||||
|
||||
eval `starship init tcsh`
|
||||
```
|
||||
|
||||
|
||||
#### Nushell
|
||||
|
||||
> [!WARNING] This will change in the future. Only Nushell v0.96+ is supported.
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
```
|
||||
|
||||
|
||||
#### Xonsh
|
||||
|
||||
`~/.xonshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
# ~/.xonshrc
|
||||
|
||||
execx($(starship init xonsh))
|
||||
```
|
||||
|
||||
|
||||
#### Cmd
|
||||
|
||||
আপনাকে Cmd এর সাথে [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) ব্যবহার করতে হবে । Add the following to a file `starship.lua` and place this file in Clink scripts directory:
|
||||
|
||||
```lua
|
||||
-- starship.lua
|
||||
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
@@ -1,612 +0,0 @@
|
||||
# Advanced Configuration
|
||||
|
||||
While Starship is a versatile shell, sometimes you need to do more than edit `starship.toml` to get it to do certain things. This page details some of the more advanced configuration techniques used in starship.
|
||||
|
||||
> [!WARNING] The configurations in this section are subject to change in future releases of Starship.
|
||||
|
||||
## TransientPrompt in PowerShell
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`.
|
||||
|
||||
By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```powershell
|
||||
function Invoke-Starship-TransientFunction {
|
||||
&starship module character
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
|
||||
Enable-TransientPrompt
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Cmd
|
||||
|
||||
Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient <value>` where \<value\> can be one of:
|
||||
|
||||
- `always`: always replace the previous prompt
|
||||
- `same_dir`: replace the previous prompt only if the working directory is same
|
||||
- `off`: do not replace the prompt (i.e. turn off transience)
|
||||
|
||||
You need to do this only once. Make the following changes to your `starship.lua` to customize what gets displayed on the left and on the right:
|
||||
|
||||
- By default, the left side of input gets replaced with `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_prompt_func(prompt)
|
||||
return io.popen("starship module character"
|
||||
.." --keymap="..rl.getvariable('keymap')
|
||||
):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_rprompt_func(prompt)
|
||||
return io.popen("starship module time"):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Fish
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`.
|
||||
|
||||
Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct.
|
||||
|
||||
- By default, the left side of input gets replaced with a bold-green `❯`. To customize this, define a new function called `starship_transient_prompt_func`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_prompt_func
|
||||
starship module character
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_rprompt_func
|
||||
starship module time
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Bash
|
||||
|
||||
The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=<value>`:
|
||||
|
||||
The \<value\> here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \<value\>, the prompt specified by `PS1` is erased on leaving the current command line. If \<value\> contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in \<value\> and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored.
|
||||
|
||||
Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on the left and on the right:
|
||||
|
||||
- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_ps1_final='$(starship module character)'
|
||||
```
|
||||
|
||||
- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_rps1_final='$(starship module time)'
|
||||
```
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in Cmd
|
||||
|
||||
Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements:
|
||||
|
||||
- To run a custom function right before the prompt is drawn, define a new function called `starship_preprompt_user_func`. This function receives the current prompt as a string that you can utilize. For example, to draw a rocket before the prompt, you would do
|
||||
|
||||
```lua
|
||||
function starship_preprompt_user_func(prompt)
|
||||
print("🚀")
|
||||
end
|
||||
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
- To run a custom function right before a command is executed, define a new function called `starship_precmd_user_func`. This function receives the current commandline as a string that you can utilize. For example, to print the command that's about to be executed, you would do
|
||||
|
||||
```lua
|
||||
function starship_precmd_user_func(line)
|
||||
print("Executing: "..line)
|
||||
end
|
||||
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in Bash
|
||||
|
||||
Bash does not have a formal preexec/precmd framework like most other shells. Because of this, it is difficult to provide fully customizable hooks in `bash`. However, Starship does give you limited ability to insert your own functions into the prompt-rendering procedure:
|
||||
|
||||
- To run a custom function right before the prompt is drawn, define a new function and then assign its name to `starship_precmd_user_func`. For example, to draw a rocket before the prompt, you would do
|
||||
|
||||
```bash
|
||||
function blastoff(){
|
||||
echo "🚀"
|
||||
}
|
||||
starship_precmd_user_func="blastoff"
|
||||
```
|
||||
|
||||
- To run a custom function right before a command runs, you can use the [`DEBUG` trap mechanism](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/). However, you **must** trap the DEBUG signal _before_ initializing Starship! Starship can preserve the value of the DEBUG trap, but if the trap is overwritten after starship starts up, some functionality will break.
|
||||
|
||||
```bash
|
||||
function blastoff(){
|
||||
echo "🚀"
|
||||
}
|
||||
trap blastoff DEBUG # Trap DEBUG *before* running starship
|
||||
set -o functrace
|
||||
eval $(starship init bash)
|
||||
set +o functrace
|
||||
```
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in PowerShell
|
||||
|
||||
PowerShell does not have a formal preexec/precmd framework like most other shells. Because of this, it is difficult to provide fully customizable hooks in `powershell`. However, Starship does give you limited ability to insert your own functions into the prompt-rendering procedure:
|
||||
|
||||
Create a function named `Invoke-Starship-PreCommand`
|
||||
|
||||
```powershell
|
||||
function Invoke-Starship-PreCommand {
|
||||
$host.ui.Write("🚀")
|
||||
}
|
||||
```
|
||||
|
||||
## Change Window Title
|
||||
|
||||
Some shell prompts will automatically change the window title for you (e.g. to reflect your working directory). Fish even does it by default. Starship does not do this, but it's fairly straightforward to add this functionality to `bash`, `zsh`, `cmd` or `powershell`.
|
||||
|
||||
First, define a window title change function (identical in bash and zsh):
|
||||
|
||||
```bash
|
||||
function set_win_title(){
|
||||
echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007"
|
||||
}
|
||||
```
|
||||
|
||||
You can use variables to customize this title (`$USER`, `$HOSTNAME`, and `$PWD` are popular choices).
|
||||
|
||||
In `bash`, set this function to be the precmd starship function:
|
||||
|
||||
```bash
|
||||
starship_precmd_user_func="set_win_title"
|
||||
```
|
||||
|
||||
In `zsh`, add this to the `precmd_functions` array:
|
||||
|
||||
```bash
|
||||
precmd_functions+=(set_win_title)
|
||||
```
|
||||
|
||||
If you like the result, add these lines to your shell configuration file (`~/.bashrc` or `~/.zshrc`) to make it permanent.
|
||||
|
||||
For example, if you want to display your current directory in your terminal tab title, add the following snippet to your `~/.bashrc` or `~/.zshrc`:
|
||||
|
||||
```bash
|
||||
function set_win_title(){
|
||||
echo -ne "\033]0; $(basename "$PWD") \007"
|
||||
}
|
||||
starship_precmd_user_func="set_win_title"
|
||||
```
|
||||
|
||||
For Cmd, you can change the window title using the `starship_preprompt_user_func` function.
|
||||
|
||||
```lua
|
||||
function starship_preprompt_user_func(prompt)
|
||||
console.settitle(os.getenv('USERNAME').."@"..os.getenv('COMPUTERNAME')..": "..os.getcwd())
|
||||
end
|
||||
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
You can also set a similar output with PowerShell by creating a function named `Invoke-Starship-PreCommand`.
|
||||
|
||||
```powershell
|
||||
# edit $PROFILE
|
||||
function Invoke-Starship-PreCommand {
|
||||
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
```
|
||||
|
||||
## Enable Right Prompt
|
||||
|
||||
Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`.
|
||||
|
||||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill).
|
||||
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash.
|
||||
|
||||
Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash.
|
||||
|
||||
### Example
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# A minimal left prompt
|
||||
format = """$character"""
|
||||
|
||||
# move the rest of the prompt to the right
|
||||
right_format = """$all"""
|
||||
```
|
||||
|
||||
Produces a prompt like the following:
|
||||
|
||||
```
|
||||
▶ starship on rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
|
||||
```
|
||||
|
||||
## Continuation Prompt
|
||||
|
||||
Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote).
|
||||
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`.
|
||||
|
||||
Note: `continuation_prompt` should be set to a literal string without any variables.
|
||||
|
||||
Note: Continuation prompts are only available in the following shells:
|
||||
|
||||
- `bash`
|
||||
- `zsh`
|
||||
- `PowerShell`
|
||||
|
||||
### Example
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# A continuation prompt that displays two filled-in arrows
|
||||
continuation_prompt = '▶▶ '
|
||||
```
|
||||
|
||||
## Statusline for Claude Code
|
||||
|
||||
Starship supports displaying a custom statusline when running inside Claude Code, Anthropic's CLI tool for interactive coding with Claude. This statusline provides real-time information about your Claude session, including the model being used, context window usage, and session costs.
|
||||
|
||||
For more information about the Claude Code statusline feature, see the [Claude Code statusline documentation](https://code.claude.com/docs/en/statusline).
|
||||
|
||||
### Setup
|
||||
|
||||
To use Starship as your Claude Code statusline:
|
||||
|
||||
1. Run `/statusline` in Claude Code and ask it to configure Starship, or manually add the following to your `.claude/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"statusLine": {
|
||||
"type": "command",
|
||||
"command": "starship statusline claude-code"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. Customize the statusline appearance in your `~/.config/starship.toml` (see [Configuration](#configuration) below)
|
||||
|
||||
### Overview
|
||||
|
||||
When invoked with `starship statusline claude-code`, Starship receives Claude Code session data via stdin and renders a statusline using a dedicated profile named `claude-code`.
|
||||
|
||||
The profile includes three specialized modules:
|
||||
|
||||
- `claude_model`: Displays the current Claude model being used
|
||||
- `claude_context`: Shows context window usage with a visual gauge
|
||||
- `claude_cost`: Displays session cost and statistics
|
||||
|
||||
The default profile format is:
|
||||
|
||||
```toml
|
||||
[profiles]
|
||||
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
You can customize the Claude Code statusline by modifying the `claude-code` profile and individual module configurations in your `~/.config/starship.toml`:
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Customize the claude-code profile
|
||||
[profiles]
|
||||
claude-code = "$claude_model$claude_context$claude_cost"
|
||||
|
||||
# Configure individual modules
|
||||
[claude_model]
|
||||
format = "[$symbol$model]($style) "
|
||||
symbol = "🤖 "
|
||||
style = "bold blue"
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge $percentage]($style) "
|
||||
gauge_width = 10
|
||||
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost]($style) "
|
||||
symbol = "💰 "
|
||||
```
|
||||
|
||||
### Claude Model
|
||||
|
||||
The `claude_model` module displays the current Claude model being used in the session.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| --------------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `format` | `'[$symbol$model]($style) '` | The format for the module. |
|
||||
| `symbol` | `'🤖 '` | The symbol shown before the model name. |
|
||||
| `style` | `'bold blue'` | The style for the module. |
|
||||
| `model_aliases` | `{}` | Map of model IDs or display names to shorter aliases. Checks ID first, then display name. |
|
||||
| `disabled` | `false` | Disables the `claude_model` module. |
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| --------- | ------------------- | ------------------------------------- |
|
||||
| model | `Claude 3.5 Sonnet` | The display name of the current model |
|
||||
| model_id | `claude-3-5-sonnet` | The model ID |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the value of option `style` |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Basic customization
|
||||
[claude_model]
|
||||
format = "on [$symbol$model]($style) "
|
||||
symbol = "🧠 "
|
||||
style = "bold cyan"
|
||||
|
||||
# Using model aliases for vendor-specific model names
|
||||
# You can alias by model ID or display name
|
||||
[claude_model.model_aliases]
|
||||
# Alias by vendor model ID (e.g. AWS Bedrock)
|
||||
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
|
||||
# Alias by display name
|
||||
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
|
||||
```
|
||||
|
||||
### Claude Context
|
||||
|
||||
The `claude_context` module displays context window usage as a percentage and visual gauge. The style automatically changes based on configurable thresholds.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------------------- | --------------------------------- | -------------------------------------------------- |
|
||||
| `format` | `'[$gauge $percentage]($style) '` | The format for the module. |
|
||||
| `symbol` | `''` | The symbol shown before the gauge. |
|
||||
| `gauge_width` | `5` | The width of the gauge in characters. |
|
||||
| `gauge_full_symbol` | `'█'` | The symbol used for filled segments of the gauge. |
|
||||
| `gauge_partial_symbol` | `'▒'` | The symbol used for partial segments of the gauge. |
|
||||
| `gauge_empty_symbol` | `'░'` | The symbol used for empty segments of the gauge. |
|
||||
| `display` | [see below](#display) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_context` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define thresholds and styles for different usage levels. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------------------ |
|
||||
| `threshold` | `0.0` | The minimum context windows usage percentage to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this the configuration is matched. |
|
||||
|
||||
```toml
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
hidden = true
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 30
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 60
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 80
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| ---------------------------- | ------- | ----------------------------------------------------- |
|
||||
| gauge | `██▒░░` | Visual representation of context usage |
|
||||
| percentage | `65%` | Context usage as a percentage |
|
||||
| input_tokens | `45.2k` | Total input tokens in conversation |
|
||||
| output_tokens | `12.3k` | Total output tokens in conversation |
|
||||
| curr_input_tokens | `5.1k` | Input tokens from most recent API call |
|
||||
| curr_output_tokens | `1.2k` | Output tokens from most recent API call |
|
||||
| curr_cache_creation_tokens | `1.5k` | Cache creation tokens from most recent API call |
|
||||
| curr_cache_read_tokens | `23.4k` | Cache read tokens from most recent API call |
|
||||
| total_tokens | `200k` | Total context window size |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
**Minimal gauge-only display**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge]($style) "
|
||||
gauge_width = 10
|
||||
```
|
||||
|
||||
**Detailed token information**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
|
||||
```
|
||||
|
||||
**Custom gauge symbols**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
gauge_full_symbol = "▰"
|
||||
gauge_partial_symbol = ""
|
||||
gauge_empty_symbol = "▱"
|
||||
gauge_width = 10
|
||||
format = "[$gauge]($style) "
|
||||
```
|
||||
|
||||
**Custom thresholds**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 50
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 75
|
||||
style = "bold orange"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 90
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
### Claude Cost
|
||||
|
||||
The `claude_cost` module displays the total cost of the current Claude Code session in USD. Like `claude_context`, it supports threshold-based styling.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------- | ---------------------------------- | ----------------------------------- |
|
||||
| `format` | `'[$symbol(\\$$cost)]($style) '` | The format for the module. |
|
||||
| `symbol` | `'💰 '` | The symbol shown before the cost. |
|
||||
| `display` | [see below](#display-1) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_cost` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define cost thresholds and styles. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------- |
|
||||
| `threshold` | `0.0` | The minimum cost in USD to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this configuration is matched. |
|
||||
|
||||
**Default configuration:**
|
||||
|
||||
```toml
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 1.0
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 5.0
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| Variable | Example | Description |
|
||||
| ------------- | -------- | ----------------------------------------------------- |
|
||||
| cost | `1.23` | Total session cost in USD (formatted to 2 decimals) |
|
||||
| duration | `1m 30s` | Total session duration |
|
||||
| api_duration | `45s` | Total API call duration |
|
||||
| lines_added | `1.2k` | Total lines of code added |
|
||||
| lines_removed | `500` | Total lines of code removed |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Cost with code change statistics
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
|
||||
|
||||
# Hide module until cost exceeds $0.10
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.10
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 2.0
|
||||
style = "bold red"
|
||||
|
||||
# Show duration information
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost ($duration)]($style) "
|
||||
```
|
||||
|
||||
## Style Strings
|
||||
|
||||
Style strings are a list of words, separated by whitespace. The words are not case sensitive (i.e. `bold` and `BoLd` are considered the same string). Each word can be one of the following:
|
||||
|
||||
- `bold`
|
||||
- `italic`
|
||||
- `underline`
|
||||
- `dimmed`
|
||||
- `inverted`
|
||||
- `blink`
|
||||
- `hidden`
|
||||
- `strikethrough`
|
||||
- `bg:<color>`
|
||||
- `fg:<color>`
|
||||
- `<color>`
|
||||
- `none`
|
||||
|
||||
where `<color>` is a color specifier (discussed below). `fg:<color>` and `<color>` currently do the same thing, though this may change in the future. `<color>` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise. `inverted` swaps the background and foreground colors. The order of words in the string does not matter.
|
||||
|
||||
The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future.
|
||||
|
||||
A color specifier can be one of the following:
|
||||
|
||||
- One of the standard terminal colors: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`).
|
||||
- A `#` followed by a six-digit hexadecimal number. This specifies an [RGB color hex code](https://www.w3schools.com/colors/colors_hexadecimal.asp).
|
||||
- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png).
|
||||
|
||||
If multiple colors are specified for foreground/background, the last one in the string will take priority.
|
||||
|
||||
Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist:
|
||||
|
||||
- Many terminals disable support for `blink` by default.
|
||||
- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
|
||||
- `strikethrough` is not supported by the default macOS Terminal.app.
|
||||
@@ -1,130 +0,0 @@
|
||||
# Frequently Asked Questions
|
||||
|
||||
## What is the configuration used in the demo GIF?
|
||||
|
||||
- **Terminal Emulator**: [iTerm2](https://iterm2.com/)
|
||||
- **Theme**: Minimal
|
||||
- **Color Scheme**: [Snazzy](https://github.com/sindresorhus/iterm2-snazzy)
|
||||
- **Font**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)
|
||||
- **Shell**: [Fish Shell](https://fishshell.com/)
|
||||
- **Configuration**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish)
|
||||
- **Prompt**: [Starship](https://starship.rs/)
|
||||
|
||||
## How do I get command completion as shown in the demo GIF?
|
||||
|
||||
Completion support, or autocomplete, is provided by your shell of choice. In the case of the demo, the demo was done with [Fish Shell](https://fishshell.com/), which provides completions by default. If you use Z Shell (zsh), I'd suggest taking a look at [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions).
|
||||
|
||||
## Do top level `format` and `<module>.disabled` do the same thing?
|
||||
|
||||
Yes, they can both be used to disable modules in the prompt. If all you plan to do is disable modules, `<module>.disabled` is the preferred way to do so for these reasons:
|
||||
|
||||
- Disabling modules is more explicit than omitting them from the top level `format`
|
||||
- Newly created modules will be added to the prompt as Starship is updated
|
||||
|
||||
## The docs say Starship is cross-shell. Why isn't my preferred shell supported?
|
||||
|
||||
The way Starship is built, it should be possible to add support for virtually any shell. The starship binary is stateless and shell agnostic, so as long as your shell supports prompt customization and shell expansion, Starship can be used.
|
||||
|
||||
Here's a small example getting Starship working with bash:
|
||||
|
||||
```sh
|
||||
# Get the status code from the last command executed
|
||||
STATUS=$?
|
||||
|
||||
# Get the number of jobs running.
|
||||
NUM_JOBS=$(jobs -p | wc -l)
|
||||
|
||||
# Set the prompt to the output of `starship prompt`
|
||||
PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)"
|
||||
```
|
||||
|
||||
The [Bash implementation](https://github.com/starship/starship/blob/master/src/init/starship.bash) built into Starship is slightly more complex to allow for advanced features like the [Command Duration module](https://starship.rs/config/#command-duration) and to ensure that Starship is compatible with pre-installed Bash configurations.
|
||||
|
||||
For a list of all flags accepted by `starship prompt`, use the following command:
|
||||
|
||||
```sh
|
||||
starship prompt --help
|
||||
```
|
||||
|
||||
The prompt will use as much context as is provided, but no flags are "required".
|
||||
|
||||
## How do I run Starship on Linux distributions with older versions of glibc?
|
||||
|
||||
If you get an error like "_version 'GLIBC_2.18' not found (required by starship)_" when using the prebuilt binary (for example, on CentOS 6 or 7), you can use a binary compiled with `musl` instead of `glibc`:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl
|
||||
```
|
||||
|
||||
## Why do I see `Executing command "..." timed out.` warnings?
|
||||
|
||||
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings.
|
||||
|
||||
## I see symbols I don't understand or expect, what do they mean?
|
||||
|
||||
If you see symbols that you don't recognise you can use `starship explain` to explain the currently showing modules.
|
||||
|
||||
## Starship is doing something unexpected, how can I debug it?
|
||||
|
||||
You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs can be very verbose so it is often useful to use the `module` command if you are trying to debug a particular module, for example, if you are trying to debug the `rust` module you could run the following command to get the trace logs and output from the module.
|
||||
|
||||
```sh
|
||||
env STARSHIP_LOG=trace starship module rust
|
||||
```
|
||||
|
||||
If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame.
|
||||
|
||||
```sh
|
||||
env STARSHIP_LOG=trace starship timings
|
||||
```
|
||||
|
||||
This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output.
|
||||
|
||||
Finally if you find a bug you can use the `bug-report` command to create a GitHub issue.
|
||||
|
||||
```sh
|
||||
starship bug-report
|
||||
```
|
||||
|
||||
## Why don't I see a glyph symbol in my prompt?
|
||||
|
||||
The most common cause of this is system misconfiguration. Some Linux distros in particular do not come with font support out-of-the-box. You need to ensure that:
|
||||
|
||||
- Your locale is set to a UTF-8 value, like `de_DE.UTF-8` or `ja_JP.UTF-8`. If `LC_ALL` is not a UTF-8 value, [you will need to change it](https://www.tecmint.com/set-system-locales-in-linux/).
|
||||
- You have an emoji font installed. Most systems come with an emoji font by default, but some (notably Arch Linux) do not. You can usually install one through your system's package manager--[noto emoji](https://www.google.com/get/noto/help/emoji/) is a popular choice.
|
||||
- You are using a [Nerd Font](https://www.nerdfonts.com/).
|
||||
|
||||
To test your system, run the following commands in a terminal:
|
||||
|
||||
```sh
|
||||
echo -e "\xf0\x9f\x90\x8d"
|
||||
echo -e "\xee\x82\xa0"
|
||||
```
|
||||
|
||||
The first line should produce a [snake emoji](https://emojipedia.org/snake/), while the second should produce a [powerline branch symbol (e0a0)](https://github.com/ryanoasis/powerline-extra-symbols#glyphs).
|
||||
|
||||
If either symbol fails to display correctly, your system is still misconfigured. Unfortunately, getting font configuration correct is sometimes difficult. Users on the Discord may be able to help. If both symbols display correctly, but you still don't see them in starship, [file a bug report!](https://github.com/starship/starship/issues/new/choose)
|
||||
|
||||
## How do I uninstall Starship?
|
||||
|
||||
Starship is just as easy to uninstall as it is to install in the first place.
|
||||
|
||||
1. Remove any lines in your shell config (e.g. `~/.bashrc`) used to initialize Starship.
|
||||
1. Delete the Starship binary.
|
||||
|
||||
If Starship was installed using a package manager, please refer to their docs for uninstallation instructions.
|
||||
|
||||
If Starship was installed using the install script, the following command will delete the binary:
|
||||
|
||||
```sh
|
||||
# Locate and delete the starship binary
|
||||
sh -c 'rm "$(command -v 'starship')"'
|
||||
```
|
||||
|
||||
## How do I install Starship without `sudo`?
|
||||
|
||||
The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation directory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`.
|
||||
|
||||
For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options.
|
||||
|
||||
When using a package manager, see the documentation for your package manager about installing with or without `sudo`.
|
||||
@@ -1,449 +0,0 @@
|
||||
<p align="center">
|
||||
<img
|
||||
width="400"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/logo.png"
|
||||
alt="Starship – Cross-shell prompt"
|
||||
/>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/actions"
|
||||
><img
|
||||
src="https://img.shields.io/github/actions/workflow/status/starship/starship/workflow.yml?branch=master&label=workflow&style=flat-square"
|
||||
alt="GitHub Actions workflow status"
|
||||
/></a>
|
||||
<a href="https://crates.io/crates/starship"
|
||||
><img
|
||||
src="https://img.shields.io/crates/v/starship?style=flat-square"
|
||||
alt="Crates.io version"
|
||||
/></a>
|
||||
<a href="https://repology.org/project/starship/versions"
|
||||
><img
|
||||
src="https://img.shields.io/repology/repositories/starship?label=in%20repositories&style=flat-square"
|
||||
alt="Packaging status" /></a
|
||||
><br />
|
||||
<a href="https://discord.gg/starship"
|
||||
><img
|
||||
src="https://img.shields.io/discord/567163873606500352?label=discord&logoColor=white&style=flat-square"
|
||||
alt="Chat on Discord"
|
||||
/></a>
|
||||
<a href="https://twitter.com/StarshipPrompt"
|
||||
><img
|
||||
src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square"
|
||||
alt="Follow @StarshipPrompt on Twitter"
|
||||
/></a>
|
||||
<a href="https://stand-with-ukraine.pp.ua"
|
||||
><img
|
||||
src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraineFlat.svg"
|
||||
alt="Stand With Ukraine"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://starship.rs">ওয়েবসাইট</a>
|
||||
·
|
||||
<a href="#🚀-installation">ইন্সটল</a>
|
||||
·
|
||||
<a href="https://starship.rs/config/"> কনফিগ</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/blob/master/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-us.png"
|
||||
alt="English"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/de-DE/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-de.png"
|
||||
alt="Deutsch"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/es-ES/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-es.png"
|
||||
alt="Español"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/fr-FR/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-fr.png"
|
||||
alt="Français"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/id-ID/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-id.png"
|
||||
alt="Bahasa Indonesia"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/it-IT/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-it.png"
|
||||
alt="Italiano"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/ja-JP/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-jp.png"
|
||||
alt="日本語"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/pt-BR/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-br.png"
|
||||
alt="Português do Brasil"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/ru-RU/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png"
|
||||
alt="Русский"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/uk-UA/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ua.png"
|
||||
alt="Українська"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/vi-VN/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-vn.png"
|
||||
alt="Tiếng Việt"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/zh-CN/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-cn.png"
|
||||
alt="简体中文"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/zh-TW/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-tw.png"
|
||||
alt="繁體中文"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
<h1></h1>
|
||||
|
||||
<img
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/demo.gif"
|
||||
alt="Starship with iTerm2 and the Snazzy theme"
|
||||
width="50%"
|
||||
align="right"
|
||||
/>
|
||||
|
||||
**আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট!**
|
||||
|
||||
- **দ্রুত:** দ্রুত - সত্যি সত্যিই _অনেক_ দ্রুত! 🚀
|
||||
- **কাস্টমাইজ করার সুবিধা:** প্রম্পটের প্রতিটি দিক কনফিগ করুন মন মত ।
|
||||
- **ব্যতিক্রমহীন:** যেকোনো অপারেটিং সিস্টেম ও শেলে কাজ করে ।
|
||||
- **চালাক:** এক নজরে দরকারি সকল তথ্য দেখা যায় ।
|
||||
- **ফিচার সমৃদ্ধ:** আপনার প্রিয় সকল টুল ব্যবহার করতে পারবেন ।
|
||||
- **সহজ:** অনায়াসে ইন্সটল করুন – মিনিটের মধ্যে ব্যবহার শুরু করে দিন ।
|
||||
|
||||
<p align="center">
|
||||
<a href="https://starship.rs/config/"><strong>Starship এর ডকুমেন্টেশন ঘুরে দেখুন ▶</strong></a>
|
||||
</p>
|
||||
|
||||
<a name="🚀-installation"></a>
|
||||
|
||||
## 🚀 ইন্সটল
|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- আপনার থেকে টার্মিনালে একটি [Nerd Font](https://www.nerdfonts.com/) ব্যবহার করতে হবে (উদাহরণস্বরূপ আপনি [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) টি ব্যবহার করতে পারেন) ।
|
||||
|
||||
### ধাপ ১. Starship ইন্সটল করুন
|
||||
|
||||
ইনস্টলেশন নির্দেশিকা দেখতে নিচের তালিকা থেকে আপনার অপারেটিং সিস্টেম বাছাই করুন:
|
||||
|
||||
<details>
|
||||
<summary>অ্যান্ড্রয়েড</summary>
|
||||
|
||||
নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন:
|
||||
|
||||
| রিপোজিটরি | নির্দেশাবলী |
|
||||
| --------------------------------------------------------------------------------- | ---------------------- |
|
||||
| [Termux](https://github.com/termux/termux-packages/tree/master/packages/starship) | `pkg install starship` |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>বিএসডি</summary>
|
||||
|
||||
নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন:
|
||||
|
||||
| ডিস্ট্রিবিউশন | রিপোজিটরি | নির্দেশাবলী |
|
||||
| ------------- | -------------------------------------------------------- | --------------------------------- |
|
||||
| **_যেকোনো_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` |
|
||||
| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>লিনাক্স </summary>
|
||||
|
||||
আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি ইন্সটল করুন:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
অথবা, নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন:
|
||||
|
||||
| ডিস্ট্রিবিউশন | রিপোজিটরি | নির্দেশাবলী |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
||||
| **_যেকোনো_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| _যেকোনো_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` |
|
||||
| _যেকোনো_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` |
|
||||
| Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` |
|
||||
| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` |
|
||||
| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Debian 13+ | [Debian Main](https://sources.debian.org/src/starship/1.22.1-1/) | `apt install starship` |
|
||||
| Fedora 40+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` |
|
||||
| Manjaro | | `pacman -S starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/starship/package.nix) | `nix-env -iA nixpkgs.starship` |
|
||||
| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` |
|
||||
| Ubuntu 25.04+ | [Ubuntu Universe](https://packages.ubuntu.com/source/plucky/starship) | `apt install starship` |
|
||||
| Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>ম্যাক ওএস </summary>
|
||||
|
||||
আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি ইন্সটল করুন:
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
```
|
||||
|
||||
অথবা, নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন:
|
||||
|
||||
| রিপোজিটরি | নির্দেশাবলী |
|
||||
| -------------------------------------------------------- | --------------------------------------- |
|
||||
| **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` |
|
||||
| [Homebrew](https://formulae.brew.sh/formula/starship) | `brew install starship` |
|
||||
| [MacPorts](https://ports.macports.org/port/starship) | `port install starship` |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>উইন্ডোজ</summary>
|
||||
|
||||
আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি [রিলিজ সেকশনে](https://github.com/starship/starship/releases/latest) থাকা MSI-ইন্সটলার ব্যবহার করে ইন্সটল করুন ।
|
||||
|
||||
নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন:
|
||||
|
||||
| রিপোজিটরি | নির্দেশাবলী |
|
||||
| -------------------------------------------------------------------------------------------- | --------------------------------------- |
|
||||
| **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| [Chocolatey](https://community.chocolatey.org/packages/starship) | `choco install starship` |
|
||||
| [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` |
|
||||
| [Scoop](https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json) | `scoop install starship` |
|
||||
| [winget](https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Starship/Starship) | `winget install --id Starship.Starship` |
|
||||
|
||||
</details>
|
||||
|
||||
### ধাপ ২. Starship ব্যবহার করার জন্য আপনার শেল প্রস্তুত করুন
|
||||
|
||||
Starship চালু করতে আপনার শেল কে ঠিক মতো কনফিগার করুন । নিম্নলিখিত তালিকা থেকে আপনার শেল বাছাই করুন:
|
||||
|
||||
<details>
|
||||
<summary>Bash</summary>
|
||||
|
||||
`~/.bashrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
eval "$(starship init bash)"
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cmd</summary>
|
||||
|
||||
আপনাকে Cmd এর সাথে [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) ব্যবহার করতে হবে । `%LocalAppData%\clink\starship.lua` ফাইল টি তৈরি করে তার মধ্যে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```lua
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Elvish</summary>
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
|
||||
```sh
|
||||
eval (starship init elvish)
|
||||
```
|
||||
|
||||
Note: Only Elvish v0.18+ is supported. For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Fish</summary>
|
||||
|
||||
`~/.config/fish/config.fish` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```fish
|
||||
starship init fish | source
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Ion</summary>
|
||||
|
||||
`~/.config/ion/initrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
eval $(starship init ion)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Nushell</summary>
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
```
|
||||
|
||||
বিঃদ্রঃ শুধুমাত্র Nushell v0.96+ কাজ করবে ।
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>PowerShell</summary>
|
||||
|
||||
আপনার PowerShell কনফিগের (PowerShell এ `$PROFILE` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনটি যোগ করুন:
|
||||
|
||||
```powershell
|
||||
Invoke-Expression (&starship init powershell)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Tcsh</summary>
|
||||
|
||||
`~/.tcshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
eval `starship init tcsh`
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Xonsh</summary>
|
||||
|
||||
`~/.xonshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```python
|
||||
execx($(starship init xonsh))
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Zsh</summary>
|
||||
|
||||
`~/.zshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন:
|
||||
|
||||
```sh
|
||||
eval "$(starship init zsh)"
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### ধাপ ৩. Starship কনফিগার করুন
|
||||
|
||||
নতুন একটি শেল চালু করুন, এরপর আপনি আপনার সুন্দর নতুন শেল প্রম্প্ট দেখতে পাবেন । পূর্ব নির্ধারিত কনফিগ যদি ভালো লেগে থাকে, তাহলে উপভোগ করুন!
|
||||
|
||||
আপনি যদি Starship কে নিজের মতো করে কাস্টমাইজ করতে চান:
|
||||
|
||||
- **[কনফিগারেশন](https://starship.rs/config/)** – আপনার নিজের ইচ্ছা মতো নিজের প্রম্প্টকে পরিবর্তন করতে শিখুন
|
||||
|
||||
- **[অন্যদের তৈরি কনফিগ](https://starship.rs/presets/)** – অন্যদের তৈরি করা সুন্দর কনফিগ দেখে অনুপ্রাণিত হন
|
||||
|
||||
## 🤝 নিজে অবদান রাখুন
|
||||
|
||||
আমরা সবসময় **সকল দক্ষতা স্তরের** অবদানকারীদের খুঁজছি! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/issues?q=state%3Aopen%20label%3A%22%F0%9F%8C%B1%20good%20first%20issue%22).
|
||||
|
||||
আপনি যদি ইংরেজি ছাড়া অন্য কোন ভাষায় সাবলীল হন, তাহলে আপনি আমাদের ডকুমেন্টেশন অনুবাদে এবং আপ-টু-ডেট রাখতে সহায়তা করতে পারেন, আমরা খুবই কৃতজ্ঞ হব । যদি এক্ষেত্রে সাহায্য করতে চান, তাহলে [Starship Crowdin](https://translate.starship.rs/) পেইজ এ গিয়ে আপনার অনুবাদ গুলি যোগ করতে পারবেন ।
|
||||
|
||||
আপনি যদি Starship এ অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে আমাদের অবদান রাখার [নির্দেশিকা ও নিয়মকানুন](https://github.com/starship/starship/blob/master/CONTRIBUTING.md) দেখে নিবেন । এছাড়াও, নির্দ্বিধায় আমাদের [Discord](https://discord.gg/8Jzqu3T) সার্ভারে এসে হাই বলে যান । 👋
|
||||
|
||||
## 💭 অনুপ্রেরণা
|
||||
|
||||
অনুগ্রহ করে Starship এর পূর্ববর্তী এইসব প্রোজেক্ট থেকে ঘুরে আসুন, যারা Starship তৈরিতে অনেক অনুপ্রেরণা দিয়েছে । 🙏
|
||||
|
||||
- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts.
|
||||
|
||||
- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript.
|
||||
|
||||
- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons.
|
||||
|
||||
## ❤️ স্পনসর
|
||||
|
||||
[একজন স্পনসর হয়ে](https://github.com/sponsors/starship) এই প্রোজেক্টটিকে আর্থিক ভাবে সহায়তা করুন । আপনার নাম অথবা লোগো নিম্নে দেখা যাবে আপনার ওয়েবসাইট এর লিঙ্ক সহ ।
|
||||
|
||||
## 🔒 Code Signing Policy
|
||||
|
||||
Free code signing provided by [SignPath.io](https://signpath.io), certificate by [SignPath Foundation](https://signpath.org).
|
||||
|
||||
Code Signing Roles:
|
||||
|
||||
- Reviewers: [Astronauts](https://github.com/orgs/starship/teams/astronauts)
|
||||
- Approvers and Authors: [Mission Control](https://github.com/orgs/starship/teams/mission-control)
|
||||
|
||||
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<img width="100" src="https://raw.githubusercontent.com/starship/starship/master/media/icon.png" alt="Starship rocket icon">
|
||||
</p>
|
||||
|
||||
## 📝 লাইসেন্স
|
||||
|
||||
Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).<br /> এই প্রোজেক্টটি [ISC](https://github.com/starship/starship/blob/master/LICENSE) লাইসেন্সের অধিনে রয়েছে ।
|
||||
@@ -1,87 +0,0 @@
|
||||
# Advanced Installation
|
||||
|
||||
To install starship, you need to do two things:
|
||||
|
||||
1. Get the **starship** binary onto your computer
|
||||
1. Tell your shell to use the starship binary as its prompt by modifying its init scripts
|
||||
|
||||
For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed.
|
||||
|
||||
There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out!
|
||||
|
||||
## [Chocolatey](https://chocolatey.org)
|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
Head over to the [Chocolatey installation page](https://chocolatey.org/install) and follow the instructions to install Chocolatey.
|
||||
|
||||
### ইন্সটল
|
||||
|
||||
```powershell
|
||||
choco install starship
|
||||
```
|
||||
|
||||
## [termux](https://termux.com)
|
||||
|
||||
### ইন্সটল
|
||||
|
||||
```sh
|
||||
pkg install starship
|
||||
```
|
||||
|
||||
## [Funtoo Linux](https://www.funtoo.org/Welcome)
|
||||
|
||||
### ইন্সটল
|
||||
|
||||
On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage:
|
||||
|
||||
```sh
|
||||
emerge app-shells/starship
|
||||
```
|
||||
|
||||
## [Nix](https://wiki.nixos.org/wiki/Nix)
|
||||
|
||||
### Getting the Binary
|
||||
|
||||
#### Imperatively
|
||||
|
||||
```sh
|
||||
nix-env -iA nixos.starship
|
||||
```
|
||||
|
||||
#### Declarative, single user, via [home-manager](https://github.com/nix-community/home-manager)
|
||||
|
||||
Enable the `programs.starship` module in your `home.nix` file, and add your settings
|
||||
|
||||
```nix
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
# Configuration written to ~/.config/starship.toml
|
||||
settings = {
|
||||
# add_newline = false;
|
||||
|
||||
# character = {
|
||||
# success_symbol = "[➜](bold green)";
|
||||
# error_symbol = "[➜](bold red)";
|
||||
# };
|
||||
|
||||
# package.disabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
then run
|
||||
|
||||
```sh
|
||||
home-manager switch
|
||||
```
|
||||
|
||||
#### Declarative, system-wide, with NixOS
|
||||
|
||||
Add `pkgs.starship` to `environment.systemPackages` in your `configuration.nix`, then run
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild switch
|
||||
```
|
||||
@@ -1,267 +0,0 @@
|
||||
# Migrating to v0.45.0
|
||||
|
||||
Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization.
|
||||
|
||||
This guide is intended to walk you through the breaking changes.
|
||||
|
||||
## `prompt_order` has been replaced by a root-level `format`
|
||||
|
||||
Previously to v0.45.0, `prompt_order` would accept an array of module names in the order which they should be rendered by Starship.
|
||||
|
||||
Starship v0.45.0 instead accepts a `format` value, allowing for customization of the prompt outside of the modules themselves.
|
||||
|
||||
**Example pre-v0.45.0 configuration**
|
||||
|
||||
```toml
|
||||
prompt_order = [
|
||||
"username",
|
||||
"hostname",
|
||||
"directory",
|
||||
"git_branch",
|
||||
"git_commit",
|
||||
"git_state",
|
||||
"git_status",
|
||||
"cmd_duration",
|
||||
"custom",
|
||||
"line_break",
|
||||
"jobs",
|
||||
"battery",
|
||||
"time",
|
||||
"character",
|
||||
]
|
||||
```
|
||||
|
||||
**Example v0.45.0 configuration**
|
||||
|
||||
```toml
|
||||
format = """\
|
||||
$username\
|
||||
$hostname\
|
||||
$directory\
|
||||
$git_branch\
|
||||
$git_commit\
|
||||
$git_state\
|
||||
$git_status\
|
||||
$cmd_duration\
|
||||
$custom\
|
||||
$line_break\
|
||||
$jobs\
|
||||
$battery\
|
||||
$time\
|
||||
$character\
|
||||
"""
|
||||
```
|
||||
|
||||
## Module `prefix` and `suffix` have been replaced by `format`
|
||||
|
||||
Previously to v0.45.0, some modules would accept `prefix` and/or `suffix` in order to stylize the way that modules are rendered.
|
||||
|
||||
Starship v0.45.0 instead accepts a `format` value, allowing for further customization of how modules are rendered. Instead of defining a prefix and suffix for the context-based variables, the variables can now be substituted from within a format string, which represents the module's output.
|
||||
|
||||
**Example pre-v0.45.0 configuration**
|
||||
|
||||
```toml
|
||||
[cmd_duration]
|
||||
prefix = "took "
|
||||
```
|
||||
|
||||
**Example v0.45.0 configuration**
|
||||
|
||||
```toml
|
||||
[cmd_duration]
|
||||
# $duration – The command duration (e.g. "15s")
|
||||
# $style – The default style of the module (e.g. "bold yellow")
|
||||
format = "took [$duration]($style) "
|
||||
```
|
||||
|
||||
### Affected Modules
|
||||
|
||||
#### Character
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ----------------------- | ---------------- |
|
||||
| `symbol` | `success_symbol` |
|
||||
| `use_symbol_for_status` | `error_symbol` |
|
||||
| `style_success` | `success_symbol` |
|
||||
| `style_failure` | `error_symbol` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[character]
|
||||
-- symbol = "❯"
|
||||
-- error_symbol = "✖"
|
||||
-- use_symbol_for_status = true
|
||||
-- vicmd_symbol = "❮"
|
||||
++ success_symbol = "[❯](bold green)"
|
||||
++ error_symbol = "[❯](bold red)"
|
||||
++ vicmd_symbol = "[❮](bold green)"
|
||||
```
|
||||
|
||||
Previously, the `use_symbol_for_status` property was used to configure the prompt to show the `error_symbol` when the last command resulted in a non-zero status code.
|
||||
|
||||
With the release of v0.45.0, we now always use `error_symbol` after non-zero status codes, unifying `use_symbol_for_status` and `error_symbol` properties.
|
||||
|
||||
To configure the prompt to use the older `use_symbol_for_status = true` configuration, add the following to your config file:
|
||||
|
||||
```toml
|
||||
[character]
|
||||
error_symbol = "[✖](bold red)"
|
||||
```
|
||||
|
||||
_Note:_ The `character` element automatically adds a space after, so unlike the other `format` strings, we specifically do not add one in the above examples.
|
||||
|
||||
#### Command Duration
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[cmd_duration]
|
||||
-- prefix = "took "
|
||||
++ format = "took [$duration]($style) "
|
||||
```
|
||||
|
||||
#### Directory
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[directory]
|
||||
-- prefix = "in "
|
||||
++ format = "[$path]($style)[$read_only]($read_only_style) "
|
||||
```
|
||||
|
||||
#### Environment Variable
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[env_var]
|
||||
-- prefix = ""
|
||||
-- suffix = ""
|
||||
++ format = "with [$env_value]($style) "
|
||||
```
|
||||
|
||||
#### Git Commit
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[git_commit]
|
||||
-- prefix = "("
|
||||
-- suffix = ")"
|
||||
++ format = '[\($hash\)]($style) '
|
||||
```
|
||||
|
||||
#### Git Status
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ----------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
| `show_sync_count` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[git_status]
|
||||
-- prefix = "["
|
||||
-- suffix = "]"
|
||||
-- show_sync_count = false
|
||||
++ format = '([\[$all_status$ahead_behind\]]($style) )'
|
||||
```
|
||||
|
||||
Previously, the `show_sync_count` property was used to configure the prompt to show the number of commits the branch was ahead or behind the remote branch.
|
||||
|
||||
With the release of v0.45.0, this has been replaced with three separate properties, `ahead`, `behind`, and `diverged`.
|
||||
|
||||
To configure the prompt to use the older `show_sync_count = true` configuration, set the following to your config file:
|
||||
|
||||
```toml
|
||||
[git_status]
|
||||
ahead = "⇡${count}"
|
||||
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
|
||||
behind = "⇣${count}"
|
||||
```
|
||||
|
||||
#### Hostname
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[hostname]
|
||||
-- prefix = ""
|
||||
-- suffix = ""
|
||||
++ format = "[$hostname]($style) in "
|
||||
```
|
||||
|
||||
#### Singularity
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `label` | `format` |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[singularity]
|
||||
-- prefix = ""
|
||||
-- suffix = ""
|
||||
++ format = '[$symbol\[$env\]]($style) '
|
||||
```
|
||||
|
||||
#### Time
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ------------- |
|
||||
| `format` | `time_format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[time]
|
||||
-- format = "🕙[ %T ]"
|
||||
++ time_format = "%T"
|
||||
++ format = "at 🕙[$time]($style) "
|
||||
```
|
||||
|
||||
#### Custom Commands
|
||||
|
||||
| Removed Property | Replacement |
|
||||
| ---------------- | ----------- |
|
||||
| `prefix` | `format` |
|
||||
| `suffix` | `format` |
|
||||
|
||||
**Changes to the Default Configuration**
|
||||
|
||||
```diff
|
||||
[custom.example]
|
||||
-- prefix = ""
|
||||
-- suffix = ""
|
||||
++ format = "[$symbol$output]($style) "
|
||||
```
|
||||
@@ -1,79 +0,0 @@
|
||||
# Presets
|
||||
|
||||
Here is a collection of community-submitted configuration presets for Starship. If you have a preset to share, please [submit a PR](https://github.com/starship/starship/edit/master/docs/presets/README.md) updating this file! 😊
|
||||
|
||||
To get details on how to use a preset, simply click on the image.
|
||||
|
||||
## [Nerd Font Symbols](./nerd-font.md)
|
||||
|
||||
This preset changes the symbols for each module to use Nerd Font symbols.
|
||||
|
||||
[](./nerd-font)
|
||||
|
||||
## [No Nerd Fonts](./no-nerd-font.md)
|
||||
|
||||
This preset changes the symbols for several modules so that no Nerd Font symbols are used anywhere in the prompt.
|
||||
|
||||
> [!TIP] This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544).
|
||||
|
||||
[Click to view No Nerd Font preset](./no-nerd-font)
|
||||
|
||||
## [Bracketed Segments](./bracketed-segments.md)
|
||||
|
||||
This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.).
|
||||
|
||||
[](./bracketed-segments)
|
||||
|
||||
## [Plain Text Symbols](./plain-text.md)
|
||||
|
||||
This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode.
|
||||
|
||||
[](./plain-text)
|
||||
|
||||
## [No Runtime Versions](./no-runtimes.md)
|
||||
|
||||
This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you!
|
||||
|
||||
[](./no-runtimes)
|
||||
|
||||
## [No Empty Icons](./no-empty-icons.md)
|
||||
|
||||
This preset does not show icons if the toolset is not found.
|
||||
|
||||
[](./no-empty-icons.md)
|
||||
|
||||
## [Pure Prompt](./pure-preset.md)
|
||||
|
||||
This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure).
|
||||
|
||||
[](./pure-preset)
|
||||
|
||||
## [Pastel Powerline](./pastel-powerline.md)
|
||||
|
||||
This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship.
|
||||
|
||||
[](./pastel-powerline)
|
||||
|
||||
## [Tokyo Night](./tokyo-night.md)
|
||||
|
||||
This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme).
|
||||
|
||||
[](./tokyo-night)
|
||||
|
||||
## [Gruvbox Rainbow](./gruvbox-rainbow.md)
|
||||
|
||||
This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md).
|
||||
|
||||
[](./gruvbox-rainbow)
|
||||
|
||||
## [Jetpack](./jetpack.md)
|
||||
|
||||
This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts.
|
||||
|
||||
[](./jetpack)
|
||||
|
||||
## [Catppuccin Powerline](./catppuccin-powerline.md)
|
||||
|
||||
This preset is a minimally modified version of [Gruvbox Rainbow](./gruvbox-rainbow.md) using the [Catppuccin](https://github.com/catppuccin/catppuccin) theme palette.
|
||||
|
||||
[](./catppuccin-powerline)
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#bracketed-segments)
|
||||
|
||||
# Bracketed Segments Preset
|
||||
|
||||
This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.).
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset bracketed-segments -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/bracketed-segments.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/bracketed-segments.toml
|
||||
@@ -1,28 +0,0 @@
|
||||
[Return to Presets](./#catppuccin-powerline)
|
||||
|
||||
# Catppuccin Powerline Preset
|
||||
|
||||
This preset is a minimally modified version of [Gruvbox Rainbow](./gruvbox-rainbow.md) using the [Catppuccin](https://github.com/catppuccin/catppuccin) theme palette.
|
||||
|
||||

|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset catppuccin-powerline -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
By default this preset uses the Mocha flavour of Catppucin, but you can specify any of the flavours by modifying the value of `palette`:
|
||||
|
||||
- `catppuccin_mocha`
|
||||
- `catppuccin_frappe`
|
||||
- `catppuccin_macchiato`
|
||||
- `catppuccin_latte`
|
||||
|
||||
[Click to download TOML](/presets/toml/catppuccin-powerline.toml)
|
||||
|
||||
<<< @/public/presets/toml/catppuccin-powerline.toml
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#gruvbox-rainbow)
|
||||
|
||||
# Gruvbox Rainbow Preset
|
||||
|
||||
This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md).
|
||||
|
||||

|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset gruvbox-rainbow -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/gruvbox-rainbow.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/gruvbox-rainbow.toml
|
||||
@@ -1,24 +0,0 @@
|
||||
[Return to Presets](./#jetpack)
|
||||
|
||||
# Jetpack Preset
|
||||
|
||||
This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts.
|
||||
|
||||
> Jetpack uses the terminal's color theme.
|
||||
|
||||

|
||||
|
||||
### Prerequisite
|
||||
|
||||
- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support.
|
||||
- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended.
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset jetpack -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/jetpack.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/jetpack.toml
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#nerd-font-symbols)
|
||||
|
||||
# Nerd Font Symbols Preset
|
||||
|
||||
This preset changes the symbols for each module to use Nerd Font symbols.
|
||||
|
||||

|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Fira Code Nerd Font)
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset nerd-font-symbols -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/nerd-font-symbols.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/nerd-font-symbols.toml
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#no-empty-icons)
|
||||
|
||||
# No Empty Icons Preset
|
||||
|
||||
If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined.
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-empty-icons -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/no-empty-icons.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-empty-icons.toml
|
||||
@@ -1,19 +0,0 @@
|
||||
[Return to Presets](./#no-nerd-fonts)
|
||||
|
||||
# No Nerd Fonts Preset
|
||||
|
||||
This preset restricts the use of symbols to those from emoji and powerline sets.
|
||||
|
||||
This means that even without a Nerd Font installed, you should be able to view all module symbols.
|
||||
|
||||
This preset will become the default preset in a future release of starship.
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-nerd-font -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/no-nerd-font.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-nerd-font.toml
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#no-runtime-versions)
|
||||
|
||||
# No Runtime Versions Preset
|
||||
|
||||
This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you!
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset no-runtime-versions -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/no-runtime-versions.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/no-runtime-versions.toml
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#pastel-powerline)
|
||||
|
||||
# Pastel Powerline Preset
|
||||
|
||||
This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship.
|
||||
|
||||

|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Caskaydia Cove Nerd Font)
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset pastel-powerline -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/pastel-powerline.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/pastel-powerline.toml
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#plain-text-symbols)
|
||||
|
||||
## Plain Text Symbols Preset
|
||||
|
||||
This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode.
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset plain-text-symbols -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/plain-text-symbols.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/plain-text-symbols.toml
|
||||
@@ -1,17 +0,0 @@
|
||||
[Return to Presets](./#pure-prompt)
|
||||
|
||||
# Pure Preset
|
||||
|
||||
This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure).
|
||||
|
||||

|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset pure-preset -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/pure-preset.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/pure-preset.toml
|
||||
@@ -1,21 +0,0 @@
|
||||
[Return to Presets](./#tokyo-night)
|
||||
|
||||
# Tokyo Night Preset
|
||||
|
||||
This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme).
|
||||
|
||||

|
||||
|
||||
### পূর্বশর্ত
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal
|
||||
|
||||
### Configuration
|
||||
|
||||
```sh
|
||||
starship preset tokyo-night -o ~/.config/starship.toml
|
||||
```
|
||||
|
||||
[Click to download TOML](/presets/toml/tokyo-night.toml){download}
|
||||
|
||||
<<< @/public/presets/toml/tokyo-night.toml
|
||||
@@ -1,14 +1,10 @@
|
||||
---
|
||||
layout: home
|
||||
hero:
|
||||
image: /logo.svg
|
||||
text:
|
||||
tagline: promptـێکی سوکەڵە، خێرا، و بێسنور دڵخوازکراو بۆ هەر شێڵێک!
|
||||
actions:
|
||||
-
|
||||
theme: brand
|
||||
text: دەستپێبکە ←
|
||||
link: ./guide/
|
||||
home: true
|
||||
heroImage: /logo.svg
|
||||
heroText:
|
||||
tagline: promptـێکی سوکەڵە، خێرا، و بێسنور دڵخوازکراو بۆ هەر شێڵێک!
|
||||
actionText: دەستپێبکە ←
|
||||
actionLink: ./guide/
|
||||
features:
|
||||
-
|
||||
title: سەرەتا گونجان
|
||||
@@ -25,24 +21,12 @@ metaTitle: "Starship: یەکێ لە Promptـە شێڵ نەناسەکان"
|
||||
description: 'Starship: یەکێ لە promptـە سوکەڵە، خێرا، و بێسنور دڵخوازکراوەکان بۆ هەر شێڵێک! ئەو زانیارییانە پشان دەدات کە پێویستە، لەوکاتەیا بە ئارامی و سوکەڵەیی ئەمێنێتەوە. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.'
|
||||
---
|
||||
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
onMounted(() => {
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
if (urlParams.has('uwu') || urlParams.has('kawaii')) {
|
||||
const img = document.querySelector('.VPHero .VPImage.image-src')
|
||||
img.classList.add('uwu')
|
||||
img.src = '/logo-uwu.png'
|
||||
img.alt = 'Kawaii Starship Logo by @sawaratsuki1004'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
<div class="center">
|
||||
<video class="demo-video" muted autoplay loop playsinline>
|
||||
<source src="/demo.webm" type="video/webm">
|
||||
<source src="/demo.mp4" type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
|
||||
### پێشمەرجەکان
|
||||
|
||||
@@ -72,10 +56,10 @@ onMounted(() => {
|
||||
brew install starship
|
||||
```
|
||||
|
||||
With [Winget](https://github.com/microsoft/winget-cli):
|
||||
لەگەڵ [Scoop](https://scoop.sh):
|
||||
|
||||
```powershell
|
||||
winget install starship
|
||||
scoop install starship
|
||||
```
|
||||
|
||||
1. نوسینی init زیادبکە بۆ فایلی ڕێکخستنی شێڵەکەت:
|
||||
@@ -114,7 +98,7 @@ onMounted(() => {
|
||||
```
|
||||
|
||||
|
||||
#### PowerShell
|
||||
#### Powershell
|
||||
|
||||
ئەمەی خوارەوە زیادبکە لە کۆتایی `Microsoft.PowerShell_profile.ps1`. ئەتوانی شوێنی ئەم فایلە ببینیتەوە بە سەیرکردنی گۆڕاوی `$PROFILE` لە PowerShell. ئاسایی ڕێڕەوەکە بریتیە لە `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` یان `/.config/powershell/Microsoft.PowerShell_profile.ps1` لەسەر -Nix.
|
||||
|
||||
@@ -136,16 +120,19 @@ onMounted(() => {
|
||||
|
||||
#### Elvish
|
||||
|
||||
> [!WARNING] Only elvish v0.18 or higher is supported.
|
||||
::: ئاگادارکردنەوە
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
Only elvish v0.18 or higher is supported.
|
||||
|
||||
:::
|
||||
|
||||
ئەمەی خوارەوە زیادبکە لە کۆتایی `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
# ~/.elvish/rc.elv
|
||||
|
||||
eval (starship init elvish)
|
||||
```
|
||||
For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
|
||||
|
||||
#### Tcsh
|
||||
@@ -161,15 +148,23 @@ onMounted(() => {
|
||||
|
||||
#### Nushell
|
||||
|
||||
> [!WARNING] This will change in the future. Only Nushell v0.96+ is supported.
|
||||
::: ئاگادارکردنەوە
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
This will change in the future. Only Nushell v0.61+ is supported.
|
||||
|
||||
:::
|
||||
|
||||
Add the following to to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
#### Xonsh
|
||||
|
||||
|
||||
@@ -2,99 +2,11 @@
|
||||
|
||||
لەگەڵ ئەوەی Starship شێڵێکە بەکارهێنانی زۆرە، هەندێک جار دەسکاری کردنی `starship.toml` بەس نییە بۆ ئەوەی وای لێبکەی هەندێک شتی دیاریکراو ئەنجام بدات. ئەم پەڕەیە ووردەکاری زیاتر ئەدات لەسەر هەندێک لە شێوازە ڕێکخستنە پێشکەوتووترەکان کە لە Starshipـدا بەکارهاتووە.
|
||||
|
||||
> [!WARNING] The configurations in this section are subject to change in future releases of Starship.
|
||||
::: ئاگادارکردنەوە
|
||||
|
||||
## TransientPrompt in PowerShell
|
||||
ڕێکخستنەکانی ئەم بەشە شایەنی گۆڕانن لە وەشانەکانی داهاتووی Starshipدا.
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`.
|
||||
|
||||
By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```powershell
|
||||
function Invoke-Starship-TransientFunction {
|
||||
&starship module character
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
|
||||
Enable-TransientPrompt
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Cmd
|
||||
|
||||
Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient <value>` where \<value\> can be one of:
|
||||
|
||||
- `always`: always replace the previous prompt
|
||||
- `same_dir`: replace the previous prompt only if the working directory is same
|
||||
- `off`: do not replace the prompt (i.e. turn off transience)
|
||||
|
||||
You need to do this only once. Make the following changes to your `starship.lua` to customize what gets displayed on the left and on the right:
|
||||
|
||||
- By default, the left side of input gets replaced with `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_prompt_func(prompt)
|
||||
return io.popen("starship module character"
|
||||
.." --keymap="..rl.getvariable('keymap')
|
||||
):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```lua
|
||||
function starship_transient_rprompt_func(prompt)
|
||||
return io.popen("starship module time"):read("*a")
|
||||
end
|
||||
load(io.popen('starship init cmd'):read("*a"))()
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Fish
|
||||
|
||||
It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`.
|
||||
|
||||
Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct.
|
||||
|
||||
- By default, the left side of input gets replaced with a bold-green `❯`. To customize this, define a new function called `starship_transient_prompt_func`. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_prompt_func
|
||||
starship module character
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```fish
|
||||
function starship_transient_rprompt_func
|
||||
starship module time
|
||||
end
|
||||
starship init fish | source
|
||||
enable_transience
|
||||
```
|
||||
|
||||
## TransientPrompt and TransientRightPrompt in Bash
|
||||
|
||||
The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=<value>`:
|
||||
|
||||
The \<value\> here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \<value\>, the prompt specified by `PS1` is erased on leaving the current command line. If \<value\> contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in \<value\> and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored.
|
||||
|
||||
Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on the left and on the right:
|
||||
|
||||
- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_ps1_final='$(starship module character)'
|
||||
```
|
||||
|
||||
- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do
|
||||
|
||||
```bash
|
||||
bleopt prompt_rps1_final='$(starship module time)'
|
||||
```
|
||||
:::
|
||||
|
||||
## Custom pre-prompt and pre-execution Commands in Cmd
|
||||
|
||||
@@ -209,7 +121,7 @@ You can also set a similar output with PowerShell by creating a function named `
|
||||
```powershell
|
||||
# edit $PROFILE
|
||||
function Invoke-Starship-PreCommand {
|
||||
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
|
||||
$host.ui.Write("`e]0; PS> $env:USERNAME@$env:COMPUTERNAME`: $pwd `a")
|
||||
}
|
||||
|
||||
Invoke-Expression (&starship init powershell)
|
||||
@@ -219,11 +131,9 @@ Invoke-Expression (&starship init powershell)
|
||||
|
||||
Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`.
|
||||
|
||||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill).
|
||||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill).
|
||||
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash.
|
||||
|
||||
Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash.
|
||||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd.
|
||||
|
||||
### نموونە
|
||||
|
||||
@@ -247,7 +157,7 @@ Produces a prompt like the following:
|
||||
|
||||
Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote).
|
||||
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`.
|
||||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `"[∙](bright-black) "`.
|
||||
|
||||
Note: `continuation_prompt` should be set to a literal string without any variables.
|
||||
|
||||
@@ -262,318 +172,8 @@ Note: Continuation prompts are only available in the following shells:
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# A continuation prompt that displays two filled-in arrows
|
||||
continuation_prompt = '▶▶ '
|
||||
```
|
||||
|
||||
## Statusline for Claude Code
|
||||
|
||||
Starship supports displaying a custom statusline when running inside Claude Code, Anthropic's CLI tool for interactive coding with Claude. This statusline provides real-time information about your Claude session, including the model being used, context window usage, and session costs.
|
||||
|
||||
For more information about the Claude Code statusline feature, see the [Claude Code statusline documentation](https://code.claude.com/docs/en/statusline).
|
||||
|
||||
### Setup
|
||||
|
||||
To use Starship as your Claude Code statusline:
|
||||
|
||||
1. Run `/statusline` in Claude Code and ask it to configure Starship, or manually add the following to your `.claude/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"statusLine": {
|
||||
"type": "command",
|
||||
"command": "starship statusline claude-code"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. Customize the statusline appearance in your `~/.config/starship.toml` (see [Configuration](#configuration) below)
|
||||
|
||||
### Overview
|
||||
|
||||
When invoked with `starship statusline claude-code`, Starship receives Claude Code session data via stdin and renders a statusline using a dedicated profile named `claude-code`.
|
||||
|
||||
The profile includes three specialized modules:
|
||||
|
||||
- `claude_model`: Displays the current Claude model being used
|
||||
- `claude_context`: Shows context window usage with a visual gauge
|
||||
- `claude_cost`: Displays session cost and statistics
|
||||
|
||||
The default profile format is:
|
||||
|
||||
```toml
|
||||
[profiles]
|
||||
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
|
||||
```
|
||||
|
||||
### ڕێکخستن
|
||||
|
||||
You can customize the Claude Code statusline by modifying the `claude-code` profile and individual module configurations in your `~/.config/starship.toml`:
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Customize the claude-code profile
|
||||
[profiles]
|
||||
claude-code = "$claude_model$claude_context$claude_cost"
|
||||
|
||||
# Configure individual modules
|
||||
[claude_model]
|
||||
format = "[$symbol$model]($style) "
|
||||
symbol = "🤖 "
|
||||
style = "bold blue"
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge $percentage]($style) "
|
||||
gauge_width = 10
|
||||
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost]($style) "
|
||||
symbol = "💰 "
|
||||
```
|
||||
|
||||
### Claude Model
|
||||
|
||||
The `claude_model` module displays the current Claude model being used in the session.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| --------------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `format` | `'[$symbol$model]($style) '` | The format for the module. |
|
||||
| `symbol` | `'🤖 '` | The symbol shown before the model name. |
|
||||
| `style` | `'bold blue'` | The style for the module. |
|
||||
| `model_aliases` | `{}` | Map of model IDs or display names to shorter aliases. Checks ID first, then display name. |
|
||||
| `disabled` | `false` | Disables the `claude_model` module. |
|
||||
|
||||
#### Variables
|
||||
|
||||
| گۆڕاو | نموونە | Description |
|
||||
| --------- | ------------------- | ------------------------------------- |
|
||||
| model | `Claude 3.5 Sonnet` | The display name of the current model |
|
||||
| model_id | `claude-3-5-sonnet` | The model ID |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the value of option `style` |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Basic customization
|
||||
[claude_model]
|
||||
format = "on [$symbol$model]($style) "
|
||||
symbol = "🧠 "
|
||||
style = "bold cyan"
|
||||
|
||||
# Using model aliases for vendor-specific model names
|
||||
# You can alias by model ID or display name
|
||||
[claude_model.model_aliases]
|
||||
# Alias by vendor model ID (e.g. AWS Bedrock)
|
||||
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
|
||||
# Alias by display name
|
||||
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
|
||||
```
|
||||
|
||||
### Claude Context
|
||||
|
||||
The `claude_context` module displays context window usage as a percentage and visual gauge. The style automatically changes based on configurable thresholds.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------------------- | --------------------------------- | -------------------------------------------------- |
|
||||
| `format` | `'[$gauge $percentage]($style) '` | The format for the module. |
|
||||
| `symbol` | `''` | The symbol shown before the gauge. |
|
||||
| `gauge_width` | `5` | The width of the gauge in characters. |
|
||||
| `gauge_full_symbol` | `'█'` | The symbol used for filled segments of the gauge. |
|
||||
| `gauge_partial_symbol` | `'▒'` | The symbol used for partial segments of the gauge. |
|
||||
| `gauge_empty_symbol` | `'░'` | The symbol used for empty segments of the gauge. |
|
||||
| `display` | [see below](#display) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_context` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define thresholds and styles for different usage levels. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------------------ |
|
||||
| `threshold` | `0.0` | The minimum context windows usage percentage to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this the configuration is matched. |
|
||||
|
||||
```toml
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
hidden = true
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 30
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 60
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 80
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| گۆڕاو | نموونە | Description |
|
||||
| ---------------------------- | ------- | ----------------------------------------------------- |
|
||||
| gauge | `██▒░░` | Visual representation of context usage |
|
||||
| percentage | `65%` | Context usage as a percentage |
|
||||
| input_tokens | `45.2k` | Total input tokens in conversation |
|
||||
| output_tokens | `12.3k` | Total output tokens in conversation |
|
||||
| curr_input_tokens | `5.1k` | Input tokens from most recent API call |
|
||||
| curr_output_tokens | `1.2k` | Output tokens from most recent API call |
|
||||
| curr_cache_creation_tokens | `1.5k` | Cache creation tokens from most recent API call |
|
||||
| curr_cache_read_tokens | `23.4k` | Cache read tokens from most recent API call |
|
||||
| total_tokens | `200k` | Total context window size |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
**Minimal gauge-only display**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$gauge]($style) "
|
||||
gauge_width = 10
|
||||
```
|
||||
|
||||
**Detailed token information**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
|
||||
```
|
||||
|
||||
**Custom gauge symbols**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[claude_context]
|
||||
gauge_full_symbol = "▰"
|
||||
gauge_partial_symbol = ""
|
||||
gauge_empty_symbol = "▱"
|
||||
gauge_width = 10
|
||||
format = "[$gauge]($style) "
|
||||
```
|
||||
|
||||
**Custom thresholds**
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 0
|
||||
style = "bold green"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 50
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 75
|
||||
style = "bold orange"
|
||||
|
||||
[[claude_context.display]]
|
||||
threshold = 90
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
### Claude Cost
|
||||
|
||||
The `claude_cost` module displays the total cost of the current Claude Code session in USD. Like `claude_context`, it supports threshold-based styling.
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Default | Description |
|
||||
| ---------- | ---------------------------------- | ----------------------------------- |
|
||||
| `format` | `'[$symbol(\\$$cost)]($style) '` | The format for the module. |
|
||||
| `symbol` | `'💰 '` | The symbol shown before the cost. |
|
||||
| `display` | [see below](#display-1) | Threshold and style configurations. |
|
||||
| `disabled` | `false` | Disables the `claude_cost` module. |
|
||||
|
||||
##### Display
|
||||
|
||||
The `display` option is an array of objects that define cost thresholds and styles. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------ | ------------------------------------------------------------- |
|
||||
| `threshold` | `0.0` | The minimum cost in USD to match this configuration |
|
||||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||||
| `hidden` | `false` | Hide this module if this configuration is matched. |
|
||||
|
||||
**Default configuration:**
|
||||
|
||||
```toml
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 1.0
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 5.0
|
||||
style = "bold red"
|
||||
```
|
||||
|
||||
#### Variables
|
||||
|
||||
| گۆڕاو | نموونە | Description |
|
||||
| ------------- | -------- | ----------------------------------------------------- |
|
||||
| cost | `1.23` | Total session cost in USD (formatted to 2 decimals) |
|
||||
| duration | `1m 30s` | Total session duration |
|
||||
| api_duration | `45s` | Total API call duration |
|
||||
| lines_added | `1.2k` | Total lines of code added |
|
||||
| lines_removed | `500` | Total lines of code removed |
|
||||
| symbol | | Mirrors the value of option `symbol` |
|
||||
| style\* | | Mirrors the style from the matching display threshold |
|
||||
|
||||
\*: This variable can only be used as a part of a style string
|
||||
|
||||
#### Examples
|
||||
|
||||
```toml
|
||||
# ~/.config/starship.toml
|
||||
|
||||
# Cost with code change statistics
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
|
||||
|
||||
# Hide module until cost exceeds $0.10
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.0
|
||||
hidden = true
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 0.10
|
||||
style = "bold yellow"
|
||||
|
||||
[[claude_cost.display]]
|
||||
threshold = 2.0
|
||||
style = "bold red"
|
||||
|
||||
# Show duration information
|
||||
[claude_cost]
|
||||
format = "[$symbol$cost ($duration)]($style) "
|
||||
# A continuation prompt that displays two filled in arrows
|
||||
continuation_prompt = "▶▶"
|
||||
```
|
||||
|
||||
## Style Strings
|
||||
@@ -585,15 +185,12 @@ Style strings are a list of words, separated by whitespace. The words are not ca
|
||||
- `بنهێڵ`
|
||||
- `کاڵ کراو`
|
||||
- `پێچەوانە کراو`
|
||||
- `blink`
|
||||
- `hidden`
|
||||
- `strikethrough`
|
||||
- `bg:<color>`
|
||||
- `fg:<color>`
|
||||
- `<color>`
|
||||
- `هیچ`
|
||||
|
||||
کە `<color>` دیاریکەری ڕەنگێکە (لە ژێرەوە باسکراوە). `fg:<color>` و `<color>` لە ئێستادا هەمان شت ئەکەن، بەڵام ئەمە ڕەنگە لە داهاتووا بگۆڕێت. `<color>` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise. `inverted` ڕەنگی پاشبنەما و پێشبنەما ئەگۆڕێتەوە. ڕیزبەندی ووشەکان لە زنجیرەکەدا گرنگ نییە.
|
||||
کە `<color>` دیاریکەری ڕەنگێکە (لە ژێرەوە باسکراوە). `fg:<color>` و `<color>` لە ئێستادا هەمان شت ئەکەن، بەڵام ئەمە ڕەنگە لە داهاتووا بگۆڕێت. `inverted` ڕەنگی پاشبنەما و پێشبنەما ئەگۆڕێتەوە. ڕیزبەندی ووشەکان لە زنجیرەکەدا گرنگ نییە.
|
||||
|
||||
The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future.
|
||||
|
||||
@@ -604,9 +201,3 @@ A color specifier can be one of the following:
|
||||
- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png).
|
||||
|
||||
If multiple colors are specified for foreground/background, the last one in the string will take priority.
|
||||
|
||||
Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist:
|
||||
|
||||
- Many terminals disable support for `blink` by default.
|
||||
- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
|
||||
- `strikethrough` is not supported by the default macOS Terminal.app.
|
||||
|
||||
@@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl
|
||||
|
||||
## Why do I see `Executing command "..." timed out.` warnings?
|
||||
|
||||
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings.
|
||||
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings.
|
||||
|
||||
## I see symbols I don't understand or expect, what do they mean?
|
||||
|
||||
@@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca
|
||||
env STARSHIP_LOG=trace starship module rust
|
||||
```
|
||||
|
||||
If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame.
|
||||
If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame.
|
||||
|
||||
```sh
|
||||
env STARSHIP_LOG=trace starship timings
|
||||
@@ -80,7 +80,7 @@ env STARSHIP_LOG=trace starship timings
|
||||
|
||||
This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output.
|
||||
|
||||
Finally if you find a bug you can use the `bug-report` command to create a GitHub issue.
|
||||
Finally if you find a bug you can use the `bug-report` command to create a Github issue.
|
||||
|
||||
```sh
|
||||
starship bug-report
|
||||
@@ -120,11 +120,3 @@ If Starship was installed using the install script, the following command will d
|
||||
# Locate and delete the starship binary
|
||||
sh -c 'rm "$(command -v 'starship')"'
|
||||
```
|
||||
|
||||
## How do I install Starship without `sudo`?
|
||||
|
||||
The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation directory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`.
|
||||
|
||||
For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options.
|
||||
|
||||
When using a package manager, see the documentation for your package manager about installing with or without `sudo`.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/starship/starship/actions"
|
||||
><img
|
||||
src="https://img.shields.io/github/actions/workflow/status/starship/starship/workflow.yml?branch=master&label=workflow&style=flat-square"
|
||||
src="https://img.shields.io/github/workflow/status/starship/starship/Main workflow/master?label=workflow&style=flat-square"
|
||||
alt="دۆخی ڕێڕەوی کارەکان لە GitHub Actions"
|
||||
/></a>
|
||||
<a href="https://crates.io/crates/starship"
|
||||
@@ -32,11 +32,6 @@
|
||||
src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square"
|
||||
alt="شوێن @StarshipPrompt بکەوە لەسەر تویتەر"
|
||||
/></a>
|
||||
<a href="https://stand-with-ukraine.pp.ua"
|
||||
><img
|
||||
src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraineFlat.svg"
|
||||
alt="Stand With Ukraine"
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -113,14 +108,6 @@
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png"
|
||||
alt="Русский"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
href="https://github.com/starship/starship/blob/master/docs/uk-UA/guide/README.md"
|
||||
><img
|
||||
height="20"
|
||||
src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ua.png"
|
||||
alt="Українська"
|
||||
/></a>
|
||||
|
||||
<a
|
||||
@@ -148,6 +135,8 @@
|
||||
/></a>
|
||||
</p>
|
||||
|
||||
[](https://vshymanskyy.github.io/StandWithUkraine)
|
||||
|
||||
<h1></h1>
|
||||
|
||||
<img
|
||||
@@ -176,7 +165,7 @@
|
||||
|
||||
### پێشمەرجەکان
|
||||
|
||||
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)).
|
||||
- فۆنتێکی [Nerd](https://www.nerdfonts.com/) دامەزرابێ و چالاککرابێ لە تێرمیناڵەکەتدا (بۆ نموونە، [Fira Code Nerd Font](https://www.nerdfonts.com/font-downloads) تاقی بکەرەوە).
|
||||
|
||||
### Step 1. Install Starship
|
||||
|
||||
@@ -222,16 +211,15 @@ Alternatively, install Starship using any of the following package managers:
|
||||
| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` |
|
||||
| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` |
|
||||
| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` |
|
||||
| _Any_ | [Snapcraft](https://snapcraft.io/starship) | `snap install starship` |
|
||||
| Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` |
|
||||
| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` |
|
||||
| Arch Linux | [Arch Linux Community](https://archlinux.org/packages/community/x86_64/starship) | `pacman -S starship` |
|
||||
| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Debian 13+ | [Debian Main](https://sources.debian.org/src/starship/1.22.1-1/) | `apt install starship` |
|
||||
| Fedora 40+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship` <br /> `dnf install starship` |
|
||||
| Fedora 31+ | [Fedora Packages](https://src.fedoraproject.org/rpms/rust-starship) | `dnf install starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixos.starship` |
|
||||
| Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` |
|
||||
| Manjaro | | `pacman -S starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/starship/package.nix) | `nix-env -iA nixpkgs.starship` |
|
||||
| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` |
|
||||
| Ubuntu 25.04+ | [Ubuntu Universe](https://packages.ubuntu.com/source/plucky/starship) | `apt install starship` |
|
||||
| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` |
|
||||
| Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
|
||||
|
||||
</details>
|
||||
@@ -273,7 +261,7 @@ Install Starship using any of the following package managers:
|
||||
|
||||
</details>
|
||||
|
||||
### Step 2. Set up your shell to use Starship
|
||||
### Step 2. Setup your shell to use Starship
|
||||
|
||||
Configure your shell to initialize starship. Select yours from the list below:
|
||||
|
||||
@@ -302,13 +290,13 @@ load(io.popen('starship init cmd'):read("*a"))()
|
||||
<details>
|
||||
<summary>Elvish</summary>
|
||||
|
||||
Add the following to the end of `~/.config/elvish/rc.elv` (`%AppData%\elvish\rc.elv` on Windows):
|
||||
ئەمەی خوارەوە زیادبکە لە کۆتایی `~/.elvish/rc.elv`:
|
||||
|
||||
```sh
|
||||
eval (starship init elvish)
|
||||
```
|
||||
|
||||
Note: Only Elvish v0.18+ is supported. For elvish versions prior to v0.21.0 the config file might instead be `~/.elvish/rc.elv`
|
||||
Note: Only Elvish v0.18+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -337,14 +325,20 @@ eval $(starship init ion)
|
||||
<details>
|
||||
<summary>Nushell</summary>
|
||||
|
||||
Add the following to the end of your Nushell configuration (find it by running `$nu.config-path` in Nushell):
|
||||
Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell):
|
||||
|
||||
```sh
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.96+ is supported
|
||||
And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`):
|
||||
|
||||
```sh
|
||||
source ~/.cache/starship/init.nu
|
||||
```
|
||||
|
||||
Note: Only Nushell v0.61+ is supported
|
||||
|
||||
</details>
|
||||
|
||||
@@ -404,7 +398,7 @@ If you're looking to further customize Starship:
|
||||
|
||||
## 🤝 بەژداریکردن
|
||||
|
||||
ئێمە هەموو کات ئەگەڕێین بۆ بەژداریکەرێک لە هەر **ئاست و توانایەکدا بێت**! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/issues?q=state%3Aopen%20label%3A%22%F0%9F%8C%B1%20good%20first%20issue%22).
|
||||
ئێمە هەموو کات ئەگەڕێین بۆ بەژداریکەرێک لە هەر **ئاست و توانایەکدا بێت**! ئەگەر بەدوای ئەوەوەی کە بێیتە ئەم پڕۆژەیەوە [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue) تاقیبکەرەوە.
|
||||
|
||||
ئەگەر پاراویت لە زمانێک جگە لە ئینگلیزی، ئێمە زۆر خۆشحاڵدەبین بە هەر یارمەتییەک کە بەڵگەنامەکانمان بە وەرگێڕدراوی بهێڵێتەوە و نوێکراوی بهێڵێتەوە بە زمانەکانی دیکە. ئەگەر نیازت هەیە یارمەتی بدەیت، ئەتوانی بەژداری لە وەرگێڕاندا بکەیت لەسەر [Starship Crowdin](https://translate.starship.rs/).
|
||||
|
||||
@@ -420,21 +414,6 @@ If you're looking to further customize Starship:
|
||||
|
||||
- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons.
|
||||
|
||||
## ❤️ Sponsors
|
||||
|
||||
Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website.
|
||||
|
||||
## 🔒 Code Signing Policy
|
||||
|
||||
Free code signing provided by [SignPath.io](https://signpath.io), certificate by [SignPath Foundation](https://signpath.org).
|
||||
|
||||
Code Signing Roles:
|
||||
|
||||
- Reviewers: [Astronauts](https://github.com/orgs/starship/teams/astronauts)
|
||||
- Approvers and Authors: [Mission Control](https://github.com/orgs/starship/teams/mission-control)
|
||||
|
||||
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<img width="100" src="https://raw.githubusercontent.com/starship/starship/master/media/icon.png" alt="ئایکۆنی مووشەکی Starship">
|
||||
|
||||
@@ -5,7 +5,7 @@ To install starship, you need to do two things:
|
||||
1. Get the **starship** binary onto your computer
|
||||
1. Tell your shell to use the starship binary as its prompt by modifying its init scripts
|
||||
|
||||
For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed.
|
||||
For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed.
|
||||
|
||||
There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out!
|
||||
|
||||
@@ -15,7 +15,7 @@ There are so many platforms out there that they didn't fit into the main README.
|
||||
|
||||
Head over to the [Chocolatey installation page](https://chocolatey.org/install) and follow the instructions to install Chocolatey.
|
||||
|
||||
### دامەزراندن
|
||||
### Installation
|
||||
|
||||
```powershell
|
||||
choco install starship
|
||||
@@ -23,15 +23,21 @@ choco install starship
|
||||
|
||||
## [termux](https://termux.com)
|
||||
|
||||
### دامەزراندن
|
||||
### پێشمەرجەکان
|
||||
|
||||
```sh
|
||||
pkg install starship
|
||||
pkg install getconf
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
```sh
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.termux/files/usr/bin
|
||||
```
|
||||
|
||||
## [Funtoo Linux](https://www.funtoo.org/Welcome)
|
||||
|
||||
### دامەزراندن
|
||||
### Installation
|
||||
|
||||
On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage:
|
||||
|
||||
@@ -39,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu
|
||||
emerge app-shells/starship
|
||||
```
|
||||
|
||||
## [Nix](https://wiki.nixos.org/wiki/Nix)
|
||||
## [Nix](https://nixos.wiki/wiki/Nix)
|
||||
|
||||
### Getting the Binary
|
||||
|
||||
|
||||