main
1# Light Phone (suzu) Termux zsh config
2
3# Identity
4export USER="vincent"
5export HOST="suzu"
6
7# PATH
8export PATH="$HOME/bin:$PATH"
9
10# Prompt — matching homelab style, compact for small screen
11_shorten_path() {
12 local p="$1" max="${2:-40}"
13 (( ${#p} <= max )) && { echo "$p"; return; }
14 local parts=("${(@s:/:)p}")
15 local len=${#parts[@]}
16 local i
17 for (( i=1; i <= len - 2; i++ )); do
18 (( ${#p} <= max )) && break
19 (( ${#parts[$i]} <= 2 )) && continue
20 if [[ "${parts[$i]}" == .* ]]; then
21 parts[$i]=".${parts[$i]:1:1}"
22 else
23 parts[$i]="${parts[$i]:0:1}"
24 fi
25 p="${(j:/:)parts}"
26 done
27 echo "$p"
28}
29
30_prompt_dir() {
31 local dir="${PWD/#$HOME/~}"
32 if (( ${#dir} > 40 )); then
33 dir=$(_shorten_path "$dir" 40)
34 fi
35 echo "$dir"
36}
37
38_prompt_git_branch() {
39 local branch
40 branch=$(git symbolic-ref --short HEAD 2>/dev/null)
41 [[ -n $branch ]] && echo " $branch"
42}
43
44setopt PROMPT_SUBST
45export PROMPT='$HOST:$(_prompt_dir)$(_prompt_git_branch) %(!.#.$) '
46
47# History
48HISTFILE=~/.zsh_history
49HISTSIZE=5000
50SAVEHIST=5000
51setopt SHARE_HISTORY
52setopt HIST_IGNORE_DUPS
53setopt HIST_IGNORE_SPACE
54
55# Completion
56autoload -Uz compinit && compinit -C
57zstyle ':completion:*' menu select
58
59# Key bindings
60bindkey -e
61bindkey '^[[A' up-line-or-search
62bindkey '^[[B' down-line-or-search
63
64# === Aliases ===
65
66# Homelab SSH shortcuts
67alias athena='ssh athena.vpn'
68alias demeter='ssh demeter.vpn'
69alias rhea='ssh rhea.vpn'
70alias aion='ssh aion.vpn'
71alias kerkouane='ssh kerkouane.vpn'
72alias shikoku='ssh shikoku.vpn'
73alias nagoya='ssh nagoya.vpn'
74alias kyushu='ssh kyushu.vpn'
75alias aomi='ssh aomi.vpn'
76alias sakhalin='ssh sakhalin.vpn'
77alias okinawa='ssh okinawa.vpn'
78alias wakasu='ssh wakasu.vpn'
79
80# General
81alias ll='ls -la'
82alias la='ls -A'
83alias ..='cd ..'
84alias ...='cd ../..'
85
86# Git
87alias gs='git status'
88alias gl='git log --oneline -20'
89alias gp='git pull --ff-only'
90
91# Sync config from repo
92alias suzu-sync='~/src/home/android/suzu/sync.sh'
93
94# Quick access
95alias home='cd ~/src/home'