Skip to content

Powerlevel10k Prompt Character Bleeding into Command Output #2905

@saransh09

Description

@saransh09

Environment

• OS: macOS (Darwin)
• Shell: zsh with oh-my-zsh
• Theme: powerlevel10k/powerlevel10k
• Terminal: ghostty

Issue Description

The Powerlevel10k prompt suffix character ─╯ (UTF-8 bytes: e2 94 80 e2 95 af) appears to bleed into terminal output under certain conditions, causing data corruption when that
output is captured or used programmatically.

Specific manifestation:

• Running git config --global user.email (without arguments) to read the current value
• The output visually shows or somehow captures the prompt suffix character ─╯
• This corrupted output can then accidentally be written back to .gitconfig through copy-paste or command mishaps
• Result: .gitconfig file contains email = ─╯ instead of actual email address

Configuration

The prompt character is defined in .p10k.zsh:149:

POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%240F─╯'

Evidence from .zsh_history

Hex Dump of Corrupted .gitconfig

00000000 5b 75 73 65 72 5d 0a 09 65 6d 61 69 6c 20 3d 20 |[user]..email = |
00000010 e2 94 80 e2 95 af 0a 09 6e 61 6d 65 20 3d 20 53 |........name = S|

Bytes e2 94 80 e2 95 af = ─╯

Reproduction

Unable to reliably reproduce - appears to be a race condition or timing issue between:

• Command output rendering
• Prompt rendering
• Terminal buffer state

Workaround

Explicitly resetting the config value fixes the corruption:

git config --global --unset user.email
git config --global user.email "[email protected]"

Impact

High - Can silently corrupt configuration files or any captured command output, leading to:

• Broken git configuration
• Failed authentication
• Data integrity issues in scripts that capture command output

Additional Context

The instant prompt is enabled in .zshrc:

if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions