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'