Walaupun Starship adalah shell yang serbaguna, terkadang kita butuh upaya lebih dari sekadar mengedit `starship.toml` untuk membuatnya menjalankan beberapa hal tertentu. Halaman ini merincikan beberapa teknik konfigurasi lanjutan yang digunakan starship.
::: warning
Konfigurasi pada bagian ini dapat berubah saat Starship terbaru rilis di kemudian hari nanti.
:::
> [!WARNING] The configurations in this section are subject to change in future releases of Starship.
@@ -208,11 +208,7 @@ Berikut adalah opsi konfigurasi dari list yang bersifat prompt-wide.
| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. |
| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. |
::: tip
If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`.
:::
> [!TIP] If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`.
The `azure` module shows the current Azure Subscription. This is based on showing the name of the default subscription or the username, as defined in the `~/.azure/azureProfile.json` file.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Variabel | Bawaan | Deskripsi |
@@ -658,15 +658,13 @@ The `c` module shows some information about your C compiler. By default the modu
| symbol | | Menyalin nilai dari opsi `symbol` |
| style | | Menyalin nilai dari opsi `style` |
NB that `version` is not in the default format.
### Commands
The `commands` option accepts a list of commands to determine the compiler version and name.
Each command is represented as a list of the executable name, followed by its arguments, usually something like `['mycc', '--version']`. Starship will try executing each command until it gets a result on STDOUT.
If a C compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/).
If a C compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/issues/new/choose).
### Contoh
@@ -681,6 +679,8 @@ format = 'via [$name $version]($style)'
The `cpp` module shows some information about your `C++` compiler. By default, the module will be shown if the current directory contains a `.cpp`, `.hpp`, or other `C++`-related files.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -704,15 +704,13 @@ The `cpp` module shows some information about your `C++` compiler. By default, t
| symbol | | Menyalin nilai dari opsi `symbol` |
| style | | Menyalin nilai dari opsi `style` |
NB that `version` is not in the default format.
### Commands
The `commands` option accepts a list of commands to determine the compiler version and name.
Each command is represented as a list of the executable name, followed by its arguments, usually something like `['mycpp', '--version']`. Starship will try executing each command until it gets a result on STDOUT.
If a C++ compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/).
If a C++ compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/issues/new/choose).
### Contoh
@@ -735,11 +733,7 @@ Karakter dapat memberitahu kamu apakah perintah terakhir berhasil atau tidak. Ka
Secara bawaan karakter hanya dapat mengganti warna. Jika kamu juga ingin mengganti bentuknya, perhatikan [contoh](#with-custom-error-shape) berikut.
::: warning
`vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148).
:::
> [!WARNING] `vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148).
### Opsi
@@ -855,13 +849,11 @@ The `cobol` module shows the currently installed version of COBOL. By default, t
Modul `cmd_duration` menampilkan seberapa lama perintah sebelumnya membutuhkan waktu untuk dilaksanakan. Modulnya hanya akan ditampilkan jika perintahnya membutuhkan waktu lebih dari dua detik, atau ada nilai dari konfigurasi `min_time`.
::: warning lakukan hook DEBUG trap dalam Bash
> [!WARNING] Do not hook the DEBUG trap in Bash
>
> If you are running Starship in `bash`, do not hook the `DEBUG` trap after running `eval $(starship init $0)`, or this module **will** break.
Jia kamu menjalankan Starship di `bash`, jangan lakukan hook DEBUG trap setelah menjalankan `eval $(starship init $0)`, atau modulnya **akan** rusak.
:::
Pengguna Bash yang membutuhkan fungsi seperti preexec dapat menggunakan [kerangka kerja bash_preexec dari rcaloras](https://github.com/rcaloras/bash-preexec). Cukup dengan membuat array `preexec_functions` dan `precmd_functions` sebelum menjalankan `eval $(starship init $0)`, lalu lanjutkan seperti biasa.
Bash users who need preexec-like functionality can use [rcaloras's bash_preexec framework](https://github.com/rcaloras/bash-preexec). Cukup dengan membuat array `preexec_functions` dan `precmd_functions` sebelum menjalankan `eval $(starship init $0)`, lalu lanjutkan seperti biasa.
### Opsi
@@ -899,11 +891,7 @@ format = 'underwent [$duration](bold yellow)'
The `conda` module shows the current [Conda](https://docs.conda.io/en/latest/) environment, if `$CONDA_DEFAULT_ENV` is set.
::: tip
Hal ini tidak menahan pengubah (modifier) prompt dari conda sendiri, kamu mungkin bisa menjalankan `conda config --set changeps1 False`. If you use [pixi](https://pixi.sh), you can disable pixi's prompt modifier by running `pixi config set change-ps1 false`.
:::
> [!TIP] This does not suppress conda's own prompt modifier, you may want to run `conda config --set changeps1 False`. If you use [pixi](https://pixi.sh), you can disable pixi's prompt modifier by running `pixi config set shell.change-ps1 false`.
### Opsi
@@ -970,7 +958,7 @@ format = '[$symbol \[$name\]]($style) '
## Crystal
Modul`crystal` menampilkan versi terkini dari [Crystal](https://crystal-lang.org/) yang terpasang. Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
The`crystal` module shows the currently installed version of [Crystal](https://crystal-lang.org/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
- Direktori terkini yang berisikan sebuah file `shard.yml`
- Direktori terkini yang berisikan sebuah file `.cr`
Modul`dart` menampilkan versi terkini dari [Dart](https://dart.dev/) yang terpasang. Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
The`dart` module shows the currently installed version of [Dart](https://dart.dev/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
- Direktori terkini yang berisikan sebuah file berekstensi `.dart`
- Direktori terkini yang berisikan sebuah direktori `dart_tool`
Modul`deno` menampilkan versi terkini dari [Deno](https://deno.land/) yang terpasang. Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
The`deno` module shows you your currently installed version of [Deno](https://deno.land/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
- The current directory contains a `deno.json`, `deno.jsonc`, `deno.lock`, `mod.ts`, `mod.js`, `deps.ts` or `deps.js` file
@@ -1206,6 +1194,8 @@ truncation_symbol = '…/'
The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -1251,16 +1241,16 @@ The `docker_context` module shows the currently active [Docker context](https://
| `format` | `'via [$symbol$context]($style) '` | Format dari modul. |
| `symbol` | `'🐳 '` | Simbol yang digunakan sebelum menampilkan Docker context. |
| `only_with_files` | `true` | Hanya ditampilkan jika terdapat kecocokan |
| `detect_extensions` | `[]` | Extensions mana yang harusnya memicu modul (butuh `only_with_files` untuk diset true). |
| `detect_files` | `['docker-compose.yml', 'docker-compose.yaml', 'Dockerfile']` | filenames mana yang harusnya memicu modul ini (butuh `only_with_files` untuk diset true). |
| `detect_folders` | `[]` | Folder mana yang harusnya memicu modul (butuh `only_with_files` untuk diset true). |
| `style` | `'blue bold'` | Gaya penataan untuk modul. |
| `format` | `'via [$symbol$context]($style) '` | Format dari modul. |
| `symbol` | `'🐳 '`| Simbol yang digunakan sebelum menampilkan Docker context. |
| `only_with_files` | `true`| Hanya ditampilkan jika terdapat kecocokan |
| `detect_extensions` | `[]`| Extensions mana yang harusnya memicu modul (butuh `only_with_files` untuk diset true). |
| `detect_files` | `['compose.yml', 'compose.yaml', 'docker-compose.yml', 'docker-compose.yaml', 'Dockerfile']` | filenames mana yang harusnya memicu modul ini (butuh `only_with_files` untuk diset true). |
| `detect_folders` | `[]`| Folder mana yang harusnya memicu modul (butuh `only_with_files` untuk diset true). |
| `style` | `'blue bold'`| Gaya penataan untuk modul. |
@@ -1426,26 +1416,17 @@ Modul `env_var` menampilkan nilai terkini dari variabel environment yang dipilih
- Opsi konfigurasi `variable` cocok dengan variabel environment yang ada
- Opsi konfigurasi `variable` tidak didefinisikan, tapi opsi konfigurasi `default` yang didefinisikan
::: tip
> [!TIP] The order in which env_var modules are shown can be individually set by including `${env_var.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `env_var` module will simply show all env_var modules in the order they were defined.
The order in which env_var modules are shown can be individually set by including `${env_var.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `env_var` module will simply show all env_var modules in the order they were defined.
:::
::: tip
Multiple environmental variables can be displayed by using a `.`. (lihat contoh) Jika opsi konfigurasi `variable` tidak diset, modul akan menampilkan nilai variabel di bawah teks nama setelah karakter `.`.
Contoh: konfigurasi berikut akan menampilkan nilai dari variabel USER environment
```toml
# ~/.config/starship.toml
[env_var.USER]
default = 'unknown user'
```
:::
> [!TIP] Multiple environmental variables can be displayed by using a `.`. (see example) If the `variable` configuration option is not set, the module will display value of variable under the name of text after the `.` character.
>
> Contoh: konfigurasi berikut akan menampilkan nilai dari variabel USER environment
>
> ```toml
>
> # ~/.config/starship.toml
>
> [env_var.USER] default = 'unknown user' ```
### Opsi
@@ -1596,10 +1577,49 @@ Produces a prompt that looks like:
AA -------------------------------------------- BB -------------------------------------------- CC
```
## Fortran
The `fortran` module shows the current compiler version of Fortran.
| version | `14.2.0` | The version of the Fortran compiler |
| symbol | | Menyalin nilai dari opsi `symbol` |
| style\* | | Menyalin nilai dari opsi `style` |
*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string
### Commands
The `commands` option accepts a list of commands to determine the compiler version and name.
Each command is represented as a list of the executable name, followed by its arguments, usually something like `['myfortran', '--version']`. Starship will try executing each command until it gets a result on STDOUT.
If a Fortran compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/).
## Fossil Branch
The `fossil_branch` module shows the name of the active branch of the check-out in your current directory.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -1636,6 +1656,8 @@ truncation_symbol = ''
The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -1759,6 +1781,7 @@ The `git_branch` module shows the active branch of the repo in your current dire
| `truncation_symbol` | `'…'` | The symbol used to indicate a branch name was truncated. You can use `''` for no symbol. |
| `only_attached` | `false` | Only show the branch name when not in a detached `HEAD` state. |
| `ignore_branches` | `[]` | A list of names to avoid displaying. Useful for 'master' or 'main'. |
| `ignore_bare_repo` | `false` | Do not show when in a bare repo. |
| `disabled` | `false` | Disables the `git_branch` module. |
### Variabel
@@ -1838,7 +1861,7 @@ The `git_state` module will show in directories which are part of a git reposito
| `am` | `'AM'` | A format string displayed when an `apply-mailbox` (`git am`) is in progress. |
| `am_or_rebase` | `'AM/REBASE'` | A format string displayed when an ambiguous `apply-mailbox` or `rebase` is in progress. |
| `style` | `'bold yellow'` | Gaya penataan untuk modul. |
| `fromat` | `'\([$state( $progress_current/$progress_total)]($style)\) '` | Format dari modul. |
| `format` | `'\([$state( $progress_current/$progress_total)]($style)\) '` | Format dari modul. |
| `disabled` | `false` | Disables the `git_state` module. |
The `git_metrics` module will show the number of added and deleted lines in the current git repository.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -1908,24 +1927,20 @@ format = '[+$added]($added_style)/[-$deleted]($deleted_style) '
The `git_status` module shows symbols representing the state of the repo in your current directory.
::: tip
The Git Status module is very slow in Windows directories (for example under `/mnt/c/`) when in a WSL environment. You can disable the module or use the `windows_starship` option to use a Windows-native Starship executable to compute `git_status` for those paths.
:::
> [!TIP] The Git Status module is very slow in Windows directories (for example under `/mnt/c/`) when in a WSL environment. You can disable the module or use the `windows_starship` option to use a Windows-native Starship executable to compute `git_status` for those paths.
| `format` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` |
| `fromat` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` |
| `conflicted` | `'='` | This branch has merge conflicts. |
| `ahead` | `'⇡'` | The format of `ahead` |
| `behind` | `'⇣'` | The format of `behind` |
| `diverged` | `'⇕'` | The format of `diverged` |
| `up_to_date` | `''` | The format of `up_to_date` |
| `untracked` | `'?'` | The format of `untracked` |
| `stashed` | `'$'` | The format of `stashed` |
| `stashed` | `'\$'` | The format of `stashed` |
| `modified` | `'!'` | The format of `modified` |
| `staged` | `'+'` | The format of `staged` |
| `renamed` | `'»'` | The format of `renamed` |
@@ -2392,17 +2407,9 @@ The default functionality is:
- 1 job -> `symbol` is shown.
- 2 jobs or more -> `symbol` + `number` are shown.
::: warning
> [!WARNING] This module is not supported on tcsh.
This module is not supported on tcsh and nu.
:::
::: warning
The `threshold` option is deprecated, but if you want to use it, the module will show the number of jobs running if there is more than 1 job, or more than the `threshold` config value, if it exists. If `threshold` is set to 0, then the module will also show when there are 0 jobs running.
:::
> [!WARNING] The `threshold` option is deprecated, but if you want to use it, the module will show the number of jobs running if there is more than 1 job, or more than the `threshold` config value, if it exists. If `threshold` is set to 0, then the module will also show when there are 0 jobs running.
### Opsi
@@ -2439,6 +2446,14 @@ number_threshold = 4
symbol_threshold = 0
```
#### Changing process grouping behavior in fish
When using the Fish shell, Starship counts **job groups** instead of individual process IDs by default. This prevents overcounting when a pipeline has multiple processes but only one suspended group. To revert to the legacy PID-based counting, please add the following to your shell config:
```fish
set -g __starship_fish_use_job_groups "false"
```
## Julia
The `julia` module shows the currently installed version of [Julia](https://julialang.org/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
@@ -2530,21 +2545,13 @@ kotlin_binary = 'kotlinc'
Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`.
::: tip
This module is disabled by default. To enable it, set `disabled`to `false` in your configuration file.
When the module is enabled it will always be active, unless any of `detect_env_vars`, `detect_extensions`, `detect_files` or `detect_folders` have been set in which case the module will only be active in directories that match those conditions or one of the environmatal variable has been set.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
>
> When the module is enabled it will always be active, unless any of `detect_env_vars`, `detect_extensions`, `detect_files` or`detect_folders` have been set in which case the module will only be active in directories that match those conditions or one of the environmental variables has been set.
### Opsi
::: warning
The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead.
:::
> [!WARNING] The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead.
The `localip` module shows the IPv4 address of the primary network interface.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -2742,11 +2751,7 @@ The `memory_usage` module shows current system memory and swap usage.
By default the swap usage is displayed if the total system swap is non-zero.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -2826,6 +2831,8 @@ style = 'bold dimmed green'
The `hg_branch` module shows the active branch and topic of the repo in your current directory.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -2859,10 +2866,45 @@ truncation_length = 4
truncation_symbol = ''
```
## Mercurial State
The `hg_state` module will show in directories which are part of a mercurial repository, and where there is an operation in progress, such as: _REBASING_, _BISECTING_, etc.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. |
| `show_commit` | `false` | Shows the commit as part of the version. |
| `symbol` | `'Ø '` | The symbol used before displaying the version of Odin. |
| `style` | `'bold bright-blue'` | Gaya penataan untuk modul. |
| `disabled` | `false` | Disables the `odin` module. |
| `detect_extensions` | `['odin']` | Ekstensi mana yang sebaiknya memicu modul ini. |
| `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. |
| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. |
### Variabel
@@ -3277,17 +3319,9 @@ symbol = '☁️ '
The `os` module shows the current operating system. OS information is detected via the [os_info](https://lib.rs/crates/os_info) crate.
::: warning
> [!WARNING] The [os_info](https://lib.rs/crates/os_info) crate used by this module is known to be inaccurate on some systems.
The [os_info](https://lib.rs/crates/os_info) crate used by this module is known to be inaccurate on some systems.
:::
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -3309,6 +3343,7 @@ AlmaLinux = "💠 "
Alpine = "🏔️ "
Amazon = "🙂 "
Android = "🤖 "
AOSC = "🐱 "
Arch = "🎗️ "
Artix = "🎗️ "
Bluefin = "🐟 "
@@ -3352,7 +3387,7 @@ Ubuntu = "🎯 "
Ultramarine = "🔷 "
Unknown = "❓ "
Uos = "🐲 "
Void = " "
Void = " "
Windows = "🪟 "
```
@@ -3387,7 +3422,7 @@ Arch = "Arch is the best! "
## Package Version
The `package` module is shown when the current directory is the repository for a package, and shows its current version. The module currently supports `npm`, `nimble`, `cargo`, `poetry`, `python`, `composer`, `gradle`, `julia`, `mix`, `helm`, `shards`, `daml` and `dart` packages.
The `package` module is shown when the current directory is the repository for a package, and shows its current version. The module currently supports `npm`, `nimble`, `cargo`, `poetry`, `python`, `composer`, `gradle`, `julia`, `mix`, `helm`, `shards`,`galaxy`,`daml` and `dart` packages.
- [**npm**](https://docs.npmjs.com/cli/commands/npm) – The `npm` package version is extracted from the `package.json` present in the current directory
- [**JSR**](https://jsr.io/) – The `jsr` package version is extracted from the `jsr.json`/`jsr.jsonc` or `deno.json`/`deno.jsonc` present in the current directory
@@ -3403,6 +3438,7 @@ The `package` module is shown when the current directory is the repository for a
- [**Maven**](https://maven.apache.org/) - The `maven` package version is extracted from the `pom.xml` present in the current directory
- [**Meson**](https://mesonbuild.com/) - The `meson` package version is extracted from the `meson.build` present in the current directory
- [**Shards**](https://crystal-lang.org/reference/the_shards_command/index.html) - The `shards` package version is extracted from the `shard.yml` present in the current directory
- [**Galaxy**](https://galaxy.ansible.com/) - The `galaxy` package version is extracted from the `galaxy.yml` present in the current directory
- [**V**](https://vlang.io) - The `vlang` package version is extracted from the `v.mod` present in the current directory
- [**SBT**](https://scala-sbt.org) - The `sbt` package version is extracted from the `build.sbt` present in the current directory
- [**Daml**](https://www.digitalasset.com/developers) - The `daml` package version is extracted from the `daml.yaml` present in the current directory
The `pijul_channel` module shows the active channel of the repo in your current directory.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -3539,11 +3577,7 @@ The `pijul_channel` module shows the active channel of the repo in your current
The `pixi` module shows the installed [pixi](https://pixi.sh) version as well as the activated environment, if `$PIXI_ENVIRONMENT_NAME` is set.
::: tip
This does not suppress pixi's own prompt modifier, you may want to run `pixi config set change-ps1 false`.
:::
> [!TIP] This does not suppress pixi's own prompt modifier, you may want to run `pixi config set shell.change-ps1 false`.
### Opsi
@@ -3552,12 +3586,12 @@ This does not suppress pixi's own prompt modifier, you may want to run `pixi con
| `fromat` | `'via [$symbol($version )(\($environment\) )]($style)'` | Format dari modul. |
| `version_format` | `'v${raw}'` | Format dari versi. Available vars are `raw`, `major`, `minor`, & `patch`. |
| `symbol` | `'🧚 '` | Simbol yang digunakan sebelum nama environment. |
| `style` | `'yellow bold' | Gaya penataan untuk modul. |
| `style` | `'yellow bold'` | Gaya penataan untuk modul. |
| `show_default_environment` | `true` | Whether to indicate that the `default` environment of your project is activated. |
| `pixi_binary` | `['pixi']` | Configures the pixi binary that Starship should execute when getting the version. |
| `detect_extensions` | `[]` | Ekstensi mana yang sebaiknya memicu modul ini. |
| `detect_files` | `['pixi.toml']` | filenames mana yang sebaiknya memicu modul ini. |
| `detect_folders` | `['.pixi']` | Folder mana yang sebaiknya memicul modul ini. |
| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. |
| `disabled` | `false` | Disables the `pixi` module. |
### Variabel
@@ -3582,11 +3616,7 @@ format = '[$symbol$environment](yellow) '
The `pulumi` module shows the current username, selected [Pulumi Stack](https://www.pulumi.com/docs/intro/concepts/stack/), and version.
::: tip
By default the Pulumi version is not shown, since it takes an order of magnitude longer to load then most plugins (~70ms). If you still want to enable it, [follow the example shown below](#with-pulumi-version).
:::
> [!TIP] By default the Pulumi version is not shown, since it takes an order of magnitude longer to load then most plugins (~70ms). If you still want to enable it, [follow the example shown below](#with-pulumi-version).
Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
@@ -3712,13 +3742,9 @@ By default, the module will be shown if any of the following conditions are met:
| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini |
| `disabled` | `false` | Disables the `python` module. |
::: tip
The `python_binary` variable accepts either a string or a list of strings. Starship will try executing each binary until it gets a result. Note you can only change the binary that Starship executes to get the version of Python not the arguments that are used.
The default values and order for `python_binary` was chosen to first identify the Python version in a virtualenv/conda environments (which currently still add a `python`, no matter if it points to `python3` or `python2`). This has the side effect that if you still have a system Python 2 installed, it may be picked up before any Python 3 (at least on Linux Distros that always symlink `/usr/bin/python` to Python 2). If you do not work with Python 2 anymore but cannot remove the system Python 2, changing this to `'python3'` will hide any Python version 2, see example below.
:::
> [!TIP] The `python_binary` variable accepts either a string or a list of strings. Starship will try executing each binary until it gets a result. Note you can only change the binary that Starship executes to get the version of Python not the arguments that are used.
>
> The default values and order for `python_binary` was chosen to first identify the Python version in a virtualenv/conda environments (which currently still add a `python`, no matter if it points to `python3` or `python2`). This has the side effect that if you still have a system Python 2 installed, it may be picked up before any Python 3 (at least on Linux Distros that always symlink `/usr/bin/python` to Python 2). If you do not work with Python 2 anymore but cannot remove the system Python 2, changing this to `'python3'` will hide any Python version 2, see example below.
### Variabel
@@ -4036,11 +4062,7 @@ symbol = '🌟 '
The `shell` module shows an indicator for currently used shell.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -4088,6 +4110,8 @@ disabled = false
The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/internalvariables.html#SHLVLREF) ('shell level') environment variable, if it is set to a number and meets or exceeds the specified threshold.
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
| Opsi | Bawaan | Deskripsi |
@@ -4242,11 +4266,7 @@ format = '[$symbol$environment](dimmed blue) '
The `status` module displays the exit code of the previous command. If $success_symbol is empty (default), the module will be shown only if the exit code is not `0`. The status code will cast to a signed 32-bit integer.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -4305,11 +4325,7 @@ disabled = false
The `sudo` module displays if sudo credentials are currently cached. The module will only be shown if credentials are cached.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -4391,13 +4407,9 @@ format = 'via [🏎 $version](red bold)'
## Terraform
The `terraform` module shows the currently selected [Terraform workspace](https://www.terraform.io/docs/language/state/workspaces.html) and version.
The `terraform` module shows the currently selected [Terraform workspace](https://www.terraform.io/docs/language/state/workspaces.html) and version. It supports both Hashicorp Terraform and OpenTofu for version detection.
::: tip
By default the Terraform version is not shown, since this is slow for current versions of Terraform when a lot of plugins are in use. If you still want to enable it, [follow the example shown below](#with-terraform-version).
:::
> [!TIP] By default the Terraform/OpenTofu version is not shown, since this is slow for current versions when a lot of plugins are in use. If you still want to enable it, [follow the example shown below](#with-terraform-version).
Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
@@ -4406,16 +4418,17 @@ Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
| `fromat` | `'via [$symbol$workspace]($style) '` | The format string for the module. |
| `version_format` | `'v${raw}'`| Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` |
| `symbol` | `'💠'`| A format string shown before the terraform workspace. |
| `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Ekstensi mana yang sebaiknya memicu modul ini. |
| `detect_files` | `[]`| filenames mana yang sebaiknya memicu modul ini. |
| `detect_folders` | `['.terraform']`| Folder mana yang sebaiknya memicul modul ini. |
| `style` | `'bold 105'`| Gaya penataan untuk modul. |
| `disabled` | `false`| Disables the `terraform` module. |
| `commands` | `[ [ 'terraform', 'version' ], [ 'tofu', 'version' ] ]` | How to detect what the Terraform version is. |
### Variabel
@@ -4436,7 +4449,7 @@ Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
# ~/.config/starship.toml
[terraform]
format = '[🏎💨 $version$workspace]($style) '
format = 'via [$symbol$version$workspace]($style) '
```
#### Without Terraform version
@@ -4445,18 +4458,14 @@ format = '[🏎💨 $version$workspace]($style) '
# ~/.config/starship.toml
[terraform]
format = '[🏎💨 $workspace]($style) '
format = 'via [$symbol$workspace]($style) '
```
## Waktu
The `time` module shows the current **local** time. The `format` configuration value is used by the [`chrono`](https://crates.io/crates/chrono) crate to control how the time is displayed. Take a look [at the chrono strftime docs](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) to see what options are available.
::: tip
This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
> [!TIP] This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
### Opsi
@@ -4537,11 +4546,7 @@ The `username` module shows active user's username. The module will be shown if
- The variable `show_always` is set to true
- The array `detect_env_vars` contains at least the name of one environment variable, that is set
::: tip
SSH connection is detected by checking environment variables `SSH_CONNECTION`, `SSH_CLIENT`, and `SSH_TTY`. If your SSH host does not set up these variables, one workaround is to set one of them with a dummy value.
:::
> [!TIP] SSH connection is detected by checking environment variables `SSH_CONNECTION`, `SSH_CLIENT`, and `SSH_TTY`. If your SSH host does not set up these variables, one workaround is to set one of them with a dummy value.
### Opsi
@@ -4684,6 +4689,35 @@ The `vcsh` module displays the current active [VCSH](https://github.com/RichiH/v
format = '[🆅 $repo](bold blue) '
```
## XMake
The `xmake` module shows the currently installed version of [XMake](https://xmake.io/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi:
*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string
## Zig
By default the `zig` module shows the currently installed version of [Zig](https://ziglang.org/). The module will be shown if any of the following conditions are met:
@@ -4734,31 +4768,17 @@ These modules will be shown if any of the following conditions are met:
- The `when` command returns 0
- The current Operating System (std::env::consts::OS) matches with `os` field if defined.
::: tip
> [!TIP] Multiple custom modules can be defined by using a `.`.
Multiple custom modules can be defined by using a `.`.
> [!TIP] The order in which custom modules are shown can be individually set by including `${custom.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `custom` module will simply show all custom modules in the order they were defined.
:::
> [!TIP] [Issue #1252](https://github.com/starship/starship/discussions/1252) contains examples of custom modules. If you have an interesting example not covered there, feel free to share it there!
::: tip
The order in which custom modules are shown can be individually set by including `${custom.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `custom` module will simply show all custom modules in the order they were defined.
:::
::: tip
[Issue #1252](https://github.com/starship/starship/discussions/1252) contains examples of custom modules. If you have an interesting example not covered there, feel free to share it there!
:::
::: warning If `unsafe_no_escape` is enabled or prior to starship v1.20 command output is printed unescaped to the prompt.
Whatever output the command generates is printed unmodified in the prompt. This means if the output contains shell-specific interpretable sequences, they could be interpreted on display. Depending on the shell, this can mean that e.g. strings enclosed by backticks are executed by the shell. Such sequences are usually shell specific, e.g. you can write a command module that writes bash sequences, e.g. `\h`, but this module will not work in a fish or zsh shell.
Format strings can also contain shell specific prompt sequences, e.g. [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html).
:::
> [!WARNING] If `unsafe_no_escape` is enabled or prior to starship v1.20 command output is printed unescaped to the prompt.
>
> Whatever output the command generates is printed unmodified in the prompt. This means if the output contains shell-specific interpretable sequences, they could be interpreted on display. Depending on the shell, this can mean that e.g. strings enclosed by backticks are executed by the shell. Such sequences are usually shell specific, e.g. you can write a command module that writes bash sequences, e.g. `\h`, but this module will not work in a fish or zsh shell.
>
> Format strings can also contain shell specific prompt sequences, e.g. [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html).
### Opsi
@@ -4808,17 +4828,15 @@ If `shell` is not given or only contains one element and Starship detects PowerS
shell = ['pwsh', '-Command', '-']
```
::: warning Make sure your custom shell configuration exits gracefully
If you set a custom command, make sure that the default Shell used by starship will properly execute the command with a graceful exit (via the `shell` option).
For example, PowerShell requires the `-Command` parameter to execute a one liner. Omitting this parameter might throw starship into a recursive loop where the shell might try to load a full profile environment with starship itself again and hence re-execute the custom command, getting into a never ending loop.
Parameters similar to `-NoProfile` in PowerShell are recommended for other shells as well to avoid extra loading time of a custom profile on every starship invocation.
Automatic detection of shells and proper parameters addition are currently implemented, but it's possible that not all shells are covered. [Please open an issue](https://github.com/starship/starship/issues/new/choose) with shell details and starship configuration if you hit such scenario.
:::
> [!WARNING] Make sure your custom shell configuration exits gracefully
>
> If you set a custom command, make sure that the default Shell used by starship will properly execute the command with a graceful exit (via the `shell` option).
>
> For example, PowerShell requires the `-Command` parameter to execute a one liner. Omitting this parameter might throw starship into a recursive loop where the shell might try to load a full profile environment with starship itself again and hence re-execute the custom command, getting into a never ending loop.
>
> Parameters similar to `-NoProfile` in PowerShell are recommended for other shells as well to avoid extra loading time of a custom profile on every starship invocation.
>
> Automatic detection of shells and proper parameters addition are currently implemented, but it's possible that not all shells are covered. [Please open an issue](https://github.com/starship/starship/issues/new/choose) with shell details and starship configuration if you hit such scenario.
Tambahkan skrip berikut pada baris akhir `~/.elvish/rc.elv`:
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
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>
@@ -407,7 +408,7 @@ Jika kamu ingin mengkustomisasi Starship lebih jauh:
## 🤝 Berkontribusi
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).
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/).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.