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

124 lines
2.6 KiB
Plaintext
Raw Normal View History

---
2022-04-20 09:43:59 -07:00
id: block
title: Block
sidebar_label: Block
---
2022-06-03 13:35:11 -07:00
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
2022-06-03 13:35:11 -07:00
Let's take a closer look at what defines a block.
2022-06-03 13:35:11 -07:00
<Tabs
defaultValue="json"
groupId="sample"
values={[
{ label: 'json', value: 'json', },
{ label: 'yaml', value: 'yaml', },
{ label: 'toml', value: 'toml', },
]
}>
<TabItem value="json">
```json
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
...
"blocks": [
{
"type": "prompt",
"alignment": "left",
"segments": [
...
]
}
]
}
```
2022-06-03 13:35:11 -07:00
</TabItem>
<TabItem value="yaml">
```yaml
# yaml-language-server: $schema=https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
---
2022-06-03 13:35:11 -07:00
blocks:
- type: prompt
alignment: left
segments: [...]
2022-06-03 13:35:11 -07:00
```
</TabItem>
<TabItem value="toml">
```toml
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
[[blocks]]
type = "prompt"
alignment = "left"
segments = [
...
]
```
</TabItem>
</Tabs>
## Properties
| Name | Type |
| ----------- | --------- |
| `type` | `string` |
| `newline` | `boolean` |
| `alignment` | `string` |
| `filler` | `string` |
| `overflow` | `string` |
| `segments` | `array` |
### Type
Tells the engine what to do with the block. There are two options:
- `prompt` renders one or more segments
- `rprompt` renders one or more segments aligned to the right of the cursor. Only one `rprompt` block is permitted.
Supported on zsh, bash, PowerShell, cmd and fish.
### Newline
Start the block on a new line - defaults to `false`. For `pwsh` and `cmd` this will not print a newline that's defined
on the first block when the prompt is on the first line (when using clear), or when the shell session starts (1st prompt).
### Alignment
- `left`
- `right`
Tell the engine if the block should be left or right-aligned.
2022-02-04 08:22:40 -08:00
### Filler
2022-02-12 09:40:02 -08:00
When you want to join a right and left aligned block with a repeated set of characters, add the character(s)
to be repeated to this property. Add this property to the _right_ aligned block. This supports the use of
[color overrides][color-overrides].
2022-02-04 08:22:40 -08:00
```json
2022-02-06 02:01:46 -08:00
"alignment": "right",
2022-02-04 08:22:40 -08:00
"filler": "."
```
### Overflow
- `break`
- `hide`
When the right aligned block is so long it will overflow the left aligned block, the engine will either
break the block or hide it based on the setting. By default it is printed as is on the same line.
### Segments
Array of one or more [segments][segment].
2022-02-12 09:40:02 -08:00
2022-04-20 09:43:59 -07:00
[color-overrides]: /docs/configuration/colors#color-overrides
[segment]: segment.mdx