The cleanup job now restores the whole home directory instead of only the four text files: the directory itself, the shell configuration that gives the prompt, and the files. Anything that is not a regular file is replaced, so the files stay text files. The README in server/ describes the security model: the box is a disposable VPS that may be compromised, the root user may do whatever they want, and only the prompt, the home directory and the four files are kept working. Co-Authored-By: Claude Code <noreply@anthropic.com>
36 lines
1.8 KiB
Shell
36 lines
1.8 KiB
Shell
# History shared between sessions.
|
|
HISTFILE=~/.zsh_history HISTSIZE=10000 SAVEHIST=10000
|
|
setopt share_history hist_ignore_dups hist_ignore_space interactive_comments auto_cd
|
|
|
|
# Completion: menu, case-insensitive, colored. -C skips compaudit, which is slow on
|
|
# Windows and meaningless under MSYS2's noacl mounts (rm ~/.zcompdump after adding completions).
|
|
autoload -Uz compinit && compinit -C
|
|
zstyle ':completion:*' menu select
|
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
|
|
|
# Emacs keys; Up/Down search history for what is already typed.
|
|
bindkey -e
|
|
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
|
zle -N up-line-or-beginning-search && zle -N down-line-or-beginning-search
|
|
bindkey '^[[A' up-line-or-beginning-search '^[OA' up-line-or-beginning-search
|
|
bindkey '^[[B' down-line-or-beginning-search '^[OB' down-line-or-beginning-search
|
|
|
|
# Prompt: user@host:directory, git branch, exit status of the last command if it failed.
|
|
# A literal '#' as on Linux: zsh's %# would show '%', since this root is not uid 0.
|
|
# The branch is read from .git/HEAD directly: starting git on every prompt is slow on Windows.
|
|
precmd() {
|
|
local d=$PWD head=
|
|
until [[ -e $d/.git || $d == / ]]; do d=${d:h}; done
|
|
[[ -f $d/.git/HEAD ]] && read -r head < $d/.git/HEAD
|
|
[[ $head == 'ref: '* ]] && git_branch=${head#ref: refs/heads/} || git_branch=${head:0:7}
|
|
print -Pn '\e]0;%n@%m: %~\a'
|
|
}
|
|
setopt prompt_subst
|
|
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f${git_branch:+ %5F($git_branch)%f}%(?.. %F{red}[%?]%f)# '
|
|
|
|
alias ls='ls --color=auto' ll='ls -lah' grep='grep --color=auto'
|
|
|
|
# Process monitor: htop does not exist for MSYS2 (its /proc only shows MSYS2 processes).
|
|
# bottom is a native Windows program; winpty lets it draw in the pty, as Server 2016 has no ConPTY.
|
|
alias btm='winpty /ucrt64/bin/btm'
|