-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path80s-space-theme
More file actions
111 lines (93 loc) · 4.73 KB
/
Copy path80s-space-theme
File metadata and controls
111 lines (93 loc) · 4.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# .bashrc
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH
export VIRTUAL_ENV_DISABLE_PROMPT=true
# ── LCARS Authentic Color Palette ────────────────────────
LCARS_ORANGE='\[\e[38;2;255;153;0m\]'
LCARS_GOLD='\[\e[38;2;255;204;0m\]'
LCARS_TANOI='\[\e[38;2;255;204;153m\]'
LCARS_BLUE='\[\e[38;2;136;153;255m\]'
LCARS_PURPLE='\[\e[38;2;204;136;255m\]'
LCARS_RED='\[\e[38;2;207;79;79m\]'
LCARS_GREEN='\[\e[38;2;153;204;102m\]'
LCARS_WHITE='\[\e[38;2;245;246;250m\]'
LCARS_CYAN='\[\e[38;2;153;204;255m\]'
LCARS_PEACH='\[\e[38;2;255;136;102m\]'
LCARS_RESET='\[\e[0m\]'
# ── Ship Registry ────────────────────────────────────────
SHIP_REGISTRY="NCC-$(hostname | cut -c1-4 | tr '[:lower:]' '[:upper:]')"
SHIP_NAME="$(hostname)"
PILOT_NAME="$(whoami)"
# ── System Status Colors ─────────────────────────────────
__lcars_status_color() {
local status=$1
case "$status" in
NOMINAL|ONLINE|ACTIVE) echo "${LCARS_GREEN}" ;;
WARNING|CAUTION) echo "${LCARS_GOLD}" ;;
CRITICAL|ALERT) echo "${LCARS_RED}" ;;
STANDBY) echo "${LCARS_BLUE}" ;;
*) echo "${LCARS_ORANGE}" ;;
esac
}
# ── Background Job Notifications ─────────────────────────
set -b
__lcars_build_prompt() {
local RETVAL=$?
local exit_status="NOMINAL"
[[ "$RETVAL" -ne 0 ]] && exit_status="ALERT"
# Git branch detection
local git_branch=$(git --no-optional-locks rev-parse --abbrev-ref HEAD 2>/dev/null)
local git_status=""
local git_indicator=""
if [[ -n "$git_branch" ]]; then
local git_dirty=$(git --no-optional-locks status --porcelain 2>/dev/null | tail -n 1)
if [[ -n "$git_dirty" ]]; then
git_status="MODIFIED"
git_indicator="${LCARS_GOLD}●${LCARS_WHITE}"
else
git_status="CLEAN"
git_indicator="${LCARS_GREEN}●${LCARS_WHITE}"
fi
fi
# Venv detection
local venv_status=""
[[ -n "$VIRTUAL_ENV" ]] && venv_status="$(basename "$VIRTUAL_ENV")"
# Background jobs
local job_count=$(jobs -p | wc -l)
local job_indicator=""
[[ "$job_count" -gt 0 ]] && job_indicator=" [BG:${job_count}]"
# Build PS1
PS1=""
# ═══ HEADER ROW ═══
PS1+="${LCARS_ORANGE}╔═══════════════════════════════════════════════════╗${LCARS_RESET}\n"
PS1+="${LCARS_ORANGE}║${LCARS_WHITE} REGISTRY: ${LCARS_GOLD}${SHIP_REGISTRY}${LCARS_WHITE} VESSEL: ${LCARS_GOLD}${SHIP_NAME}${LCARS_WHITE} SECTOR: LOCAL ${LCARS_ORANGE}║${LCARS_RESET}\n"
PS1+="${LCARS_ORANGE}╠═══════════════════════════════════════════════════╣${LCARS_RESET}\n"
# ═══ SYSTEM STATUS ROW ═══
PS1+="${LCARS_ORANGE}║${LCARS_RESET} "
PS1+="${LCARS_BLUE}CONSOLE${LCARS_WHITE}: ${LCARS_CYAN}$(tty | sed 's|/dev/||')${LCARS_RESET} "
PS1+="${LCARS_BLUE}USER${LCARS_WHITE}: ${LCARS_CYAN}${PILOT_NAME}${LCARS_RESET} "
PS1+="${LCARS_BLUE}STATUS${LCARS_WHITE}: $(__lcars_status_color "$exit_status")${exit_status}${LCARS_RESET}"
[[ -n "$job_indicator" ]] && PS1+=" ${LCARS_PURPLE}BG TASKS${LCARS_WHITE}:${LCARS_GOLD}${job_indicator}${LCARS_RESET}"
PS1+="${LCARS_ORANGE} ║${LCARS_RESET}\n"
# ═══ NAVIGATION ROW ═══
PS1+="${LCARS_ORANGE}╠═══════════════════════════════════════════════════╣${LCARS_RESET}\n"
PS1+="${LCARS_ORANGE}║${LCARS_RESET} "
PS1+="${LCARS_TANOI}NAVIGATION${LCARS_WHITE}: ${LCARS_CYAN}\w${LCARS_RESET}"
if [[ -n "$git_branch" ]]; then
PS1+=" ${LCARS_PURPLE}REPO${LCARS_WHITE}: ${LCARS_CYAN}${git_branch}${LCARS_RESET} ${git_indicator}"
fi
if [[ -n "$venv_status" ]]; then
PS1+=" ${LCARS_PEACH}ENV${LCARS_WHITE}: ${LCARS_CYAN}${venv_status}${LCARS_RESET}"
fi
PS1+="${LCARS_ORANGE} ║${LCARS_RESET}\n"
# ═══ COMMAND INPUT ROW ═══
PS1+="${LCARS_ORANGE}╚═══════════════════════════════════════════════════╝${LCARS_RESET}\n"
PS1+="${LCARS_ORANGE}►${LCARS_RESET} "
return $RETVAL
}
PROMPT_COMMAND='__lcars_build_prompt'