A new role (separate from base) that gives workstation-class hosts (ubongo now, mamba later) a clean interactive environment: zsh + oh-my-zsh + oh-my-posh, tmux + TPM plugins, and neovim. Dotfiles are real files deployed via GNU stow (not templated); pinned nvim v0.12.2 + oh-my-posh 29.0.1. Configs re-derived (ADR-013) from AnsibleBaobabV4 + the operator's fisi setup on boma's terms: no Nerd Font (headless host), no system LSP suite (nvim uses mason), versions pinned (V4 tracks latest). Applied via playbooks/workstation.yml to the control group for users sjat + claude. Lint + Molecule (idempotent) green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
78 lines
1.6 KiB
TOML
78 lines
1.6 KiB
TOML
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
|
||
version = 3
|
||
final_space = true
|
||
console_title_template = '{{ .Shell }} in {{ .Folder }}'
|
||
|
||
[[blocks]]
|
||
type = 'prompt'
|
||
alignment = 'left'
|
||
newline = true
|
||
|
||
[[blocks.segments]]
|
||
type = 'text'
|
||
style = 'plain'
|
||
foreground = 'cyan'
|
||
background = 'transparent'
|
||
template = '{{ .UserName }}@{{ .HostName }}:'
|
||
|
||
[[blocks.segments]]
|
||
type = 'path'
|
||
style = 'plain'
|
||
foreground = 'blue'
|
||
background = 'transparent'
|
||
template = '{{ .Path }}'
|
||
[blocks.segments.properties]
|
||
style = 'full'
|
||
|
||
[[blocks.segments]]
|
||
type = 'text'
|
||
style = 'plain'
|
||
foreground = 'magenta'
|
||
background = 'transparent'
|
||
template = '>'
|
||
|
||
[[blocks.segments]]
|
||
type = 'git'
|
||
style = 'plain'
|
||
foreground = 'p:grey'
|
||
background = 'transparent'
|
||
template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} <cyan>{{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}</>'
|
||
|
||
[[blocks]]
|
||
type = 'rprompt'
|
||
overflow = 'hidden'
|
||
[[blocks.segments]]
|
||
type = 'executiontime'
|
||
style = 'plain'
|
||
foreground = 'yellow'
|
||
background = 'transparent'
|
||
template = '{{ .FormattedMs }}'
|
||
[blocks.segments.properties]
|
||
threshold = 5000
|
||
|
||
[[blocks]]
|
||
type = 'prompt'
|
||
alignment = 'left'
|
||
newline = true
|
||
[[blocks.segments]]
|
||
type = 'text'
|
||
style = 'plain'
|
||
foreground_templates = [
|
||
"{{if gt .Code 0}}red{{end}}",
|
||
"{{if eq .Code 0}}magenta{{end}}",
|
||
]
|
||
background = 'transparent'
|
||
template = '❯'
|
||
|
||
[transient_prompt]
|
||
foreground_templates = [
|
||
"{{if gt .Code 0}}red{{end}}",
|
||
"{{if eq .Code 0}}magenta{{end}}",
|
||
]
|
||
background = 'transparent'
|
||
template = '❯ '
|
||
|
||
[secondary_prompt]
|
||
foreground = 'magenta'
|
||
background = 'transparent'
|
||
template = '❯❯ '
|