oh-my-posh/website/docs/configuration/transient.mdx

138 lines
3.9 KiB
Plaintext
Raw Normal View History

2021-11-12 10:14:16 -08:00
---
2022-04-20 09:43:59 -07:00
id: transient
2021-11-12 10:14:16 -08:00
title: Transient prompt
sidebar_label: Transient prompt
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
:::info
2022-03-23 02:32:54 -07:00
This feature only works in `fish`, `zsh`, `powershell` and `cmd` for the time being.
2021-11-12 10:14:16 -08:00
:::
Transient prompt, when enabled, replaces the prompt with a simpler one to allow more screen real estate.
You can use go [text/template][go-text-template] templates extended with [sprig][sprig] to enrich the text.
Environment variables are available, just like the [`console_title_template`][console-title] functionality.
Typically, your prompt will simply leave the prompt on the screen when you execute a command (or press enter) like so:
![Before Transient](/img/transient-before.gif)
By enabling Transient Prompt, you can replace the prompt with some other content for a cleaner console as shown here:
![After Transient](/img/transient-after.gif)
## Configuration
You need to extend or create a custom theme with your transient prompt. For example:
```json
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": {
...
2022-02-20 04:56:28 -08:00
},
2021-11-12 10:14:16 -08:00
"transient_prompt": {
"background": "transparent",
"foreground": "#ffffff",
"template": "{{ .Shell }}> "
}
}
```
The configuration has the following properties:
- foreground: `string` [color][colors]
- foreground_templates: foreground [color templates][color-templates]
- background: `string` [color][colors]
- background_templates: background [color templates][color-templates]
- template: `string` - a go [text/template][go-text-template] template extended with [sprig][sprig] utilizing the
2021-11-20 02:14:26 -08:00
properties below - defaults to `{{ .Shell }}> `
2021-11-12 10:14:16 -08:00
2022-02-01 03:10:46 -08:00
## Template ([info][templates])
2021-11-12 10:14:16 -08:00
- `.Root`: `boolean` - is the current user root/admin or not
2022-01-22 10:46:56 -08:00
- `.PWD`: `string` - the current working directory
2021-11-12 10:14:16 -08:00
- `.Folder`: `string` - the current working folder
- `.Shell`: `string` - the current shell name
- `.UserName`: `string` - the current user name
- `.HostName`: `string` - the host name
2022-03-27 10:29:05 -07:00
- `.Code`: `int` - the last exit code
2021-11-12 10:14:16 -08:00
- `.Env.VarName`: `string` - Any environment variable where `VarName` is the environment variable name
## Enable the feature
<Tabs
defaultValue="pwsh"
groupId="shell"
values={[
{ label: 'powershell', value: 'pwsh', },
2021-11-18 04:29:56 -08:00
{ label: 'cmd', value: 'cmd', },
2021-11-12 10:14:16 -08:00
{ label: 'zsh', value: 'zsh', },
2022-03-23 02:32:54 -07:00
{ label: 'fish', value: 'fish', },
2021-11-12 10:14:16 -08:00
]
}>
<TabItem value="pwsh">
Invoke Oh My Posh in your `$PROFILE` and add the following line below.
2021-11-12 10:14:16 -08:00
2021-11-13 04:30:41 -08:00
```powershell
2022-03-25 11:03:37 -07:00
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH/jandedobbeleer.omp.json | Invoke-Expression
// highlight-start
2021-11-12 10:14:16 -08:00
Enable-PoshTransientPrompt
// highlight-end
2021-11-12 10:14:16 -08:00
```
:::caution
If you import **PSReadLine** separately, make sure to import it before the `Enable-PoshTransientPrompt` command.
:::
2021-11-12 10:14:16 -08:00
Restart your shell or reload your `$PROFILE` using `. $PROFILE` for the changes to take effect.
2021-11-18 04:29:56 -08:00
</TabItem>
<TabItem value="cmd">
Set the transient prompt in [clink][clink] to `always` in the `oh-my-posh.lua` script to enable the feature:
```shell
clink set prompt.transient always
```
Restart your shell for the changes to take effect.
2021-11-12 10:14:16 -08:00
</TabItem>
<TabItem value="zsh">
Invoke Oh My Posh in `.zshrc` and add the following line below:
```bash
enable_poshtransientprompt
```
Restart your shell or reload `.zshrc` using `exec zsh` for the changes to take effect.
2021-11-12 10:14:16 -08:00
2022-03-23 02:32:54 -07:00
</TabItem>
<TabItem value="fish">
Invoke Oh My Posh in `~/.config/fish/config.fish` and add the following line below:
```bash
enable_poshtransientprompt
```
Restart your shell or reload fish using `exec fish` for the changes to take effect.
2021-11-12 10:14:16 -08:00
</TabItem>
</Tabs>
2022-04-20 09:43:59 -07:00
[colors]: /docs/configuration/colors
2021-11-12 10:14:16 -08:00
[go-text-template]: https://golang.org/pkg/text/template/
2022-04-20 09:43:59 -07:00
[console-title]: /docs/configuration/title#console-title-template
2021-11-12 10:14:16 -08:00
[sprig]: https://masterminds.github.io/sprig/
2021-11-18 04:29:56 -08:00
[clink]: https://chrisant996.github.io/clink/
2022-04-20 09:43:59 -07:00
[templates]: /docs/configuration/templates
[color-templates]: /docs/configuration/colors#color-templates