Настройка xfce4-terminal

Cвежий xfce4-terminal v0.8.9.1 на аналоге Ubuntu 20.04. - LinuxLite 5.2

~$ echo $SHELL
/bin/bash

после какой-то команды отобразило: term

при этом term

Вопросы:

  1. Что означает "1" и "130" на верхней картинке? ( у меня нет директорий с такими названиями) 130 - это какой-то номер предыдущей команды history? как-то связано с pipe предыдущей команды? а "1" ?
  2. Как сделать чтобы подобные числа не отображались, оставить только привычное отображение вывода, но не отключая нового графического отображения ?

при этом: в настройках конфига терминала '/ home/ex/.config/xfce4/terminal/terminalrc' я не смог обнаружить данной настройки.

B .bashrc отсутствует $PS1, есть два цикла:

# enable bash completion in interactive shells
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

...

# Powerline
if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
    source /usr/share/powerline/bindings/bash/powerline.sh
fi

В содержании /usr/share/bash-completion/bash_completion не обнаружил упоминания $PS1, он достаточно объемен и не знаю, есть ли смысл его выкладывать, а вот если закомментировать в .bashrc второй цикл с '/usr/share/powerline/bindings/bash/powerline.sh'

то возвращает привычное простое текстовое:

~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

однако тогда исчезает цветное графическое отображение приглашения.


содержание powerline.sh

cat /usr/share/powerline/bindings/bash/powerline.sh
_powerline_columns_fallback() {
    if which stty &>/dev/null ; then
        local cols="$(stty size 2>/dev/null)"
        if ! test -z "$cols" ; then
            echo "${cols#* }"
            return 0
        fi
    fi
    echo 0
    return 0
}

_powerline_tmux_pane() {
    echo "${TMUX_PANE:-`TMUX="$_POWERLINE_TMUX" tmux display -p "#D"`}" | \
        tr -d ' %'
}

_powerline_tmux_setenv() {
    TMUX="$_POWERLINE_TMUX" tmux setenv -g TMUX_"$1"_`_powerline_tmux_pane` "$2"
    TMUX="$_POWERLINE_TMUX" tmux refresh -S
}

_powerline_tmux_set_pwd() {
    if test "$_POWERLINE_SAVED_PWD" != "$PWD" ; then
        _POWERLINE_SAVED_PWD="$PWD"
        _powerline_tmux_setenv PWD "$PWD"
    fi
}

_powerline_return() {
    return $1
}

_POWERLINE_HAS_PIPESTATUS="$(
    _powerline_return 0 | _powerline_return 43
    test "${PIPESTATUS[*]}" = "0 43"
    echo "$?"
)"

_powerline_has_pipestatus() {
    return $_POWERLINE_HAS_PIPESTATUS
}

_powerline_status_wrapper() {
    local last_exit_code=$? last_pipe_status=( "${PIPESTATUS[@]}" )

    if ! _powerline_has_pipestatus \
       || test "${#last_pipe_status[@]}" -eq "0" \
       || test "$last_exit_code" != "${last_pipe_status[$(( ${#last_pipe_status[@]} - 1 ))]}" ; then
        last_pipe_status=()
    fi
    "$@" $last_exit_code "${last_pipe_status[*]}"
    return $last_exit_code
}

_powerline_add_status_wrapped_command() {
    local action="$1" ; shift
    local cmd="$1" ; shift
    full_cmd="_powerline_status_wrapper $cmd"
    if test "$action" = "append" ; then
        PROMPT_COMMAND="$PROMPT_COMMAND"$'\n'"$full_cmd"
    else
        PROMPT_COMMAND="$full_cmd"$'\n'"$PROMPT_COMMAND"
    fi
}

_powerline_tmux_set_columns() {
    _powerline_tmux_setenv COLUMNS "${COLUMNS:-`_powerline_columns_fallback`}"
}

_powerline_init_tmux_support() {
    if test -n "$TMUX" && tmux refresh -S &>/dev/null ; then
        # TMUX variable may be unset to create new tmux session inside this one
        _POWERLINE_TMUX="$TMUX"

        trap '_powerline_tmux_set_columns' WINCH
        _powerline_tmux_set_columns

        test "$PROMPT_COMMAND" != "${PROMPT_COMMAND/_powerline_tmux_set_pwd}" \
            || _powerline_add_status_wrapped_command append _powerline_tmux_set_pwd
    fi
}

