--- id: transient title: Transient prompt sidebar_label: Transient prompt --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; :::info This feature only works in `fish`, `zsh`, `powershell` and `cmd` for the time being. ::: 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": { ... }, "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 properties below - defaults to `{{ .Shell }}> ` ## Template ([info][templates]) - `.Root`: `boolean` - is the current user root/admin or not - `.PWD`: `string` - the current working directory - `.Folder`: `string` - the current working folder - `.Shell`: `string` - the current shell name - `.UserName`: `string` - the current user name - `.HostName`: `string` - the host name - `.Code`: `int` - the last exit code - `.Env.VarName`: `string` - Any environment variable where `VarName` is the environment variable name ## Enable the feature Invoke Oh My Posh in your `$PROFILE` and add the following line below. ```powershell oh-my-posh init pwsh --config $env:POSH_THEMES_PATH/jandedobbeleer.omp.json | Invoke-Expression // highlight-start Enable-PoshTransientPrompt // highlight-end ``` :::caution If you import **PSReadLine** separately, make sure to import it before the `Enable-PoshTransientPrompt` command. ::: Restart your shell or reload your `$PROFILE` using `. $PROFILE` for the changes to take effect. 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. 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. 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. [colors]: /docs/configuration/colors [go-text-template]: https://golang.org/pkg/text/template/ [console-title]: /docs/configuration/title#console-title-template [sprig]: https://masterminds.github.io/sprig/ [clink]: https://chrisant996.github.io/clink/ [templates]: /docs/configuration/templates [color-templates]: /docs/configuration/colors#color-templates