プラグインなしでbashプロンプトをカスタマイズする

プラグインなしでbashプロンプトをカスタマイズする

私はもっ​​ときれいに見えるようにbashプロンプトをカスタマイズしています。私がしたことは次のとおりです(〜/ .bashrcファイル、Ubuntu 20.04)。

# Customizing prompt
t1_bg="\[$(tput setab 31)\]"
t1_fg="\[$(tput setaf 31)\]"
t2_bg="\[$(tput setab 69)\]"
t2_fg="\[$(tput setaf 69)\]"
RESET="\[$(tput sgr0)\]"

triangle_1=$(echo -e "${t1_fg}${t2_bg}\uE0B0${RESET}")
triangle_2=$(echo -e "${t2_fg}\uE0B0")

PS1="${t1_bg} \u${RESET}${triangle_1}${t2_bg} \w ${RESET}${triangle_2}${RESET} "

ここに画像の説明を入力してください。

図からわかるように、三角形はややずれており、テキストは垂直に中央に位置していません。また、プロンプトと出力の間にさらに多くの間隔があったらと思います。これらの問題を解決する方法はありますか?

最後に、ウィンドウのタイトルバーに現在のディレクトリが表示されないのはなぜですか? PS1変数のみを修正しました。

ベストアンサー1

frabjousがコメントで述べたように、三角形の外観はフォントによって異なります。私はhack-ttfフォントをインストールしました(提案どおり)合成シェル) 問題を解決しました。インストール(少なくともUbuntuでは)は次の方法で実行できます。

sudo apt install fonts-hack-ttf

タイトルバーを修正するために、.bashrcの末尾に以下を追加しました。

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

以前bashrcでも同じコードが見つかった場合、これが問題をどのように解決するのか理解できません。通常、bashrcに追加された最終コードは次のとおりです。

# Customizing prompt
t1_bg="\[$(tput setab 31)\]"
t1_fg="\[$(tput setaf 31)\]"
t2_bg="\[$(tput setab 69)\]"
t2_fg="\[$(tput setaf 69)\]"
RESET="\[$(tput sgr0)\]"

triangle_1=$(echo -e "${t1_fg}${t2_bg}\uE0B0${RESET}")
triangle_2=$(echo -e "${t2_fg}\uE0B0")

case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac

おすすめ記事