From 28c01e04d8f70f67375005d1d00225ec40a6966f Mon Sep 17 00:00:00 2001 From: Thayol Date: Wed, 8 Jul 2026 14:40:42 +0200 Subject: [PATCH] Initial commit --- .gitignore | 1 + README.md | 11 +++++++++++ prompt.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 prompt.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f10862a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.env diff --git a/README.md b/README.md new file mode 100644 index 0000000..1b4161c --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# Thayol's Bash Prompt + +Clone this repo: +``` +git clone git@uncensored.hu:thayol/bash-prompt.git ~/.bash-prompt +``` + +Add this to your `.bashrc`: +``` +. $HOME/.bash-prompt/prompt.sh +``` diff --git a/prompt.sh b/prompt.sh new file mode 100755 index 0000000..cafb0d7 --- /dev/null +++ b/prompt.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Defaults (override in .env) +PROMPT_ICON="" +PROMPT_HOST_COLOR="255;255;255" +PROMPT_DIR_COLOR="100;149;237" +PROMPT_VPN_NAME="" +PROMPT_VPN_COLOR="255;255;255" + +_prompt_dir="${BASH_SOURCE[0]%/*}" +[[ -f "$_prompt_dir/.env" ]] && . "$_prompt_dir/.env" + +__prompt_git() { + local branch + branch=$(git branch --show-current 2>/dev/null) || return + [[ -z $branch ]] && return + echo -n " (${branch})" +} + +__prompt_vpn() { + [[ -z $PROMPT_VPN_NAME ]] && return + nmcli -f GENERAL.STATE con show "$PROMPT_VPN_NAME" &>/dev/null || return + echo -n " → \[\e[38;2;${PROMPT_VPN_COLOR}m\]${PROMPT_VPN_NAME}\[\e[0m\]" +} + +__prompt_build() { + local white='\[\e[37m\]' + local reset='\[\e[0m\]' + local host_color="\[\e[38;2;${PROMPT_HOST_COLOR}m\]" + local dir_color="\[\e[38;2;${PROMPT_DIR_COLOR}m\]" + + PS1="${white}[${reset}" + PS1+="${host_color}\u@\h${r}" + PS1+="$(__prompt_vpn)" + PS1+="${white}:${reset}" + PS1+="${dir_color}${PWD}${reset}" + PS1+="${white}]${reset}" + PS1+=" ${PROMPT_ICON}" + PS1+="$(__prompt_git)" + PS1+=' \$ ' +} + +PROMPT_COMMAND=__prompt_build