网上搜索一下 oh-my-zsh 这个插件 神奇的东东
😁
网上搜索一下 oh-my-zsh 这个插件 神奇的东东
😁
建议使用:https://starship.rs/
网上搜索一下 oh-my-zsh 这个插件 神奇的东东
😁
最开始我也是用manjaro,直接用的是oh-my-zsh,但是manjaro总是出问题,一更新就出各种依赖问题,后来我又转到deepin了,QQ、微信啥的都蛮适配的。但是deepin安装oh-my-zsh贼慢,不挂梯子几乎不行,就不想弄了。
现在我搞清楚PS1怎么修改了了,已解决问题,谢谢。
建议使用:https://starship.rs/
看了一下,感觉不错,不知道性能怎么样,我先试试。
网上搜索一下 oh-my-zsh 这个插件 神奇的东东
😁
还有Oh my posh
在 PS1 中使用 24 位色,需要 Hack 字体
# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
pre_prompt()
{
local RETCODE=$?
local Limee="0;255;0" #00FF00
local OrangeRed="255;69;0" #FF4500
local SkyBlue="135;206;235" #87CEEB
local White="255;255;255" #FFFFFF
local Black="0;0;0" #000000
local Cyan="0;255;255" #00FFFF
local BurlyWood="222;184;135" #DEB887
local DarkMagenta="139;0;139" #8B008B
local Indigo="75;0;130" #4B0082
if [ "$RETCODE" -eq 0 ]; then
PS1="\[\e[1;38;2;${Indigo};48;2;${Limee}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${Limee};48;2;${SkyBlue}m\]"
else
PS1="\[\e[1;38;2;${Indigo};48;2;${OrangeRed}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${OrangeRed};48;2;${SkyBlue}m\]"
fi
PS1+="\[\e[1;38;2;${Black};48;2;${SkyBlue}m\] ⌚ \t \[\e[0;38;2;${SkyBlue};48;2;${BurlyWood}m\]"
if [ "$RETCODE" -eq 0 ]; then
PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${DarkMagenta}m\]"
PS1+="\[\e[1;38;2;${Limee};48;2;${DarkMagenta}m\] \$ \[\e[0;38;2;${DarkMagenta};48;2;${Limee}m\]"
PS1+="\[\e[0;38;2;${Limee}m\]\[\e[0m\] "
else
PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${Indigo}m\]"
PS1+="\[\e[1;38;2;${OrangeRed};48;2;${Indigo}m\] \$ \[\e[0;38;2;${Indigo};48;2;${OrangeRed}m\]"
PS1+="\[\e[0;38;2;${OrangeRed}m\]\[\e[0m\] "
fi
}
if [ "$TERM" != "linux" ]; then
PROMPT_COMMAND=pre_prompt
fi
上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

定制随机颜色的 bash 主提示符
# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
# 前景色为黑色,背景色为随机颜色
pre_prompt()
{
local RETCODE=$?
local FgColor="0;0;0"
alias orh1='openssl rand -hex 1'
local BgColor1="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor2="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor3="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor4="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor5="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
PS1="\[\e[1;38;2;${FgColor};48;2;${BgColor1}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${BgColor1};48;2;${BgColor2}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor2}m\] ⌚ \t "
PS1+="\[\e[0;38;2;${BgColor2};48;2;${BgColor3}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor3}m\] @\h: \w "
PS1+="\[\e[0;38;2;${BgColor3};48;2;${BgColor4}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor4}m\] \$ "
PS1+="\[\e[0;38;2;${BgColor4};48;2;${BgColor5}m\]"
PS1+="\[\e[0;38;2;${BgColor5}m\]\[\e[0m\]\[\e[K\] "
unalias orh1
}
if [ "$TERM" != "linux" ]; then
PROMPT_COMMAND=pre_prompt
fi
上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

