commit 6ca48da6d4281d88873eff87ec38b13ca9187ddb Author: allan Date: Thu Oct 23 15:31:14 2025 +0200 initial commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3eaaa81 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Allan Christensen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..71e9c06 --- /dev/null +++ b/README.md @@ -0,0 +1,174 @@ +# Bash Git Prompt for Ubuntu 24.04 +[![OS](https://img.shields.io/badge/ubuntu-24.04-E95420)](#) +[![Shell](https://img.shields.io/badge/shell-bash-121011)](#) +[![Feature](https://img.shields.io/badge/feature-git_prompt-0078D7)](#) +[![License](https://img.shields.io/badge/License-MIT-green)](./LICENSE) + +A customizable Bash prompt with **five clean themes**, showing live Git repository status — branches, staged files, changes, stashes, and more. + +Although designed for Ubuntu 24.04, it also runs smoothly on Fedora and most modern Linux distributions. + +--- + +### Features + +- Displays the current **Git branch** and live repository status +- Works across **five switchable themes** (changeable in real time) +- Shows **staged, changed, untracked, stashed, and remote** indicators +- Detects **clean vs. dirty** repository state instantly +- Compatible with Ubuntu, Fedora, and most POSIX-compatible shells +- Includes a **Nerd Font installer** for correct symbol rendering + +--- + +### Prerequisites + +Requires **DejaVuSansMono Nerd Font** for proper symbol display. + +

+Extended Symbols +

+ +--- + +### Prompt Structure + +The default prompt layout is: + +```plaintext + +``` + +Example output: + +

+Default Theme +

+ +--- + +### Installation + +Clone the repository: + +``` +git clone https://git.x-files.dk/bash/bash-git-prompt.git ~/.bash-git-prompt +``` + +Install fonts: + +``` +cd ~/.bash-git-prompt +./install-fonts.sh +``` + +Add the following to your .bashrc file: + +``` +# 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 +``` + +Reload your environment: + +``` +source ~/.bashrc +``` + +--- + +### Switching Themes + +Change themes dynamically with: + +``` +gpchange +``` + +Example: +``` +gpchange 3 +``` + +This updates the theme instantly for your current session. + +--- + +### Available Themes + +Preview of all five themes (clean and dirty shown together for comparison): + +Branch → Staged → Changed → Untracked → Stashed → Ahead → Behind → No-Remote → Conflict → Dirty → Clean + +

+All Themes +

+ +--- + +### Terminal Font Setup + +Set your terminal to use: +``` +DejaVuSansMono Nerd Font Mono +``` + +

+Terminal Font Settings +

