initial commit
This commit is contained in:
parent
aaf6b392c3
commit
f3d4eb99b7
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
*.bak
|
||||
*.backup
|
||||
*.gho
|
||||
*.ori
|
||||
*.orig
|
||||
*.tmp
|
||||
*.swp
|
71
README.md
71
README.md
@ -0,0 +1,71 @@
|
||||
## Bash git prompt for Ubuntu desktop 24.04
|
||||
|
||||
This is a bash git prompt with 5 themes that displays usefull information about the current git repository.
|
||||
|
||||
### Prompt Structure.
|
||||
The default "Out Of The Box" theme appearance of the prompt looks like this.
|
||||
|
||||
```plaintext
|
||||
<branch><git status><working directory>
|
||||
```
|
||||
|
||||
### And it looks like this
|
||||
<p align="left" width="100%">
|
||||
<img src="https://git.x-files.dk/assets/bgp-theme-default.png" alt="default theme"/>
|
||||
</p>
|
||||
|
||||
### To display the fancy symbols DejaVuSansMono Nerd Font Mono needs to be present.
|
||||
|
||||
<p align="left" width="100%">
|
||||
<img src="https://git.x-files.dk/assets/bgp-extended-symbols.png" alt="extended symbols"/>
|
||||
</p>
|
||||
|
||||
### Install via git clone
|
||||
```
|
||||
git clone https://git.x-files.dk/ubuntu-desktop/bash-git-prompt.git ~/.bash-git-prompt
|
||||
```
|
||||
|
||||
### Install the required fonts used by the git-bash-prompt
|
||||
```bash
|
||||
cd ~/.bash-git-prompt
|
||||
./install-fonts.sh
|
||||
```
|
||||
|
||||
### Getting everything up and running.
|
||||
|
||||
**Important:** Remove all other git prompts you have in your ~/.bashrc file. Then add the following to your ~/.bashrc file.
|
||||
```bash
|
||||
# Git Prompt Start
|
||||
if [ -f "$HOME/.bash-git-prompt/bash-git-prompt" ]; then
|
||||
export GIT_PROMPT_THEME=1
|
||||
source "$HOME/.bash-git-prompt/bash-git-prompt"
|
||||
fi
|
||||
# Git Prompt Stop
|
||||
```
|
||||
|
||||
### Changing themes
|
||||
This can be done on the fly by simply typing the command "gpchange" followed by a theme number e.g like this:
|
||||
|
||||
```bash
|
||||
gpchange 3
|
||||
```
|
||||
|
||||
### Themes
|
||||
The image is showing the 5 themes with every git status available. I know it's not possible to have a clean and dirty state at the same time, but this is for demo / clarification purpose. The following icons are displayed in this order for demonstraion purpose.
|
||||
|
||||
Branch → Staged → Changed → Untracked → Stashed → Ahead → Behind → No-Remote → Conflict → Dirty → Clean
|
||||
<p align="left" width="100%">
|
||||
<img src="https://git.x-files.dk/assets/bgp-extended-symbols.png" alt="extended symbols"/>
|
||||
</p>
|
||||
|
||||
### Set your terminal to use the DejaVuSansMono Nerd Font Mono as shown below.
|
||||
|
||||
<p align="left" width="100%">
|
||||
<img src="https://git.x-files.dk/assets/bgp-terminal.png" alt="Terminal font settings"/>
|
||||
</p>
|
||||
|
||||
### More guides
|
||||
More guides can be found on [\[wiki.x-files.dk\]](https://wiki.nopants.dk)
|
||||
|
||||
### Last tested
|
||||
January 8th 2025 on Ubuntu 24.04.
|
202
bash-git-prompt
Normal file
202
bash-git-prompt
Normal file
@ -0,0 +1,202 @@
|
||||
###############################################################################
|
||||
# First Created: 24062025 Author: Allan Desc: Provides a git prompt on Ubuntu #
|
||||
###############################################################################
|
||||
|
||||
# Default to theme 1 if not set
|
||||
GIT_PROMPT_THEME="${GIT_PROMPT_THEME:-1}"
|
||||
|
||||
# Define all 6 themes
|
||||
set_git_prompt_theme_icons() {
|
||||
case "$GIT_PROMPT_THEME" in
|
||||
2|3)
|
||||
BRANCH_ICON=" "
|
||||
STAGED_ICON=""
|
||||
CONFLICT_ICON="✘"
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON=""
|
||||
STASHED_ICON=""
|
||||
AHEAD_ICON=""
|
||||
BEHIND_ICON=""
|
||||
NO_REMOTE_ICON=""
|
||||
CLEAN_ICON="✔"
|
||||
DIRTY_ICON="✘"
|
||||
;;
|
||||
4)
|
||||
BRANCH_ICON="⎇ "
|
||||
STAGED_ICON="o"
|
||||
CONFLICT_ICON="!"
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON="…"
|
||||
STASHED_ICON="☰"
|
||||
AHEAD_ICON="⇡"
|
||||
BEHIND_ICON="⇣"
|
||||
NO_REMOTE_ICON="-"
|
||||
CLEAN_ICON="✓"
|
||||
DIRTY_ICON="✗"
|
||||
;;
|
||||
5)
|
||||
BRANCH_ICON="::"
|
||||
STAGED_ICON="+"
|
||||
CONFLICT_ICON="x"
|
||||
CHANGED_ICON="*"
|
||||
UNTRACKED_ICON="?"
|
||||
STASHED_ICON="s"
|
||||
AHEAD_ICON="a"
|
||||
BEHIND_ICON="b"
|
||||
NO_REMOTE_ICON="no"
|
||||
CLEAN_ICON="ok"
|
||||
DIRTY_ICON="!"
|
||||
;;
|
||||
*)
|
||||
BRANCH_ICON=" "
|
||||
STAGED_ICON=""
|
||||
CONFLICT_ICON="✘"
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON=""
|
||||
STASHED_ICON=""
|
||||
AHEAD_ICON=""
|
||||
BEHIND_ICON=""
|
||||
NO_REMOTE_ICON=""
|
||||
CLEAN_ICON="✔"
|
||||
DIRTY_ICON="✘"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Initialize icons
|
||||
set_git_prompt_theme_icons
|
||||
|
||||
# Git prompt logic
|
||||
git_prompt_info() {
|
||||
git rev-parse --is-inside-work-tree &>/dev/null || return
|
||||
|
||||
local branch
|
||||
branch=$(git symbolic-ref --short HEAD 2>/dev/null || echo "(detached)")
|
||||
|
||||
local status
|
||||
status=$(git status --porcelain=2 --branch 2>/dev/null) || return
|
||||
|
||||
local staged conflicts changed untracked stashed is_clean has_remote
|
||||
staged=$(grep -cE '^1 [ADMRT]' <<<"$status")
|
||||
conflicts=$(grep -cE '^u ' <<<"$status")
|
||||
changed=$(grep -cE '^1 .[MD]' <<<"$status")
|
||||
untracked=$(grep -cE '^\? ' <<<"$status")
|
||||
stashed=$(git stash list 2>/dev/null | wc -l | tr -d ' ')
|
||||
|
||||
local upstream
|
||||
upstream=$(git rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>/dev/null)
|
||||
if [[ -n "$upstream" ]]; then
|
||||
has_remote=1
|
||||
git fetch --quiet & disown
|
||||
else
|
||||
has_remote=0
|
||||
fi
|
||||
|
||||
local ahead=0 behind=0
|
||||
if (( has_remote )); then
|
||||
ahead=$(git rev-list --left-right --count "$upstream...HEAD" 2>/dev/null | awk '{print $2}')
|
||||
behind=$(git rev-list --left-right --count "$upstream...HEAD" 2>/dev/null | awk '{print $1}')
|
||||
fi
|
||||
|
||||
is_clean=0
|
||||
if (( staged == 0 && conflicts == 0 && changed == 0 && untracked == 0 )); then
|
||||
is_clean=1
|
||||
fi
|
||||
|
||||
if [[ "$GIT_PROMPT_THEME" == "2" ]]; then
|
||||
# Powerline Theme 2
|
||||
printf "\[\e[30;44m\]"
|
||||
printf "\[\e[97;44m\] %s%s" "$BRANCH_ICON" "$branch"
|
||||
((staged > 0)) && printf " %s%d" "$STAGED_ICON" "$staged"
|
||||
((conflicts > 0)) && printf " %s%d" "$CONFLICT_ICON" "$conflicts"
|
||||
((changed > 0)) && printf " %s%d" "$CHANGED_ICON" "$changed"
|
||||
((untracked > 0)) && printf " %s%d" "$UNTRACKED_ICON" "$untracked"
|
||||
((stashed > 0)) && printf " %s%d" "$STASHED_ICON" "$stashed"
|
||||
((ahead > 0)) && printf " %s%d" "$AHEAD_ICON" "$ahead"
|
||||
((behind > 0)) && printf " %s%d" "$BEHIND_ICON" "$behind"
|
||||
((has_remote == 0)) && printf " %s" "$NO_REMOTE_ICON"
|
||||
if (( is_clean )); then
|
||||
printf " %s" "$CLEAN_ICON"
|
||||
else
|
||||
printf " %s" "$DIRTY_ICON"
|
||||
fi
|
||||
printf "\[\e[34;107m\]"
|
||||
printf "\[\e[30;107m\] \w"
|
||||
printf "\[\e[97;49m\]"
|
||||
printf "\[\e[0m\]"
|
||||
|
||||
elif [[ "$GIT_PROMPT_THEME" == "3" ]]; then
|
||||
# Two-line theme: git info in brackets, directory outside (in gold)
|
||||
printf "\n\[\e[0;37m\]┌──[\e[0m"
|
||||
printf "\e[38;5;117m%s%s\e[0m" "$BRANCH_ICON" "$branch"
|
||||
((staged > 0)) && printf " \e[38;5;196m%s%d\e[0m" "$STAGED_ICON" "$staged"
|
||||
((conflicts > 0)) && printf " \e[38;5;196m%s%d\e[0m" "$CONFLICT_ICON" "$conflicts"
|
||||
((changed > 0)) && printf " \e[38;5;69m%s%d\e[0m" "$CHANGED_ICON" "$changed"
|
||||
((untracked > 0)) && printf " \e[38;5;41m%s%d\e[0m" "$UNTRACKED_ICON" "$untracked"
|
||||
((stashed > 0)) && printf " \e[38;5;226m%s%d\e[0m" "$STASHED_ICON" "$stashed"
|
||||
((ahead > 0)) && printf " \e[0;37m%s%d\e[0m" "$AHEAD_ICON" "$ahead"
|
||||
((behind > 0)) && printf " \e[0;37m%s%d\e[0m" "$BEHIND_ICON" "$behind"
|
||||
((has_remote == 0)) && printf " \e[38;5;250m%s\e[0m" "$NO_REMOTE_ICON"
|
||||
if (( is_clean )); then
|
||||
printf " \e[0;32m%s\e[0m" "$CLEAN_ICON"
|
||||
else
|
||||
printf " \e[38;5;196m%s\e[0m" "$DIRTY_ICON"
|
||||
fi
|
||||
printf "\e[0;37m]\e[0m"
|
||||
printf " \[\e[38;5;178m\]\w\[\e[0m\]"
|
||||
printf "\n\[\e[0;37m\]└──\[\e[0m\]"
|
||||
|
||||
else
|
||||
# Default bracket theme
|
||||
printf "\e[0;37m[\e[0m"
|
||||
printf "\e[38;5;117m%s%s\e[0m" "$BRANCH_ICON" "$branch"
|
||||
((staged > 0)) && printf " \e[38;5;196m%s%d\e[0m" "$STAGED_ICON" "$staged"
|
||||
((conflicts > 0)) && printf " \e[38;5;196m%s%d\e[0m" "$CONFLICT_ICON" "$conflicts"
|
||||
((changed > 0)) && printf " \e[38;5;69m%s%d\e[0m" "$CHANGED_ICON" "$changed"
|
||||
((untracked > 0)) && printf " \e[38;5;41m%s%d\e[0m" "$UNTRACKED_ICON" "$untracked"
|
||||
((stashed > 0)) && printf " \e[38;5;226m%s%d\e[0m" "$STASHED_ICON" "$stashed"
|
||||
((ahead > 0)) && printf " \e[0;37m%s%d\e[0m" "$AHEAD_ICON" "$ahead"
|
||||
((behind > 0)) && printf " \e[0;37m%s%d\e[0m" "$BEHIND_ICON" "$behind"
|
||||
((has_remote == 0)) && printf " \e[38;5;250m%s\e[0m" "$NO_REMOTE_ICON"
|
||||
if (( is_clean )); then
|
||||
printf " \e[0;32m%s\e[0m" "$CLEAN_ICON"
|
||||
else
|
||||
printf " \e[38;5;196m%s\e[0m" "$DIRTY_ICON"
|
||||
fi
|
||||
printf "\e[0;37m]\e[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
# Auto-updating prompt
|
||||
update_git_prompt() {
|
||||
local PROMPT_CHAR='$'
|
||||
[[ $EUID -eq 0 ]] && PROMPT_CHAR='#'
|
||||
|
||||
GIT_PS1="$(git_prompt_info)"
|
||||
if [[ -n "$GIT_PS1" ]]; then
|
||||
if [[ "$GIT_PROMPT_THEME" == "3" ]]; then
|
||||
PS1="${GIT_PS1} ${PROMPT_CHAR} "
|
||||
elif [[ "$GIT_PROMPT_THEME" == "2" ]]; then
|
||||
PS1="${GIT_PS1}\[\e[0m\] ${PROMPT_CHAR} "
|
||||
else
|
||||
PS1='\u@\h \['"$GIT_PS1"'\] \[\e[38;5;178m\]\w\[\e[0m\] '"${PROMPT_CHAR} "
|
||||
fi
|
||||
else
|
||||
PS1='\u@\h:\[\e[38;5;220m\]\w\[\e[0m\] '"${PROMPT_CHAR} "
|
||||
fi
|
||||
}
|
||||
|
||||
PROMPT_COMMAND=update_git_prompt
|
||||
|
||||
# Theme switch command
|
||||
gpchange() {
|
||||
local theme="${1:-}"
|
||||
if [[ "$theme" =~ ^[1-5]$ ]]; then
|
||||
export GIT_PROMPT_THEME="$theme"
|
||||
set_git_prompt_theme_icons
|
||||
update_git_prompt
|
||||
echo "Switched to Git prompt theme $theme"
|
||||
else
|
||||
echo "Usage: gpchange <1-5>"
|
||||
fi
|
||||
}
|
BIN
fonts/DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf
Normal file
BIN
fonts/DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf
Normal file
Binary file not shown.
114
fonts/DejaVu-Sans-Mono-Nerd-Font-Symbols.txt
Normal file
114
fonts/DejaVu-Sans-Mono-Nerd-Font-Symbols.txt
Normal file
@ -0,0 +1,114 @@
|
||||
###########################################################################################################
|
||||
# First Created: 14012025 Author: Allan #
|
||||
# For your convenience this file displays all symbols for DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf #
|
||||
# For the symbols to render DejaVu-Sans-Mono-Nerd-Font-Complete-Mono need to be installed on your systenm #
|
||||
###########################################################################################################
|
||||
▲ △ ▴ ▵ ▶ ▷ ▸ ▹ ► ▻ ▼ ▽ ▾ ▿ ◀ ◁ ◂ ◃ ◄ ◅ ◆ ◇ ◈ ◉ ◊ ○ ◌ ◍ ◎ ● ◐ ◑ ◒ ◓ ◔ ◕ ◖ ◗ ◘ ◙
|
||||
◚ ◛ ◜ ◝ ◞ ◟ ◠ ◡ ◢ ◣ ◤ ◥ ◦ ◧ ◨ ◩ ◪ ◫ ◬ ◭ ◮ ◯ ◰ ◱ ◲ ◳ ◴ ◵ ◶ ◷ ◸ ◹ ◺ ◻ ◼ ◽ ◾ ◿ ☀ ☁
|
||||
☂ ☃ ☄ ★ ☆ ☇ ☈ ☉ ☊ ☋ ☌ ☍ ☎ ☏ ☐ ☑ ☒ ☓ ☔ ☕ ☖ ☗ ☘ ☙ ☚ ☛ ☜ ☝ ☞ ☟ ☠ ☡ ☢ ☣ ☤ ☥ ☦ ☧ ☨
|
||||
☩ ☪ ☫ ☬ ☭ ☮ ☯ ☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷ ☸ ☹ ☺ ☻ ☼ ☽ ☾ ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐
|
||||
♑ ♒ ♓ ♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟ ♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧ ♨ ♩ ♪ ♫ ♬ ♭ ♮ ♯ ♰ ♱ ♲ ♳ ♴ ♵ ♶ ♷ ♸
|
||||
♹ ♺ ♻ ♼ ♽ ♾ ♿ ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ⚆ ⚇ ⚈ ⚉ ⚊ ⚋ ⚐ ⚑ ⚒ ⚓ ⚔ ⚕ ⚖ ⚗ ⚘ ⚙ ⚚ ⚛ ⚜ ⚠ ⚡ ⚰ ⚱ ✁ ✂ ✃
|
||||
✄ ✆ ✇ ✈ ✉ ✌ ✍ ✎ ✏ ✐ ✑ ✒ ✓ ✔ ✕ ✖ ✗ ✘ ✙ ✚ ✛ ✜ ✝ ✞ ✟ ✠ ✡ ✢ ✣ ✤ ✥ ✦ ✧ ✩ ✪ ✫ ✬ ✭ ✮ ✯
|
||||
✰ ✱ ✲ ✳ ✴ ✵ ✶ ✷ ✸ ✹ ✺ ✻ ✼ ✽ ✾ ✿ ❀ ❁ ❂ ❃ ❄ ❅ ❆ ❇ ❈ ❉ ❊ ❋ ❍ ❏ ❐ ❑ ❒ ❖ ❘ ❙ ❚ ❛ ❜ ❝
|
||||
❞ ❡ ❢ ❣ ❤ ❥ ❦ ❧ ❨ ❩ ❪ ❫ ❬ ❭ ❮ ❯ ❰ ❱ ❲ ❳ ❴ ❵ ➔ ➘ ➙ ➚ ➛ ➜ ➝ ➞ ➟ ➠ ➡ ➢ ➣ ➤ ➥ ➦ ➧ ➨
|
||||
➩ ➪ ➫ ➬ ➭ ➮ ➯ ➱ ➲ ➳ ➴ ➵ ➶ ➷ ➸ ➹ ➺ ➻ ➼ ➽ ➾ ⟂ ⟅ ⟆ ⟜ ⟠ ⟦ ⟧ ⟨ ⟩ ⟪ ⟫ ⟵ ⟶ ⟷ ⦇ ⦈ ⦗ ⦘
|
||||
⧫ ⧺ ⧻ ⨀ ⨯ ⩪ ⩫ ⬅ ⬆ ⬇ ⬈ ⬉ ⬊ ⬋ ⬌ ⬍ ⬒ ⬓ ⬔ ⬕ ⬖ ⬗ ⬘ ⬙ ⬚ ⭘ Ɽ Ɑ Ɱ Ɐ Ɒ Ⱶ ⱶ ⱷ ⱹ ⱺ ⱼ ⱽ Ȿ Ɀ
|
||||
⸘ ⸟ ⸢ ⸣ ⸤ ⸥ ⸮ ꜈ ꜉ ꜊ ꜋ ꜌ ꜍ ꜎ ꜏ ꜐ ꜑ ꜒ ꜓ ꜔ ꜕ ꜖ ꜛ ꜜ ꜝ ꜞ ꜟ Ꜣ ꜣ Ꜥ ꜥ Ꜧ ꜧ ꞉ ꞊ Ꞌ ꞌ Ɥ ꞎ Ꞑ
|
||||
ꞑ Ɦ ꟸ ꟹ
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
豈 更 車 賈 滑 串 句 龜 龜 契 金 喇 奈 懶 癩 羅 蘿
|
||||
螺 裸 邏 樂 洛 烙 珞 落 酪 駱 亂 卵 欄 爛 蘭 鸞 嵐 濫 藍 襤 拉 臘 蠟 廊 朗 浪 狼 郎 來 冷 勞 擄 櫓 爐 盧 老 蘆 虜 路 露
|
||||
魯 鷺 碌 祿 綠 菉 錄 鹿 論 壟 弄 籠 聾 牢 磊 賂 雷 壘 屢 樓 淚 漏 累 縷 陋 勒 肋 凜 凌 稜 綾 菱 陵 讀 拏 樂 諾 丹 寧
|
||||
怒 率 異 北 磻 便 復 不 泌 數 索 參 塞 省 葉 說 殺 辰 沈 拾 若 掠 略 亮 兩 凉 梁 糧 良 諒 量 勵 呂 女 廬 旅 濾 礪 閭 驪
|
||||
麗 黎 力 曆 歷 轢 年 憐 戀 撚 漣 煉 璉 秊 練 聯 輦 蓮 連 鍊 列 劣 咽 烈 裂 說 廉 念 捻 殮 簾 獵 令 囹 寧 嶺 怜 玲 瑩 羚
|
||||
聆 鈴 零 靈 領 例 禮 醴 隸 惡 了 僚 寮 尿 料 樂 燎 療 蓼 遼 龍 暈 阮 劉 杻 柳 流 溜 琉 留 硫 紐 類 六 戮 陸 倫 崙 淪 輪
|
||||
律 慄 栗 率 隆 利 吏 履 易 李 梨 泥 理 痢 罹 裏 裡 里 離 匿 溺 吝 燐 璘 藺 隣 鱗 麟 林 淋 臨 立 笠 粒 狀 炙 識 什 茶
|
||||
刺 切 度 拓 糖 宅 洞 暴 輻 行 降 見 廓 兀 嗀 﨎 﨏 塚 﨑 晴 﨓 﨔 凞 猪 益 礼 神 祥 福 靖 精 羽 﨟 蘒 﨡 諸 﨣 﨤 逸 都
|
||||
﨧 﨨 﨩 飯 飼 館 鶴 郞 隷 侮 僧 免 勉 勤 卑 喝 嘆 器 塀 墨 層 屮 悔 慨 憎 懲 敏 既 暑 梅 海 渚 漢 煮 爫 琢 碑 社 祉 祈
|
||||
祐 祖 祝 禍 禎 穀 突 節 練 縉 繁 署 者 臭 艹 艹 著 褐 視 謁 謹 賓 贈 辶 逸 難 響 頻 恵 𤋮 舘 並 况 全 侀 充 冀
|
||||
勇 勺 喝 啕 喙 嗢 塚 墳 奄 奔 婢 嬨 廒 廙 彩 徭 惘 慎 愈 憎 慠 懲 戴 揄 搜 摒 敖 晴 朗 望 杖 歹 殺 流 滛 滋 漢 瀞 煮 瞧
|
||||
爵 犯 猪 瑱 甆 画 瘝 瘟 益 盛 直 睊 着 磌 窱 節 类 絛 練 缾 者 荒 華 蝹 襁 覆 視 調 諸 請 謁 諾 諭 謹 變 贈 輸 遲 醙 鉶
|
||||
陼 難 靖 韛 響 頋 頻 鬒 龜 𢡊 𢡄 𣏕 㮝 䀘 䀹 𥉉 𥳐 𧻓 齃 龎
|
||||
ff fi fl ffi ffl ſt st ﬓ ﬔ
|
||||
ﬕ ﬖ ﬗ יִ ﬞ ײַ ﬠ ﬡ ﬢ ﬣ ﬤ ﬥ ﬦ ﬧ ﬨ ﬩ שׁ שׂ שּׁ שּׂ אַ אָ אּ בּ גּ דּ הּ וּ זּ טּ יּ ךּ כּ לּ
|
||||
מּ נּ סּ ףּ פּ צּ קּ רּ שּ תּ וֹ בֿ כֿ פֿ ﭏ ﭐ ﭑ ﭒ ﭓ ﭔ ﭕ ﭖ ﭗ ﭘ ﭙ ﭚ ﭛ ﭜ ﭝ ﭞ ﭟ ﭠ ﭡ ﭢ ﭣ ﭤ
|
||||
ﭥ ﭦ ﭧ ﭨ ﭩ ﭪ ﭫ ﭬ ﭭ ﭮ ﭯ ﭰ ﭱ ﭲ ﭳ ﭴ ﭵ ﭶ ﭷ ﭸ ﭹ ﭺ ﭻ ﭼ ﭽ ﭾ ﭿ ﮀ ﮁ ﮂ ﮃ ﮄ ﮅ ﮆ ﮇ ﮈ ﮉ ﮊ ﮋ
|
||||
ﮌ ﮍ ﮎ ﮏ ﮐ ﮑ ﮒ ﮓ ﮔ ﮕ ﮖ ﮗ ﮘ ﮙ ﮚ ﮛ ﮜ ﮝ ﮞ ﮟ ﮠ ﮡ ﮢ ﮣ ﮤ ﮥ ﮦ ﮧ ﮨ ﮩ ﮪ ﮫ ﮬ ﮭ ﮮ ﮯ ﮰ ﮱ ﮲ ﮳
|
||||
﮴ ﮵ ﮶ ﮷ ﮸ ﮹ ﮺ ﮻ ﮼ ﮽ ﮾ ﮿ ﯀ ﯁ ﯂ ﯓ ﯔ ﯕ ﯖ ﯗ ﯘ ﯙ ﯚ ﯛ
|
||||
ﯜ ﯝ ﯞ ﯟ ﯠ ﯡ ﯢ ﯣ ﯤ ﯥ ﯦ ﯧ ﯨ ﯩ ﯪ ﯫ ﯬ ﯭ ﯮ ﯯ ﯰ ﯱ ﯲ ﯳ ﯴ ﯵ ﯶ ﯷ ﯸ ﯹ ﯺ ﯻ ﯼ ﯽ ﯾ ﯿ ﰀ ﰁ ﰂ ﰃ
|
||||
ﰄ ﰅ ﰆ ﰇ ﰈ ﰉ ﰊ ﰋ ﰌ ﰍ ﰎ ﰏ ﰐ ﰑ ﰒ ﰓ ﰔ ﰕ ﰖ ﰗ ﰘ ﰙ ﰚ ﰛ ﰜ ﰝ ﰞ ﰟ ﰠ ﰡ ﰢ ﰣ ﰤ ﰥ ﰦ ﰧ ﰨ ﰩ ﰪ
|
||||
ﰫ ﰬ ﰭ ﰮ ﰯ ﰰ ﰱ ﰲ ﰳ ﰴ ﰵ ﰶ ﰷ ﰸ ﰹ ﰺ ﰻ ﰼ ﰽ ﰾ ﰿ ﱀ ﱁ ﱂ ﱃ ﱄ ﱅ ﱆ ﱇ ﱈ ﱉ ﱊ ﱋ ﱌ ﱍ ﱎ ﱏ ﱐ ﱑ ﱒ
|
||||
ﱓ ﱔ ﱕ ﱖ ﱗ ﱘ ﱙ ﱚ ﱛ ﱜ ﱝ ﱞ ﱟ ﱠ ﱡ ﱢ ﱣ ﱤ ﱥ ﱦ ﱧ ﱨ ﱩ ﱪ ﱫ ﱬ ﱭ ﱮ ﱯ ﱰ ﱱ ﱲ ﱳ ﱴ ﱵ ﱶ ﱷ ﱸ ﱹ ﱺ
|
||||
ﱻ ﱼ ﱽ ﱾ ﱿ ﲀ ﲁ ﲂ ﲃ ﲄ ﲅ ﲆ ﲇ ﲈ ﲉ ﲊ ﲋ ﲌ ﲍ ﲎ ﲏ ﲐ ﲑ ﲒ ﲓ ﲔ ﲕ ﲖ ﲗ ﲘ ﲙ ﲚ ﲛ ﲜ ﲝ ﲞ ﲟ ﲠ ﲡ
|
||||
ﲢ ﲣ ﲤ ﲥ ﲦ ﲧ ﲨ ﲩ ﲪ ﲫ ﲬ ﲭ ﲮ ﲯ ﲰ ﲱ ﲲ ﲳ ﲴ ﲵ ﲶ ﲷ ﲸ ﲹ ﲺ ﲻ ﲼ ﲽ ﲾ ﲿ ﳀ ﳁ ﳂ ﳃ ﳄ ﳅ ﳆ ﳇ ﳈ ﳉ
|
||||
ﳊ ﳋ ﳌ ﳍ ﳎ ﳏ ﳐ ﳑ ﳒ ﳓ ﳔ ﳕ ﳖ ﳗ ﳘ ﳙ ﳚ ﳛ ﳜ ﳝ ﳞ ﳟ ﳠ ﳡ ﳢ ﳣ ﳤ ﳥ ﳦ ﳧ ﳨ ﳩ ﳪ ﳫ ﳬ ﳭ ﳮ ﳯ ﳰ ﳱ
|
||||
ﳲ ﳳ ﳴ ﳵ ﳶ ﳷ ﳸ ﳹ ﳺ ﳻ ﳼ ﳽ ﳾ ﳿ ﴀ ﴁ ﴂ ﴃ ﴄ ﴅ ﴆ ﴇ ﴈ ﴉ ﴊ ﴋ ﴌ ﴍ ﴎ ﴏ ﴐ ﴑ ﴒ ﴓ ﴔ ﴕ ﴖ ﴗ ﴘ ﴙ
|
||||
ﴚ ﴛ ﴜ ﴝ ﴞ ﴟ ﴠ ﴡ ﴢ ﴣ ﴤ ﴥ ﴦ ﴧ ﴨ ﴩ ﴪ ﴫ ﴬ ﴭ ﴮ ﴯ ﴰ ﴱ ﴲ ﴳ ﴴ ﴵ ﴶ ﴷ ﴸ ﴹ ﴺ ﴻ ﴼ ﴽ ﴾ ﴿ ﵀
|
||||
﵁ ﵂ ﵃ ﵄ ﵅ ﵆ ﹰ ﹱ ﹲ ﹳ ﹴ ﹶ ﹷ ﹸ ﹹ ﹺ ﹻ ﹼ ﹽ ﹾ ﹿ ﺀ ﺁ ﺂ ﺃ ﺄ ﺅ ﺆ ﺇ ﺈ ﺉ ﺊ ﺋ ﺌ ﺍ ﺎ ﺏ ﺐ ﺑ ﺒ
|
||||
ﺓ ﺔ ﺕ ﺖ ﺗ ﺘ ﺙ ﺚ ﺛ ﺜ ﺝ ﺞ ﺟ ﺠ ﺡ ﺢ ﺣ ﺤ ﺥ ﺦ ﺧ ﺨ ﺩ ﺪ ﺫ ﺬ ﺭ ﺮ ﺯ ﺰ ﺱ ﺲ ﺳ ﺴ ﺵ ﺶ ﺷ ﺸ ﺹ ﺺ
|
||||
ﺻ ﺼ ﺽ ﺾ ﺿ ﻀ ﻁ ﻂ ﻃ ﻄ ﻅ ﻆ ﻇ ﻈ ﻉ ﻊ ﻋ ﻌ ﻍ ﻎ ﻏ ﻐ ﻑ ﻒ ﻓ ﻔ ﻕ ﻖ ﻗ ﻘ ﻙ ﻚ ﻛ ﻜ ﻝ ﻞ ﻟ ﻠ ﻡ ﻢ
|
||||
ﻣ ﻤ ﻥ ﻦ ﻧ ﻨ ﻩ ﻪ ﻫ ﻬ ﻭ ﻮ ﻯ ﻰ ﻱ ﻲ ﻳ ﻴ ﻵ ﻶ ﻷ ﻸ ﻹ ﻺ ﻻ ﻼ
|
BIN
gittheme1.png
Normal file
BIN
gittheme1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
BIN
gittheme2.png
Normal file
BIN
gittheme2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
9
install-fonts.sh
Executable file
9
install-fonts.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
##################################################################################
|
||||
# First Created: 03012025 Author: Allan Desc: Installs fonts for bash-git-prompt #
|
||||
##################################################################################
|
||||
|
||||
mkdir -p $HOME/.local/share/fonts
|
||||
cp $HOME/.bash-git-prompt/fonts/*.ttf $HOME/.local/share/fonts
|
||||
fc-cache -f
|
149
showgitthemes
Executable file
149
showgitthemes
Executable file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
clear
|
||||
echo ""
|
||||
|
||||
branch="branch-name"
|
||||
staged=2
|
||||
conflicts=1
|
||||
changed=3
|
||||
untracked=4
|
||||
stashed=2
|
||||
ahead=1
|
||||
behind=1
|
||||
has_remote=0
|
||||
is_clean=0
|
||||
|
||||
print_theme() {
|
||||
local theme=$1
|
||||
local suppress_newline=$2
|
||||
local suppress_label=$3
|
||||
|
||||
case "$theme" in
|
||||
2|3)
|
||||
BRANCH_ICON=" "
|
||||
STAGED_ICON=""
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON=""
|
||||
STASHED_ICON=""
|
||||
AHEAD_ICON=""
|
||||
BEHIND_ICON=""
|
||||
NO_REMOTE_ICON=""
|
||||
CONFLICT_ICON="✘"
|
||||
DIRTY_ICON="✘"
|
||||
CLEAN_ICON="✔"
|
||||
;;
|
||||
4)
|
||||
BRANCH_ICON="⎇ "
|
||||
STAGED_ICON="o"
|
||||
CONFLICT_ICON="!"
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON="…"
|
||||
STASHED_ICON="☰"
|
||||
AHEAD_ICON="⇡"
|
||||
BEHIND_ICON="⇣"
|
||||
NO_REMOTE_ICON="-"
|
||||
CLEAN_ICON="✓"
|
||||
DIRTY_ICON="✗"
|
||||
;;
|
||||
5)
|
||||
BRANCH_ICON="::"
|
||||
STAGED_ICON="+"
|
||||
CONFLICT_ICON="x"
|
||||
CHANGED_ICON="*"
|
||||
UNTRACKED_ICON="?"
|
||||
STASHED_ICON="s"
|
||||
AHEAD_ICON="a"
|
||||
BEHIND_ICON="b"
|
||||
NO_REMOTE_ICON="no"
|
||||
CLEAN_ICON="ok"
|
||||
DIRTY_ICON="!"
|
||||
;;
|
||||
*)
|
||||
BRANCH_ICON=" "
|
||||
STAGED_ICON=""
|
||||
CONFLICT_ICON="✘"
|
||||
CHANGED_ICON="±"
|
||||
UNTRACKED_ICON=""
|
||||
STASHED_ICON=""
|
||||
AHEAD_ICON=""
|
||||
BEHIND_ICON=""
|
||||
NO_REMOTE_ICON=""
|
||||
CLEAN_ICON="✔"
|
||||
DIRTY_ICON="✘"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$suppress_label" != "true" ]]; then
|
||||
if [[ "$theme" == "1" || "$theme" == "2" || "$theme" == "3" ]]; then
|
||||
echo -e "\e[1mTheme $theme:\e[0m This theme requires DejaVuSansMono Nerd Font Mono font"
|
||||
elif [[ "$theme" == "4" ]]; then
|
||||
echo -e "\e[1mTheme $theme:\e[0m Unicode"
|
||||
elif [[ "$theme" == "5" ]]; then
|
||||
echo -e "\e[1mTheme $theme:\e[0m Terminal Safe"
|
||||
else
|
||||
echo -e "\e[1mTheme $theme:\e[0m"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$theme" == "2" ]]; then
|
||||
printf "\e[30;44m"
|
||||
printf "\e[97;44m %s%s" "$BRANCH_ICON" "$branch"
|
||||
printf " %s%d" "$STAGED_ICON" "$staged"
|
||||
printf " %s%d" "$CHANGED_ICON" "$changed"
|
||||
printf " %s%d" "$UNTRACKED_ICON" "$untracked"
|
||||
printf " %s%d" "$STASHED_ICON" "$stashed"
|
||||
printf " %s%d" "$AHEAD_ICON" "$ahead"
|
||||
printf " %s%d" "$BEHIND_ICON" "$behind"
|
||||
(( has_remote == 0 )) && printf " %s" "$NO_REMOTE_ICON"
|
||||
printf " %s%d" "$CONFLICT_ICON" "$conflicts"
|
||||
printf " %s %s" "$DIRTY_ICON" "$CLEAN_ICON"
|
||||
printf "\e[0m\e[34;107m"
|
||||
printf "\e[30;107m ~/some-directory"
|
||||
printf "\e[97;49m"
|
||||
printf "\e[0m \$\n"
|
||||
|
||||
elif [[ "$theme" == "3" ]]; then
|
||||
printf "\e[0;37m┌──[\e[0m"
|
||||
printf "\e[38;5;117m%s%s\e[0m" "$BRANCH_ICON" "$branch"
|
||||
printf " \e[38;5;196m%s%d" "$STAGED_ICON" "$staged"
|
||||
printf " \e[38;5;69m%s%d" "$CHANGED_ICON" "$changed"
|
||||
printf " \e[38;5;41m%s%d" "$UNTRACKED_ICON" "$untracked"
|
||||
printf " \e[38;5;226m%s%d" "$STASHED_ICON" "$stashed"
|
||||
printf " \e[0;37m%s%d" "$AHEAD_ICON" "$ahead"
|
||||
printf " \e[0;37m%s%d" "$BEHIND_ICON" "$behind"
|
||||
(( has_remote == 0 )) && printf " \e[38;5;250m%s" "$NO_REMOTE_ICON"
|
||||
printf " \e[38;5;196m%s%d" "$CONFLICT_ICON" "$conflicts"
|
||||
printf " \e[38;5;196m%s \e[0;32m%s" "$DIRTY_ICON" "$CLEAN_ICON"
|
||||
printf "\e[0;37m] \e[38;5;178m~/some-directory\e[0m\e[0m\n"
|
||||
printf "\e[0;37m└─\e[0m \$\n"
|
||||
|
||||
else
|
||||
printf "\e[0;37m[\e[0m"
|
||||
printf "\e[38;5;117m%s%s\e[0m" "$BRANCH_ICON" "$branch"
|
||||
printf " \e[38;5;196m%s%d" "$STAGED_ICON" "$staged"
|
||||
printf " \e[38;5;69m%s%d" "$CHANGED_ICON" "$changed"
|
||||
printf " \e[38;5;41m%s%d" "$UNTRACKED_ICON" "$untracked"
|
||||
printf " \e[38;5;226m%s%d" "$STASHED_ICON" "$stashed"
|
||||
printf " \e[0;37m%s%d" "$AHEAD_ICON" "$ahead"
|
||||
printf " \e[0;37m%s%d" "$BEHIND_ICON" "$behind"
|
||||
(( has_remote == 0 )) && printf " \e[38;5;250m%s" "$NO_REMOTE_ICON"
|
||||
printf " \e[38;5;196m%s%d" "$CONFLICT_ICON" "$conflicts"
|
||||
printf " \e[38;5;196m%s \e[0;32m%s" "$DIRTY_ICON" "$CLEAN_ICON"
|
||||
printf "\e[0;37m]\e[0m"
|
||||
printf " \e[38;5;178m~/some-directory\e[0m \$\n"
|
||||
fi
|
||||
|
||||
[[ "$suppress_newline" != "true" ]] && echo
|
||||
}
|
||||
|
||||
# Print all 5 themes
|
||||
for t in {1..5}; do
|
||||
print_theme "$t"
|
||||
done
|
||||
|
||||
# Two newlines
|
||||
echo -e "\n"
|
||||
|
||||
# Reprint theme 1 with no label and no trailing newline
|
||||
# print_theme 1 true true
|
Loading…
x
Reference in New Issue
Block a user