You've already forked bash-git-prompt
initial commit
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -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.
|
||||||
174
README.md
Normal file
174
README.md
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
# Bash Git Prompt for Ubuntu 24.04
|
||||||
|
[](#)
|
||||||
|
[](#)
|
||||||
|
[](#)
|
||||||
|
[](./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.
|
||||||
|
|
||||||
|
<p align="left" width="100%">
|
||||||
|
<img src="https://git.x-files.dk/assets/bgp-extended-symbols.png" alt="Extended Symbols"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Prompt Structure
|
||||||
|
|
||||||
|
The default prompt layout is:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
<branch git status><working directory>
|
||||||
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
|
||||||
|
<p align="center" width="100%">
|
||||||
|
<img src="https://git.x-files.dk/assets/gittheme1.png" alt="Default Theme"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 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 <theme number>
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<p align="center" width="100%">
|
||||||
|
<img src="https://git.x-files.dk/assets/gittheme2.png" alt="All Themes"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Terminal Font Setup
|
||||||
|
|
||||||
|
Set your terminal to use:
|
||||||
|
```
|
||||||
|
DejaVuSansMono Nerd Font Mono
|
||||||
|
```
|
||||||
|
|
||||||
|
<p align="center" width="100%">
|
||||||
|
<img src="https://git.x-files.dk/assets/gittheme3.png" alt="Terminal Font Settings"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 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=<number>`.
|
||||||
|
|
||||||
|
**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).
|
||||||
|
|
||||||
|
---
|
||||||
200
bash-git-prompt
Normal file
200
bash-git-prompt
Normal file
@@ -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
|
||||||
|
}
|
||||||
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 ﬓ ﬔ
|
||||||
|
ﬕ ﬖ ﬗ יִ ﬞ ײַ ﬠ ﬡ ﬢ ﬣ ﬤ ﬥ ﬦ ﬧ ﬨ ﬩ שׁ שׂ שּׁ שּׂ אַ אָ אּ בּ גּ דּ הּ וּ זּ טּ יּ ךּ כּ לּ
|
||||||
|
מּ נּ סּ ףּ פּ צּ קּ רּ שּ תּ וֹ בֿ כֿ פֿ ﭏ ﭐ ﭑ ﭒ ﭓ ﭔ ﭕ ﭖ ﭗ ﭘ ﭙ ﭚ ﭛ ﭜ ﭝ ﭞ ﭟ ﭠ ﭡ ﭢ ﭣ ﭤ
|
||||||
|
ﭥ ﭦ ﭧ ﭨ ﭩ ﭪ ﭫ ﭬ ﭭ ﭮ ﭯ ﭰ ﭱ ﭲ ﭳ ﭴ ﭵ ﭶ ﭷ ﭸ ﭹ ﭺ ﭻ ﭼ ﭽ ﭾ ﭿ ﮀ ﮁ ﮂ ﮃ ﮄ ﮅ ﮆ ﮇ ﮈ ﮉ ﮊ ﮋ
|
||||||
|
ﮌ ﮍ ﮎ ﮏ ﮐ ﮑ ﮒ ﮓ ﮔ ﮕ ﮖ ﮗ ﮘ ﮙ ﮚ ﮛ ﮜ ﮝ ﮞ ﮟ ﮠ ﮡ ﮢ ﮣ ﮤ ﮥ ﮦ ﮧ ﮨ ﮩ ﮪ ﮫ ﮬ ﮭ ﮮ ﮯ ﮰ ﮱ ﮲ ﮳
|
||||||
|
﮴ ﮵ ﮶ ﮷ ﮸ ﮹ ﮺ ﮻ ﮼ ﮽ ﮾ ﮿ ﯀ ﯁ ﯂ ﯓ ﯔ ﯕ ﯖ ﯗ ﯘ ﯙ ﯚ ﯛ
|
||||||
|
ﯜ ﯝ ﯞ ﯟ ﯠ ﯡ ﯢ ﯣ ﯤ ﯥ ﯦ ﯧ ﯨ ﯩ ﯪ ﯫ ﯬ ﯭ ﯮ ﯯ ﯰ ﯱ ﯲ ﯳ ﯴ ﯵ ﯶ ﯷ ﯸ ﯹ ﯺ ﯻ ﯼ ﯽ ﯾ ﯿ ﰀ ﰁ ﰂ ﰃ
|
||||||
|
ﰄ ﰅ ﰆ ﰇ ﰈ ﰉ ﰊ ﰋ ﰌ ﰍ ﰎ ﰏ ﰐ ﰑ ﰒ ﰓ ﰔ ﰕ ﰖ ﰗ ﰘ ﰙ ﰚ ﰛ ﰜ ﰝ ﰞ ﰟ ﰠ ﰡ ﰢ ﰣ ﰤ ﰥ ﰦ ﰧ ﰨ ﰩ ﰪ
|
||||||
|
ﰫ ﰬ ﰭ ﰮ ﰯ ﰰ ﰱ ﰲ ﰳ ﰴ ﰵ ﰶ ﰷ ﰸ ﰹ ﰺ ﰻ ﰼ ﰽ ﰾ ﰿ ﱀ ﱁ ﱂ ﱃ ﱄ ﱅ ﱆ ﱇ ﱈ ﱉ ﱊ ﱋ ﱌ ﱍ ﱎ ﱏ ﱐ ﱑ ﱒ
|
||||||
|
ﱓ ﱔ ﱕ ﱖ ﱗ ﱘ ﱙ ﱚ ﱛ ﱜ ﱝ ﱞ ﱟ ﱠ ﱡ ﱢ ﱣ ﱤ ﱥ ﱦ ﱧ ﱨ ﱩ ﱪ ﱫ ﱬ ﱭ ﱮ ﱯ ﱰ ﱱ ﱲ ﱳ ﱴ ﱵ ﱶ ﱷ ﱸ ﱹ ﱺ
|
||||||
|
ﱻ ﱼ ﱽ ﱾ ﱿ ﲀ ﲁ ﲂ ﲃ ﲄ ﲅ ﲆ ﲇ ﲈ ﲉ ﲊ ﲋ ﲌ ﲍ ﲎ ﲏ ﲐ ﲑ ﲒ ﲓ ﲔ ﲕ ﲖ ﲗ ﲘ ﲙ ﲚ ﲛ ﲜ ﲝ ﲞ ﲟ ﲠ ﲡ
|
||||||
|
ﲢ ﲣ ﲤ ﲥ ﲦ ﲧ ﲨ ﲩ ﲪ ﲫ ﲬ ﲭ ﲮ ﲯ ﲰ ﲱ ﲲ ﲳ ﲴ ﲵ ﲶ ﲷ ﲸ ﲹ ﲺ ﲻ ﲼ ﲽ ﲾ ﲿ ﳀ ﳁ ﳂ ﳃ ﳄ ﳅ ﳆ ﳇ ﳈ ﳉ
|
||||||
|
ﳊ ﳋ ﳌ ﳍ ﳎ ﳏ ﳐ ﳑ ﳒ ﳓ ﳔ ﳕ ﳖ ﳗ ﳘ ﳙ ﳚ ﳛ ﳜ ﳝ ﳞ ﳟ ﳠ ﳡ ﳢ ﳣ ﳤ ﳥ ﳦ ﳧ ﳨ ﳩ ﳪ ﳫ ﳬ ﳭ ﳮ ﳯ ﳰ ﳱ
|
||||||
|
ﳲ ﳳ ﳴ ﳵ ﳶ ﳷ ﳸ ﳹ ﳺ ﳻ ﳼ ﳽ ﳾ ﳿ ﴀ ﴁ ﴂ ﴃ ﴄ ﴅ ﴆ ﴇ ﴈ ﴉ ﴊ ﴋ ﴌ ﴍ ﴎ ﴏ ﴐ ﴑ ﴒ ﴓ ﴔ ﴕ ﴖ ﴗ ﴘ ﴙ
|
||||||
|
ﴚ ﴛ ﴜ ﴝ ﴞ ﴟ ﴠ ﴡ ﴢ ﴣ ﴤ ﴥ ﴦ ﴧ ﴨ ﴩ ﴪ ﴫ ﴬ ﴭ ﴮ ﴯ ﴰ ﴱ ﴲ ﴳ ﴴ ﴵ ﴶ ﴷ ﴸ ﴹ ﴺ ﴻ ﴼ ﴽ ﴾ ﴿ ﵀
|
||||||
|
﵁ ﵂ ﵃ ﵄ ﵅ ﵆ ﹰ ﹱ ﹲ ﹳ ﹴ ﹶ ﹷ ﹸ ﹹ ﹺ ﹻ ﹼ ﹽ ﹾ ﹿ ﺀ ﺁ ﺂ ﺃ ﺄ ﺅ ﺆ ﺇ ﺈ ﺉ ﺊ ﺋ ﺌ ﺍ ﺎ ﺏ ﺐ ﺑ ﺒ
|
||||||
|
ﺓ ﺔ ﺕ ﺖ ﺗ ﺘ ﺙ ﺚ ﺛ ﺜ ﺝ ﺞ ﺟ ﺠ ﺡ ﺢ ﺣ ﺤ ﺥ ﺦ ﺧ ﺨ ﺩ ﺪ ﺫ ﺬ ﺭ ﺮ ﺯ ﺰ ﺱ ﺲ ﺳ ﺴ ﺵ ﺶ ﺷ ﺸ ﺹ ﺺ
|
||||||
|
ﺻ ﺼ ﺽ ﺾ ﺿ ﻀ ﻁ ﻂ ﻃ ﻄ ﻅ ﻆ ﻇ ﻈ ﻉ ﻊ ﻋ ﻌ ﻍ ﻎ ﻏ ﻐ ﻑ ﻒ ﻓ ﻔ ﻕ ﻖ ﻗ ﻘ ﻙ ﻚ ﻛ ﻜ ﻝ ﻞ ﻟ ﻠ ﻡ ﻢ
|
||||||
|
ﻣ ﻤ ﻥ ﻦ ﻧ ﻨ ﻩ ﻪ ﻫ ﻬ ﻭ ﻮ ﻯ ﻰ ﻱ ﻲ ﻳ ﻴ ﻵ ﻶ ﻷ ﻸ ﻹ ﻺ ﻻ ﻼ
|
||||||
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
|
||||||
6
last-tested
Normal file
6
last-tested
Normal file
@@ -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
|
||||||
|
------------------------------------
|
||||||
Reference in New Issue
Block a user