oh-my-bash icon indicating copy to clipboard operation
oh-my-bash copied to clipboard

Powerline Multiline and other powerline based themes line wrap broken

Open HarmonyTechLabs opened this issue 8 months ago • 5 comments

Summary

I have been using the powerline multiline theme and have noticed that now when typing long commands line wrap no longer functions, it continues the command on the same line. If I review the command history and pull up a multi-line command, it will screw up the screen and gobble up lines. I have posted before and after photos of this behavior in the photos at the bottom.

I will happily perform any troubleshooting steps or provide any more information that you might need on the system. I've temporarily switched to another theme as a work around. It does appear that it affects other powerline based themes as well, not just multi-line. I will go through the bundled themes and generate a list with the issue if requested.

System/Software Versions

OS: Linux version 6.1.57-1-lts (linux-lts@archlinux) (gcc (GCC) 13.2.1 20230801, GNU ld (GNU Binutils) 2.41.0) #1 SMP PREEMPT_DYNAMIC Wed, 11 Oct 2023 05:10:50 +0000

Nerd Font: FiraCode Nerd Font Mono Retina

Terminal: Windows Terminal 1.18.2681.0

Bash: GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)

Screenshots

Issue with word wrap

image

Issue with line wrap in command history (before)

image

Issue with line wrap in command history (after)

image

HarmonyTechLabs avatar Oct 16 '23 21:10 HarmonyTechLabs

OK, I can reproduce the problem with Ubuntu/WSL connected from Windows Terminal.

Somehow it doesn't reproduce when I connect to Arch Linux w/ bash-5.16 using ssh from Windows Terminal. I also checked the behavior in my usual environment Fedora w/ bash-5.2.15, but it doesn't reproduce either. Another thing I noticed is that it produces the error message of setlocale on the startup, but the error message doesn't appear in the nested Bash session.

akinomyoga avatar Oct 16 '23 22:10 akinomyoga

Interesting... Let me post my .bashrc file, maybe I broke something in there when I added micromamba additions to the bottom.

# Enable the subsequent settings only in interactive sessions
case $- in
  *i*) ;;
    *) return;;
esac

# Path to your oh-my-bash installation.
export OSH='/home/psortland/.oh-my-bash'

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-bash is loaded.
OSH_THEME="powerline-multiline"

# Uncomment the following line to use case-sensitive completion.
# OMB_CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# OMB_HYPHEN_SENSITIVE="false"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
export UPDATE_OSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.  One of the following values can
# be used to specify the timestamp format.
# * 'mm/dd/yyyy'     # mm/dd/yyyy + time
# * 'dd.mm.yyyy'     # dd.mm.yyyy + time
# * 'yyyy-mm-dd'     # yyyy-mm-dd + time
# * '[mm/dd/yyyy]'   # [mm/dd/yyyy] + [time] with colors
# * '[dd.mm.yyyy]'   # [dd.mm.yyyy] + [time] with colors
# * '[yyyy-mm-dd]'   # [yyyy-mm-dd] + [time] with colors
# If not set, the default value is 'yyyy-mm-dd'.
# HIST_STAMPS='yyyy-mm-dd'

# Uncomment the following line if you do not want OMB to overwrite the existing
# aliases by the default OMB aliases defined in lib/*.sh
OMB_DEFAULT_ALIASES="check"

# Would you like to use another custom folder than $OSH/custom?
# OSH_CUSTOM=/path/to/new-custom-folder

# To disable the uses of "sudo" by oh-my-bash, please set "false" to
# this variable.  The default behavior for the empty value is "true".
OMB_USE_SUDO=true

# To enable/disable display of Python virtualenv and condaenv
OMB_PROMPT_SHOW_PYTHON_VENV=true  # enable
# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable

# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*)
# Custom completions may be added to ~/.oh-my-bash/custom/completions/
# Example format: completions=(ssh git bundler gem pip pip3)
# Add wisely, as too many completions slow down shell startup.
completions=(
  apm
  git
  composer
  conda
  crc
  dirs
  docker
  docker-compose
  gradle
  kubectl
  makefile
  npm
  pip
  pip3
  ssh
  system
  tmux
)

# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/
# Example format: aliases=(vagrant composer git-avh)
# Add wisely, as too many aliases slow down shell startup.
aliases=(
  general
)

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
  ansible
  bash-preexec
  git
  kubectl
  npm
  pyenv
  progress
  sudo
  bashmarks
)

# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format:
#  if [ "$DISPLAY" ] || [ "$SSH" ]; then
#      plugins+=(tmux-autoattach)
#  fi

source "$OSH"/oh-my-bash.sh

# User configuration
# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
#export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"

# Set personal aliases, overriding those provided by oh-my-bash libs,
# plugins, and themes. Aliases can be placed here, though oh-my-bash
# users are encouraged to define aliases within the OSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias bashconfig="mate ~/.bashrc"
# alias ohmybash="mate ~/.oh-my-bash"
export EDITOR="nano"
export SUDO_EDITOR="nano"

# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE="/usr/bin/micromamba";
export MAMBA_ROOT_PREFIX="/opt/micromamba";
__mamba_setup="$("$MAMBA_EXE" shell hook --prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__mamba_setup"
else
    if [ -f "/opt/micromamba/etc/profile.d/micromamba.sh" ]; then
        . "/opt/micromamba/etc/profile.d/micromamba.sh"
    else
        export  PATH="/opt/micromamba/bin:$PATH"  # extra space after export prevents interference from conda init
    fi
fi
unset __mamba_setup
# <<< mamba initialize <<<

HarmonyTechLabs avatar Oct 16 '23 22:10 HarmonyTechLabs

I've done some more testing on this, wiped out the bashrc and started with a fresh one, as soon as I reinstall, the line wrap breaks. I've also tried directly on the console with the same results. Is there anything you'd like me to test or try to help figure out where the issue is?

HarmonyTechLabs avatar Nov 05 '23 18:11 HarmonyTechLabs

Thanks for more testing. I've been just busy recently. Since I could reproduce it in one of my environments, I think I can solve it when I have time.

akinomyoga avatar Nov 05 '23 18:11 akinomyoga

Ah hah! I totally understand that. Thank you so much for the time and effort you put into the project, and I apologize if I came across as pushy.

HarmonyTechLabs avatar Nov 05 '23 18:11 HarmonyTechLabs