diff --git a/.gitignore b/.gitignore
index 2110cd79..3c67b7e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -187,3 +187,4 @@ devspaces/context/setup-image.sh
final/context/setup-image.sh
final/setup-image.sh
image.tar
+final/.ohmyposh.omp.json
diff --git a/.ohmyposh.omp.json b/.ohmyposh.omp.json
new file mode 100644
index 00000000..9a17c78a
--- /dev/null
+++ b/.ohmyposh.omp.json
@@ -0,0 +1,162 @@
+{
+ "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
+ "console_title_template": "{{.Folder}}{{if .Root}} :: root{{end}}",
+ "palette": {
+ "yellow": "#c6c43f",
+ "lightYellow": "#eae14a"
+ },
+ "blocks": [
+ {
+ "type": "prompt",
+ "alignment": "left",
+ "segments": [
+ {
+ "properties": {
+ "cache_duration": "none",
+ "mapped_shell_names": {
+ "bash": "Bash",
+ "cmd": "Cmd",
+ "powershell": "Shell",
+ "pwsh": "Shell"
+ }
+ },
+ "template": "@{{ .HostName }}",
+ "foreground": "darkGray",
+ "type": "shell",
+ "style": "plain"
+ },
+ {
+ "properties": {
+ "cache_duration": "1h",
+ "mapped_shell_names": {
+ "bash": "Bash",
+ "cmd": "Cmd",
+ "powershell": "Shell",
+ "pwsh": "Shell"
+ }
+ },
+ "template": "{{ if ne .OS \"darwin\" }} {{ .OS }}{{ end }}{{ if .WSL }}-wsl{{ end }}",
+ "foreground": "cyan",
+ "type": "shell",
+ "style": "plain"
+ },
+ {
+ "properties": {
+ "cache_duration": "none",
+ "display_mode": "context",
+ "fetch_virtual_env": true,
+ "home_enabled": true,
+ "display_default": true,
+ "folder_name_fallback": true,
+ "default_venv_names": []
+ },
+ "template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}({{ .Venv }}) {{ end }}{{ .Full }}{{ end }}",
+ "foreground": "yellow",
+ "powerline_symbol": "\ue0b0",
+ "type": "python",
+ "style": "plain"
+ },
+ {
+ "properties": {
+ "branch_icon": "",
+ "branch_max_length": 25,
+ "cache_duration": "none",
+ "fetch_stash_count": true,
+ "fetch_status": true,
+ "fetch_upstream_icon": true,
+ "cherry_pick_icon": "\u2713 ",
+ "commit_icon": "\u25b7 ",
+ "merge_icon": "\u25f4 ",
+ "no_commits_icon": "[no commits]",
+ "rebase_icon": "\u2c62 ",
+ "tag_icon": "\u25b6 "
+ },
+ "template": " {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} § {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }} ",
+ "foreground": "#F3C267",
+ "type": "git",
+ "style": "plain",
+ "foreground_templates": [
+ "{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}",
+ "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff5a5a{{ end }}",
+ "{{ if gt .Ahead 0 }}#B388FF{{ end }}",
+ "{{ if gt .Behind 0 }}#B388FF{{ end }}"
+ ]
+ }
+ ],
+ "newline": false
+ },
+ {
+ "type": "prompt",
+ "alignment": "left",
+ "segments": [
+ {
+ "properties": {
+ "cache_duration": "none"
+ },
+ "template": " {{ .Code }} ({{ reason .Code }})",
+ "foreground": "#b8ff75",
+ "type": "status",
+ "style": "plain",
+ "foreground_templates": ["{{ if gt .Code 0 }}#E06C75{{ end }}"]
+ },
+ {
+ "properties": {
+ "always_enabled": false,
+ "cache_duration": "none",
+ "style": "roundrock",
+ "threshold": 5000
+ },
+ "template": " {{ .FormattedMs }}{{ if gt .Ms 10000 }}\u0007{{ end }} ",
+ "foreground": "lightYellow",
+ "type": "executiontime",
+ "style": "plain",
+ "foreground_templates": ["{{ if gt .Code 0 }}#E06C75{{ end }}"]
+ }
+ ]
+ },
+ {
+ "type": "prompt",
+ "alignment": "left",
+ "segments": [
+ {
+ "properties": {
+ "cache_duration": "none",
+ "style": "full"
+ },
+ "template": "{{ .Path }}",
+ "foreground": "#61AFEF",
+ "type": "path",
+ "style": "plain"
+ }
+ ],
+ "newline": false
+ },
+ {
+ "type": "prompt",
+ "alignment": "left",
+ "segments": [
+ {
+ "properties": {
+ "cache_duration": "none"
+ },
+ "template": "!",
+ "foreground": "#E06C75",
+ "type": "root",
+ "style": "plain"
+ },
+ {
+ "properties": {
+ "cache_duration": "none"
+ },
+ "template": "❯",
+ "foreground": "#E06C75",
+ "type": "text",
+ "style": "plain"
+ }
+ ],
+ "newline": true
+ }
+ ],
+ "version": 3,
+ "final_space": true
+}
diff --git a/bindep.txt b/bindep.txt
index 8b64e4b8..30040f54 100644
--- a/bindep.txt
+++ b/bindep.txt
@@ -1,3 +1,4 @@
python3-devel [platform:redhat]
oniguruma-devel [test platform:rpm]
libonig-dev [test platform:dpkg]
+unzip [platform:redhat]
diff --git a/devspaces/context/setup.sh b/devspaces/context/setup.sh
index fac43821..a11eea4b 100755
--- a/devspaces/context/setup.sh
+++ b/devspaces/context/setup.sh
@@ -24,6 +24,7 @@ dnf install -y -q \
"python${PYV}-pyyaml" \
"python${PYV}-wheel" \
tar \
+ unzip \
util-linux-user \
which \
zsh \
diff --git a/final/setup.sh b/final/setup.sh
index c68fc783..fac10c7d 100755
--- a/final/setup.sh
+++ b/final/setup.sh
@@ -22,32 +22,34 @@ microdnf remove -y subscription-manager dnf-plugin-subscription-manager
# gcc: for ansible-pylibssh, onigurumacffi/arm64
# ncurses: for ansible-navigator
# oniguruma-devel: onigurumacffi/arm64 (does not have binary)
+# unzip: oh-my-posh installer
microdnf install -q -y \
-tar \
+dumb-init \
echo \
-podman \
fuse-overlayfs \
-openssh-clients \
-zsh \
-util-linux-user \
-which \
-git \
-nano \
-vim \
-dumb-init \
gcc \
+git \
git-core \
libssh-devel \
-python3-markupsafe \
+nano \
ncurses \
oniguruma-devel \
+openssh-clients \
+podman \
python3-bcrypt \
python3-cffi \
python3-devel \
+python3-markupsafe \
python3-pip \
python3-pyyaml \
python3-ruamel-yaml \
python3-wheel \
+tar \
+unzip \
+util-linux-user \
+vim \
+which \
+zsh \
--exclude container-selinux
microdnf -q clean all
diff --git a/tools/devspaces.sh b/tools/devspaces.sh
index edc64f2f..5edd3598 100755
--- a/tools/devspaces.sh
+++ b/tools/devspaces.sh
@@ -18,6 +18,7 @@ fi
rm -f devspaces/context/*.whl
ln -f dist/*.whl devspaces/context
ln -f tools/setup-image.sh devspaces/context
+ln -f .ohmyposh.omp.json devspaces/context
# we force use of linux/amd64 platform because source image supports only this
# platform and without it, it will fail to cross-build when task runs on arm64.
diff --git a/tools/ee.sh b/tools/ee.sh
index 17409c72..c6bddae5 100755
--- a/tools/ee.sh
+++ b/tools/ee.sh
@@ -66,6 +66,7 @@ python -m build --outdir "$REPO_DIR/final/dist/" --wheel "$REPO_DIR"
ansible-builder create -f execution-environment.yml --output-filename Containerfile -v3
$BUILD_CMD -f context/Containerfile context/ --tag "${TAG_BASE}"
ln -f tools/setup-image.sh final/
+ln -f .ohmyposh.omp.json final/
$BUILD_CMD -f final/Containerfile final/ --tag "${IMAGE_NAME}"
# We save local image in order to import it inside the container later for c-in-c testing
diff --git a/tools/setup-image.sh b/tools/setup-image.sh
index ee3565db..d1adf406 100755
--- a/tools/setup-image.sh
+++ b/tools/setup-image.sh
@@ -15,5 +15,13 @@ oc version --client=true
# ubi9 image but not on fedora one.
touch ~/.zshrc
-# Install oh-my-zsh
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
+# Install our oh-my-posh theme
+mkdir -p ~/.poshthemes/
+cp -f /final/.ohmyposh.omp.json ~/.poshthemes/ansible.omp.json
+
+# Install oh-my-posh
+curl -s https://ohmyposh.dev/install.sh | bash -s
+cat >> ~/.zshrc <<'EOF'
+export PATH=$PATH:$HOME/.local/bin
+eval "$(oh-my-posh init zsh --config ~/.poshthemes/ansible.omp.json)"
+EOF