Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[character] is always success_symbol #5964

Open
pommepommee opened this issue May 6, 2024 · 1 comment
Open

[character] is always success_symbol #5964

pommepommee opened this issue May 6, 2024 · 1 comment
Labels
🐛 bug Something isn't working as expected.

Comments

@pommepommee
Copy link

pommepommee commented May 6, 2024

Current Behavior

The character symbol is always the success_symbol defined. I use the default configuration.

Expected Behavior

I would expect the character to be the error_symbol with its specified color.

Additional context/Screenshots

image

~ 
❯ cat .bashrc | grep starship
eval "$(starship init bash)"

~ 
❯ cat .config/starship.toml 
[character]
error_symbol = "[❯](bold red)"

~eval STARSHIP_LOG=trace starship module character
[TRACE] - (starship): Parsed arguments: Cli {
    command: Module {
        name: Some(
            "character",
        ),
        list: false,
        properties: Properties {
            status_code: None,
            pipestatus: None,
            terminal_width: 185,
            path: None,
            logical_path: None,
            cmd_duration: None,
            keymap: "viins",
            jobs: 0,
        },
    },
}
[TRACE] - (starship::utils): Trying to read from "/home/thomas/.config/starship.toml"
[TRACE] - (starship::utils): File read successfully
[TRACE] - (starship::config): Config file content: "
[character]
error_symbol = "[❯](bold red)"
"
[DEBUG] - (starship::config): Config parsed: {"character": Table({"error_symbol": String("[❯](bold red)")})}
[TRACE] - (starship::context): Received completed pipestatus of None
[DEBUG] - (starship::config): Config found for "character": Some(Table({"error_symbol": String("[❯](bold red)")}))
[TRACE] - (starship::config): No color palette specified, using defaults
[TRACE] - (starship::config): Parsing color_string: green
[TRACE] - (starship::config): Read predefined color: green
[TRACE] - (starship::modules): Took 69.22µs to compute module "character"

Possible Solution

Environment

  • Starship version: 1.18.2
  • bash version: GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2020 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

  • Operating system: Ubuntu 22.4.0
  • Terminal emulator:
  • Git Commit Hash:
  • Branch/Tag: master
  • Rust Version: rustc 1.77.1 (7cf61ebde 2024-03-27)
  • Rust channel: release
  • Build Time: 2024-03-29 15:44:42 +00:00

Relevant Shell Configuration

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

# Java
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
export PATH=$PATH:$JAVA_HOME/bin

# Gradle
PATH=$PATH:/opt/gradle/gradle-7.3.3/bin

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

source /etc/bash_completion.d/gradle_completion

# PIP
PATH=$PATH:$HOME/.local/bin

# Load Angular CLI autocompletion.
source <(ng completion script)

# Starship setup
eval "$(starship init bash)"

# HSTR configuration - add this to ~/.bashrc
alias hh=hstr                    # hh to be alias for hstr
export HSTR_CONFIG=hicolor       # get more colors
shopt -s histappend              # append new history items to .bash_history
export HISTCONTROL=ignorespace   # leading space hides commands from history
export HISTFILESIZE=10000        # increase history file size (default is 500)
export HISTSIZE=${HISTFILESIZE}  # increase history size (default is 500)
# ensure synchronization between bash memory and history file
export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"
# if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc)
if [[ $- =~ .*i.* ]]; then bind '"\C-r": "\C-a hstr -- \C-j"'; fi
# if this is interactive shell, then bind
@pommepommee pommepommee added the 🐛 bug Something isn't working as expected. label May 6, 2024
@davidkna
Copy link
Member

davidkna commented May 6, 2024

If you add a hook in PROMPT_COMMAND before starship, the last status code will be overwritten and hidden from starship. Please try changing your hook to export PROMPT_COMMAND="${PROMPT_COMMAND}; history -a; history -n" or try using something like precmd_functions from bash-preexec instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working as expected.
Projects
None yet
Development

No branches or pull requests

2 participants