Настройка xfce4-terminal
Cвежий xfce4-terminal v0.8.9.1 на аналоге Ubuntu 20.04. - LinuxLite 5.2
~$ echo $SHELL
/bin/bash
после какой-то команды отобразило:

Вопросы:
- Что означает "1" и "130" на верхней картинке? ( у меня нет директорий с такими названиями) 130 - это какой-то номер предыдущей команды history? как-то связано с pipe предыдущей команды? а "1" ?
- Как сделать чтобы подобные числа не отображались, оставить только привычное отображение вывода, но не отключая нового графического отображения ?
при этом:
в настройках конфига терминала '/ 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 шт):
Вы можете выключить Powerline если не пользуетесь его функционалом. Чтобы сохранить внешний вид PROMPT, вам надо добавить в .bashrc следующий скрипт. Весь функционал работает "из коробки" (без настроек). Вы можете поменять что-то, что-то вырезать, что-то добавить. Свой PROMPT я составлял по этой статье: Bash/Prompt customization.
#
# 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}.
Цвета перечислены в следующем порядке:
- цвет успеха,
- цвет провала,
- цвет возвращаемого предыдущей командой значения,
- цвет временных меток,
- цвет шрифта имени пользователя,
- цвет фона имени пользователя,
- цвет шрифта имени хоста,
- цвет фона имени хоста,
- цвет шрифта текущей директории,
- цвет фона текущей директории,
- цвет шрифта имени пользователя root,
- цвет фона имени пользователя root,
Коды цветов можно найти в википедии.
Коды символов можно найти тут:
- стрелочки,
- технические символы,
- рисование окон и таблиц,
- блочные элементы,
- геометрические фигуры,
- всякое разное.
Еще отмечу хороший ресурс по BASH: wiki.bash-hackers.org