_powerline_local_prompt() {
    # Arguments:
    # 1: side
    # 2: renderer_module arg
    # 3: last_exit_code
    # 4: last_pipe_status
    # 5: jobnum
    # 6: local theme
    "$POWERLINE_COMMAND" $POWERLINE_COMMAND_ARGS shell $1 \
        $2 \
        --last-exit-code=$3 \
        --last-pipe-status="$4" \
        --jobnum=$5 \
        --renderer-arg="client_id=$$" \
        --renderer-arg="local_theme=$6"
}

_powerline_prompt() {
    # Arguments:
    # 1: side
    # 2: last_exit_code
    # 3: last_pipe_status
    # 4: jobnum
    "$POWERLINE_COMMAND" $POWERLINE_COMMAND_ARGS shell $1 \
        --width="${COLUMNS:-$(_powerline_columns_fallback)}" \
        -r.bash \
        --last-exit-code=$2 \
        --last-pipe-status="$3" \
        --jobnum=$4 \
        --renderer-arg="client_id=$$"
}

_powerline_set_prompt() {
    local last_exit_code=$1 ; shift
    local last_pipe_status=$1 ; shift
    local jobnum="$(jobs -p|wc -l)"
    PS1="$(_powerline_prompt aboveleft $last_exit_code "$last_pipe_status" $jobnum)"
    if test -n "$POWERLINE_SHELL_CONTINUATION$POWERLINE_BASH_CONTINUATION" ; then
        PS2="$(_powerline_local_prompt left -r.bash $last_exit_code "$last_pipe_status" $jobnum continuation)"
    fi
    if test -n "$POWERLINE_SHELL_SELECT$POWERLINE_BASH_SELECT" ; then
        PS3="$(_powerline_local_prompt left '' $last_exit_code "$last_pipe_status" $jobnum select)"
    fi
}

_powerline_setup_prompt() {
    VIRTUAL_ENV_DISABLE_PROMPT=1
    if test -z "${POWERLINE_COMMAND}" ; then
        POWERLINE_COMMAND="$("$POWERLINE_CONFIG_COMMAND" shell command)"
    fi
    test "$PROMPT_COMMAND" != "${PROMPT_COMMAND%_powerline_set_prompt*}" \
        || _powerline_add_status_wrapped_command prepend _powerline_set_prompt
    PS2="$(_powerline_local_prompt left -r.bash 0 0 0 continuation)"
    PS3="$(_powerline_local_prompt left '' 0 0 0 select)"
}

if test -z "${POWERLINE_CONFIG_COMMAND}" ; then
    if which powerline-config >/dev/null ; then
        POWERLINE_CONFIG_COMMAND=powerline-config
    else
        POWERLINE_CONFIG_COMMAND="$(dirname "$BASH_SOURCE")/../../../scripts/powerline-config"
    fi
fi

if "${POWERLINE_CONFIG_COMMAND}" shell --shell=bash uses prompt ; then
    _powerline_setup_prompt
fi
if "${POWERLINE_CONFIG_COMMAND}" shell --shell=bash uses tmux ; then
    _powerline_init_tmux_support
fi

Ответы (1 шт):

Автор решения: DiD

Вы можете выключить Powerline если не пользуетесь его функционалом. Чтобы сохранить внешний вид PROMPT, вам надо добавить в .bashrc следующий скрипт. Весь функционал работает "из коробки" (без настроек). Вы можете поменять что-то, что-то вырезать, что-то добавить. Свой PROMPT я составлял по этой статье: Bash/Prompt customization.

Powerline PROMPT

#
# Fallback prompt
#


PS1='\u@\h \W\$ '

PROMPT_COMMAND=__UPDATE_PROMPT

#
# Prompt palete
#
#   0  Success color
#   1  Failed color
#   2  Return color
#   3  Muted color
#   4  User fg color
#   5  User bg color
#   6  Host fg color
#   7  Host bg color
#   8  CWD fg color
#   9  CWD bg color
#  10  RootUser fg color
#  11  RootUser bg color
#
#
#                 0   1   2   3   4   5   6   7   8   9  10  11
PROMPT_PALETTE=( 32 196   7 238 255  60 232  66 232 208 255 196 )
PROMPT_PALETTE=( 32 196   7 238 232  38 255  32 255  24 255 196 )
PROMPT_PALETTE=( 32 196   7 238 232 225 232  77 232 227 '231;1' 196 )
# PROMPT_PALETTE=( 32 196   7 238 232  38 255  32 255  24 255 196 )