在终端标题上显示实时时钟
# shellcheck shell=bash disable=SC2239
# 文件名称:terminal-clock-title.conf
# 实现功能:在终端标题上显示实时时钟。
# 使用方法: . [path]/terminal-clock-title.conf
clocktitle()
while((1));do
local clock=$(date +'%H:%M:%S')
echo -ne "\e]2;$clock\a"
sleep 1
done
clocktitle &
clocktitlePID=$!
trap "kill -9 $clocktitlePID" EXIT
将上述代码写入 ~/.config/terminal-clock-title.conf 文件(其它路径也可以),然后在终端执行:
. ~/.config/terminal-clock-title.conf
在 PS1 中使用 24 位色,需要 Hack 字体
# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
pre_prompt()
{
local RETCODE=$?
local Limee="0;255;0" #00FF00
local OrangeRed="255;69;0" #FF4500
local SkyBlue="135;206;235" #87CEEB
local White="255;255;255" #FFFFFF
local Black="0;0;0" #000000
local Cyan="0;255;255" #00FFFF
local BurlyWood="222;184;135" #DEB887
local DarkMagenta="139;0;139" #8B008B
local Indigo="75;0;130" #4B0082
if [ "$RETCODE" -eq 0 ]; then
PS1="\[\e[1;38;2;${Indigo};48;2;${Limee}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${Limee};48;2;${SkyBlue}m\]"
else
PS1="\[\e[1;38;2;${Indigo};48;2;${OrangeRed}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${OrangeRed};48;2;${SkyBlue}m\]"
fi
PS1+="\[\e[1;38;2;${Black};48;2;${SkyBlue}m\] ⌚ \t \[\e[0;38;2;${SkyBlue};48;2;${BurlyWood}m\]"
if [ "$RETCODE" -eq 0 ]; then
PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${DarkMagenta}m\]"
PS1+="\[\e[1;38;2;${Limee};48;2;${DarkMagenta}m\] \$ \[\e[0;38;2;${DarkMagenta};48;2;${Limee}m\]"
PS1+="\[\e[0;38;2;${Limee}m\]\[\e[0m\] "
else
PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${Indigo}m\]"
PS1+="\[\e[1;38;2;${OrangeRed};48;2;${Indigo}m\] \$ \[\e[0;38;2;${Indigo};48;2;${OrangeRed}m\]"
PS1+="\[\e[0;38;2;${OrangeRed}m\]\[\e[0m\] "
fi
}
if [ "$TERM" != "linux" ]; then
PROMPT_COMMAND=pre_prompt
fi
上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

定制随机颜色的 bash 主提示符
# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
# 前景色为黑色,背景色为随机颜色
pre_prompt()
{
local RETCODE=$?
local FgColor="0;0;0"
alias orh1='openssl rand -hex 1'
local BgColor1="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor2="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor3="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor4="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
local BgColor5="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
PS1="\[\e[1;38;2;${FgColor};48;2;${BgColor1}m\] ⚑ $RETCODE "
PS1+="\[\e[0;38;2;${BgColor1};48;2;${BgColor2}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor2}m\] ⌚ \t "
PS1+="\[\e[0;38;2;${BgColor2};48;2;${BgColor3}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor3}m\] @\h: \w "
PS1+="\[\e[0;38;2;${BgColor3};48;2;${BgColor4}m\]"
PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor4}m\] \$ "
PS1+="\[\e[0;38;2;${BgColor4};48;2;${BgColor5}m\]"
PS1+="\[\e[0;38;2;${BgColor5}m\]\[\e[0m\]\[\e[K\] "
unalias orh1
}
if [ "$TERM" != "linux" ]; then
PROMPT_COMMAND=pre_prompt
fi
上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

在终端标题上显示实时时钟
# shellcheck shell=bash disable=SC2239
# 文件名称:terminal-clock-title.conf
# 实现功能:在终端标题上显示实时时钟。
# 使用方法: . [path]/terminal-clock-title.conf
clocktitle()
while((1));do
local clock=$(date +'%H:%M:%S')
echo -ne "\e]2;$clock\a"
sleep 1
done
clocktitle &
clocktitlePID=$!
trap "kill -9 $clocktitlePID" EXIT
将上述代码写入 ~/.config/terminal-clock-title.conf 文件(其它路径也可以),然后在终端执行:
. ~/.config/terminal-clock-title.conf
你这个做的确实蛮不错的,但是我只想稍微调整一下格式。你这个太花了,换做以前我折腾manjaro时我可能还会去折腾一下,现在我确实没这个心力了,只想简单一点。
对,我之前的问题已经解决了,谢谢。
Popular Events
More
第二行的 $ 顶格,我这里截图错了