+ +--- + +### Troubleshooting + +**Symbols not showing correctly:** +Make sure your terminal uses *DejaVuSansMono Nerd Font Mono*. +Restart your terminal after installing fonts. +Log out and back in after installing fonts. + +**Prompt not loading:** +Verify these lines exist and are correct in `~/.bashrc`: +``` +# 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 +``` + +--- + +### FAQ + +**Q:** Does this replace my default prompt entirely? +**A:** No — the Git-aware segment only appears when your current directory is inside a **Git repository**. +Outside Git repos, your prompt remains normal (aside from minimal styling applied by the script). +To modify the non-Git prompt, edit this line in the script: +``` +PS1='\u@\h:\[\e[38;5;178m\]\w\[\e[0m\] '"${PROMPT_CHAR} " +``` + +**Q:** Can I create my own theme? +**A:** Absolutely. Each theme is defined in the script under `set_git_prompt_theme_icons()`. +You can modify or extend it, then set your new theme using `export GIT_PROMPT_THEME=`. + +**Q:** Does it slow down Git-heavy directories? +**A:** Negligibly. The script uses optimized Git calls and caches status checks for performance. + +--- + +### More Information + +More guides and documentation can be found on [wiki.x-files.dk](https://wiki.x-files.dk) + +--- + +### License +Licensed under the [MIT License](./LICENSE). + +--- diff --git a/bash-git-prompt b/bash-git-prompt new file mode 100644 index 0000000..b066634 --- /dev/null +++ b/bash-git-prompt @@ -0,0 +1,200 @@ +# Author : Allan Christensen +# First Created : 24062025 (DD-MM-YYYY) +# Description : Provides a bash git prompt for Ubuntu +# License : MIT License (see LICENSE file for details) + +# Default to theme 1 if not set +GIT_PROMPT_THEME="${GIT_PROMPT_THEME:-1}" + +# Define theme icons +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 +} +set_git_prompt_theme_icons + +# Caching mechanism +GIT_CACHE_FILE="/tmp/git_prompt_cache.$$" +GIT_CACHE_EXPIRY=2 # seconds + +actual_git_prompt_info_logic() { + 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_OPTIONAL_LOCKS=0 git status --porcelain --branch 2>/dev/null) || return + + local staged conflicts changed untracked stashed is_clean has_remote + staged=$(grep -cE '^[AMDR] ' <<<"$status") + conflicts=$(grep -cE '^UU ' <<<"$status") + changed=$(grep -cE '^.[MD] ' <<<"$status") + untracked=$(grep -cE '^\?\? ' <<<"$status") + stashed=$(GIT_OPTIONAL_LOCKS=0 git stash list 2>/dev/null | grep -c .) + + local upstream + upstream=$(git rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>/dev/null) + [[ -n "$upstream" ]] && has_remote=1 || has_remote=0 + + local ahead=0 behind=0 + if (( has_remote )); then + local counts + counts=$(git rev-list --left-right --count "${upstream}...HEAD" 2>/dev/null | tr -s '[:space:]' ' ') + read -r behind ahead <<< "$counts" + ahead=${ahead:-0} + behind=${behind:-0} + fi + + is_clean=0 + if (( staged == 0 && conflicts == 0 && changed == 0 && untracked == 0 )); then + is_clean=1 + fi + + if [[ "$GIT_PROMPT_THEME" == "2" ]]; then + 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" + ((is_clean)) && printf " %s" "$CLEAN_ICON" || printf " %s" "$DIRTY_ICON" + printf "\[\e[34;107m\]" + printf "\[\e[30;107m\] \w" + printf "\[\e[97;49m\]" + printf "\[\e[0m\]" + elif [[ "$GIT_PROMPT_THEME" == "3" ]]; then + 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" + ((is_clean)) && printf " \e[0;32m%s\e[0m" "$CLEAN_ICON" || printf " \e[38;5;196m%s\e[0m" "$DIRTY_ICON" + printf "\e[0;37m]\e[0m \[\e[38;5;178m\]\w\[\e[0m\]" + printf "\n\[\e[0;37m\]└──\[\e[0m\]" + else + 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" + ((is_clean)) && printf " \e[0;32m%s\e[0m" "$CLEAN_ICON" || printf " \e[38;5;196m%s\e[0m" "$DIRTY_ICON" + printf "\e[0;37m]\e[0m" + fi +} + +git_prompt_info() { + git rev-parse --is-inside-work-tree &>/dev/null || return + + local now=$(date +%s) + local last_mod=0 + [[ -f "$GIT_CACHE_FILE" ]] && last_mod=$(stat -c %Y "$GIT_CACHE_FILE" 2>/dev/null || echo 0) + + if (( now - last_mod < GIT_CACHE_EXPIRY )); then + cat "$GIT_CACHE_FILE" + return + fi + + local output + output=$(actual_git_prompt_info_logic) + echo "$output" > "$GIT_CACHE_FILE" + echo "$output" +} + +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;178m\]\w\[\e[0m\] '"${PROMPT_CHAR} " + fi +} + +PROMPT_COMMAND=update_git_prompt + +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 +} diff --git a/fonts/DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf b/fonts/DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf new file mode 100644 index 0000000..10c879b Binary files /dev/null and b/fonts/DejaVu-Sans-Mono-Nerd-Font-Complete-Mono.ttf differ diff --git a/fonts/DejaVu-Sans-Mono-Nerd-Font-Symbols.txt b/fonts/DejaVu-Sans-Mono-Nerd-Font-Symbols.txt new file mode 100644 index 0000000..3ebfdb6 --- /dev/null +++ b/fonts/DejaVu-Sans-Mono-Nerd-Font-Symbols.txt @@ -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 ﬇ ﬈ ﬉ ﬊ ﬋ ﬌ ﬍ ﬎ ﬏ ﬐ ﬑ ﬒ ﬓ ﬔ +ﬕ ﬖ ﬗ ﬘ ﬙ ﬚ ﬛ ﬜ יִ ﬞ ײַ ﬠ ﬡ ﬢ ﬣ ﬤ ﬥ ﬦ ﬧ ﬨ ﬩ שׁ שׂ שּׁ שּׂ אַ אָ אּ בּ גּ דּ הּ וּ זּ ﬷ טּ יּ ךּ כּ לּ +﬽ מּ ﬿ נּ סּ ﭂ ףּ פּ ﭅ צּ קּ רּ שּ תּ וֹ בֿ כֿ פֿ ﭏ ﭐ ﭑ ﭒ ﭓ ﭔ ﭕ ﭖ ﭗ ﭘ ﭙ ﭚ ﭛ ﭜ ﭝ ﭞ ﭟ ﭠ ﭡ ﭢ ﭣ ﭤ + ﭥ ﭦ ﭧ ﭨ ﭩ ﭪ ﭫ ﭬ ﭭ ﭮ ﭯ ﭰ ﭱ ﭲ ﭳ ﭴ ﭵ ﭶ ﭷ ﭸ ﭹ ﭺ ﭻ ﭼ ﭽ ﭾ ﭿ ﮀ ﮁ ﮂ ﮃ ﮄ ﮅ ﮆ ﮇ ﮈ ﮉ ﮊ ﮋ +ﮌ ﮍ ﮎ ﮏ ﮐ ﮑ ﮒ ﮓ ﮔ ﮕ ﮖ ﮗ ﮘ ﮙ ﮚ ﮛ ﮜ ﮝ ﮞ ﮟ ﮠ ﮡ ﮢ ﮣ ﮤ ﮥ ﮦ ﮧ ﮨ ﮩ ﮪ ﮫ ﮬ ﮭ ﮮ ﮯ ﮰ ﮱ ﮲ ﮳ +﮴ ﮵ ﮶ ﮷ ﮸ ﮹ ﮺ ﮻ ﮼ ﮽ ﮾ ﮿ ﯀ ﯁ ﯂ ﯃ ﯄ ﯅ ﯆ ﯇ ﯈ ﯉ ﯊ ﯋ ﯌ ﯍ ﯎ ﯏ ﯐ ﯑ ﯒ ﯓ ﯔ ﯕ ﯖ ﯗ ﯘ ﯙ ﯚ ﯛ + ﯜ ﯝ ﯞ ﯟ ﯠ ﯡ ﯢ ﯣ ﯤ ﯥ ﯦ ﯧ ﯨ ﯩ ﯪ ﯫ ﯬ ﯭ ﯮ ﯯ ﯰ ﯱ ﯲ ﯳ ﯴ ﯵ ﯶ ﯷ ﯸ ﯹ ﯺ ﯻ ﯼ ﯽ ﯾ ﯿ ﰀ ﰁ ﰂ ﰃ + ﰄ ﰅ ﰆ ﰇ ﰈ ﰉ ﰊ ﰋ ﰌ ﰍ ﰎ ﰏ ﰐ ﰑ ﰒ ﰓ ﰔ ﰕ ﰖ ﰗ ﰘ ﰙ ﰚ ﰛ ﰜ ﰝ ﰞ ﰟ ﰠ ﰡ ﰢ ﰣ ﰤ ﰥ ﰦ ﰧ ﰨ ﰩ ﰪ +ﰫ ﰬ ﰭ ﰮ ﰯ ﰰ ﰱ ﰲ ﰳ ﰴ ﰵ ﰶ ﰷ ﰸ ﰹ ﰺ ﰻ ﰼ ﰽ ﰾ ﰿ ﱀ ﱁ ﱂ ﱃ ﱄ ﱅ ﱆ ﱇ ﱈ ﱉ ﱊ ﱋ ﱌ ﱍ ﱎ ﱏ ﱐ ﱑ ﱒ +ﱓ ﱔ ﱕ ﱖ ﱗ ﱘ ﱙ ﱚ ﱛ ﱜ ﱝ ﱞ ﱟ ﱠ ﱡ ﱢ ﱣ ﱤ ﱥ ﱦ ﱧ ﱨ ﱩ ﱪ ﱫ ﱬ ﱭ ﱮ ﱯ ﱰ ﱱ ﱲ ﱳ ﱴ ﱵ ﱶ ﱷ ﱸ ﱹ ﱺ + ﱻ ﱼ ﱽ ﱾ ﱿ ﲀ ﲁ ﲂ ﲃ ﲄ ﲅ ﲆ ﲇ ﲈ ﲉ ﲊ ﲋ ﲌ ﲍ ﲎ ﲏ ﲐ ﲑ ﲒ ﲓ ﲔ ﲕ ﲖ ﲗ ﲘ ﲙ ﲚ ﲛ ﲜ ﲝ ﲞ ﲟ ﲠ ﲡ +ﲢ ﲣ ﲤ ﲥ ﲦ ﲧ ﲨ ﲩ ﲪ ﲫ ﲬ ﲭ ﲮ ﲯ ﲰ ﲱ ﲲ ﲳ ﲴ ﲵ ﲶ ﲷ ﲸ ﲹ ﲺ ﲻ ﲼ ﲽ ﲾ ﲿ ﳀ ﳁ ﳂ ﳃ ﳄ ﳅ ﳆ ﳇ ﳈ ﳉ +ﳊ ﳋ ﳌ ﳍ ﳎ ﳏ ﳐ ﳑ ﳒ ﳓ ﳔ ﳕ ﳖ ﳗ ﳘ ﳙ ﳚ ﳛ ﳜ ﳝ ﳞ ﳟ ﳠ ﳡ ﳢ ﳣ ﳤ ﳥ ﳦ ﳧ ﳨ ﳩ ﳪ ﳫ ﳬ ﳭ ﳮ ﳯ ﳰ ﳱ + ﳲ ﳳ ﳴ ﳵ ﳶ ﳷ ﳸ ﳹ ﳺ ﳻ ﳼ ﳽ ﳾ ﳿ ﴀ ﴁ ﴂ ﴃ ﴄ ﴅ ﴆ ﴇ ﴈ ﴉ ﴊ ﴋ ﴌ ﴍ ﴎ ﴏ ﴐ ﴑ ﴒ ﴓ ﴔ ﴕ ﴖ ﴗ ﴘ ﴙ + ﴚ ﴛ ﴜ ﴝ ﴞ ﴟ ﴠ ﴡ ﴢ ﴣ ﴤ ﴥ ﴦ ﴧ ﴨ ﴩ ﴪ ﴫ ﴬ ﴭ ﴮ ﴯ ﴰ ﴱ ﴲ ﴳ ﴴ ﴵ ﴶ ﴷ ﴸ ﴹ ﴺ ﴻ ﴼ ﴽ ﴾ ﴿ ﵀ +﵁ ﵂ ﵃ ﵄ ﵅ ﵆ ﹰ ﹱ ﹲ ﹳ ﹴ ﹶ ﹷ ﹸ ﹹ ﹺ ﹻ ﹼ ﹽ ﹾ ﹿ ﺀ ﺁ ﺂ ﺃ ﺄ ﺅ ﺆ ﺇ ﺈ ﺉ ﺊ ﺋ ﺌ ﺍ ﺎ ﺏ ﺐ ﺑ ﺒ +ﺓ ﺔ ﺕ ﺖ ﺗ ﺘ ﺙ ﺚ ﺛ ﺜ ﺝ ﺞ ﺟ ﺠ ﺡ ﺢ ﺣ ﺤ ﺥ ﺦ ﺧ ﺨ ﺩ ﺪ ﺫ ﺬ ﺭ ﺮ ﺯ ﺰ ﺱ ﺲ ﺳ ﺴ ﺵ ﺶ ﺷ ﺸ ﺹ ﺺ + ﺻ ﺼ ﺽ ﺾ ﺿ ﻀ ﻁ ﻂ ﻃ ﻄ ﻅ ﻆ ﻇ ﻈ ﻉ ﻊ ﻋ ﻌ ﻍ ﻎ ﻏ ﻐ ﻑ ﻒ ﻓ ﻔ ﻕ ﻖ ﻗ ﻘ ﻙ ﻚ ﻛ ﻜ ﻝ ﻞ ﻟ ﻠ ﻡ ﻢ + ﻣ ﻤ ﻥ ﻦ ﻧ ﻨ ﻩ ﻪ ﻫ ﻬ ﻭ ﻮ ﻯ ﻰ ﻱ ﻲ ﻳ ﻴ ﻵ ﻶ ﻷ ﻸ ﻹ ﻺ ﻻ ﻼ diff --git a/install-fonts.sh b/install-fonts.sh new file mode 100755 index 0000000..5c02fe5 --- /dev/null +++ b/install-fonts.sh @@ -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 diff --git a/last-tested b/last-tested new file mode 100644 index 0000000..f980b13 --- /dev/null +++ b/last-tested @@ -0,0 +1,6 @@ +------------------------------------ +Last tested: 15-10-2025 (DD-MM-YYYY) +Environment: Ubuntu Server 24.04 LTS +Environment: Ubuntu Desktop 24.04 LTS +Environment: Fedora Desktop 42 +------------------------------------