__UPDATE_PROMPT(){
    local _R=$? PP=( ${PROMPT_PALETTE[*]} )
  { [[ -v MC_SID ]] || [[ $TERM == linux ]];} && return
  RE='\[\e[0m\]'  BO='\[\e[1m\]'  INV='\[\e[7m\]' NL='\\n' 
  FG='\[\e[38;5;' BG='\[\e[48;5;' M='m\]'
  OK=$RE$FG${PP[0]:-32}$M"\\xe2\\x9c\\x85"$RE$NL
  ER='\[\e[$(($COLUMNS-5))G\]'$FG${PP[2]:-7}$M$(printf %3d\  $_R)
  ED=$RE$FG${PP[1]:-196}$M"\\xe2\\x9c\\x95"$RE$NL
  OF='\[\e[1A\]\[\e[$(($COLUMNS-1))G\]' DT='\D{%Y-%m-%dT%H:%M:%S%z}' 
  AL="\\xee\\x82\\xb2" AR="\\xee\\x82\\xb0" DO='\[\e[$(($COLUMNS-27))G\]'
  DE=$DO$FG${PP[3]:-238}$M'E: '$DT$RE$NL
  DS=$DO$FG${PP[3]:-238}$M'S: '$DT$RE$NL
  [[ $_R -eq 0 ]] && RL=$OF$OK || RL=$OF$ER$ED
  [[ $UID -eq 0 ]] && { UB="${PP[11]:-196}"; UF="${PP[10]:-255}"; } ||
      { UB="${PP[5]:-60}"; UF="${PP[4]:-255}"; }
  UL=$BG$UB$M$FG$UF$M' $USER '$FG$UB$M
  HL=$BG${PP[7]:-66}$M$AR$FG${PP[6]:-232}$M' $HOSTNAME '$FG${PP[7]:-66}$M
  PL=$BG${PP[9]:-208}$M$AR$FG${PP[8]:-232}$M$BO' $CWD '$RE$FG${PP[9]:-208}$M
  CWD=`pwd` USER=`whoami` HOSTNAME=`hostname`
  [[ ${#CWD} -ge ${#HOME} ]] && [[ $HOME == ${CWD:0:${#HOME}} ]] &&
    [[ ${#HOME} -gt 1 ]] && CWD=\~${CWD:${#HOME}}
  [[ -z $COLUMNS ]] && PS1=$UL$HL$PL$AR$RE\  && PS0= && return
  THIRD=$(echo "$COLUMNS/3" | bc) DL="\\xe2\\x80\\xa6"
  PS2=$(echo -e $FG$UB$M$INV$AL$RE\ )
  [[ $(echo " $USER  $HOSTNAME  $CWD  " | wc -c) -gt $THIRD ]] &&
    HL='' && [[ $(echo " $USER  $CWD  " | wc -c) -gt $THIRD ]] &&
    UL=$FG$UB$M && [[ $(echo "  $CWD  " | wc -c) -gt $THIRD ]] &&
    CWD=$(echo $CWD | perl -pe 's/([^\/]{2})[^\/]{2,9}[\/]/\1'$DL'\//g') &&
    PS2=$(echo -e $FG${PP[9]:-208}$M$INV$AL$RE)
  PS1=$(echo -e $RL$DE$UL$HL$PL$AR$RE\ )
  PS0=$(echo -e $DS$RE )  
  export CWD USER HOSTNAME
}

Выглядит немного люто. Цветовая палитра читается из массива ${PROMPT_PALETTE}.
Цвета перечислены в следующем порядке:

  1. цвет успеха,
  2. цвет провала,
  3. цвет возвращаемого предыдущей командой значения,
  4. цвет временных меток,
  5. цвет шрифта имени пользователя,
  6. цвет фона имени пользователя,
  7. цвет шрифта имени хоста,
  8. цвет фона имени хоста,
  9. цвет шрифта текущей директории,
  10. цвет фона текущей директории,
  11. цвет шрифта имени пользователя root,
  12. цвет фона имени пользователя root,

Коды цветов можно найти в википедии.

Коды символов можно найти тут:

Еще отмечу хороший ресурс по BASH: wiki.bash-hackers.org

→ Ссылка