fix(shell): guard brew shellenv against TCC and keep eza aliases

.zshenv runs brew shellenv for every zsh, including non-interactive and
GUI-launched shells; without a safe CWD the eval fails or triggers a
permission prompt when launched from a TCC-protected directory such as
~/Documents. Run it from /tmp.

The eza `l` alias (and the myip/e/ip/a/aa group) was defined before
oh-my-zsh loaded, so lib/directories.zsh overrode `l` back to ls. Move
the alias block after the oh-my-zsh source so the eza versions win.

Also document the ~/.config/zshrc personal-config mechanism and patch.sh
in the README, which previously only had a title.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Yuhao Qing
2026-08-03 02:22:18 +08:00
co-authored by Cursor
parent 9377023e28
commit 12108ca3e4
3 changed files with 58 additions and 11 deletions
+13 -8
View File
@@ -151,14 +151,9 @@ autoload -U compinit && compinit -C -d ~/.cache/zsh/.zcompdump # zsh-comp
SAVEHIST=50000 #save upto 50,000 lines in history. oh-my-zsh default is 10,000
#setopt hist_ignore_all_dups # dont record duplicated entries in history during a single session
alias myip="wget -qO- https://wtfismyip.com/text" # quickly show external ip address
alias l="eza --hyperlink -lA --sort=modified --reverse --classify" # show all except . .. , sort by recent, / at the end of folders, clickable
alias e="exit"
alias ip="ip --color=auto"
## EZA - the better ls command
alias a='eza -la --git --colour-scale all -g --smart-group --icons always --hyperlink' # the new ls; add --hyperlink if you like
alias aa='eza -la --git --colour-scale all -g --smart-group --icons always -s modified -r --hyperlink' # sort by new
# NOTE: personal aliases that must win over oh-my-zsh are defined AFTER
# `source "$ZSH/oh-my-zsh.sh"` below, because oh-my-zsh's lib/directories.zsh
# re-defines several of them (e.g. `l`) when it loads.
# CUSTOM FUNCTIONS
@@ -217,6 +212,16 @@ source "$ZSH/oh-my-zsh.sh"
# Configs that can only work after "source $ZSH/oh-my-zsh.sh", such as Aliases that depend oh-my-zsh plugins
# Personal aliases. Defined after oh-my-zsh so they win over oh-my-zsh's own
# aliases (lib/directories.zsh sets `l`, `ll`, etc. when it loads).
alias myip="wget -qO- https://wtfismyip.com/text" # quickly show external ip address
alias l="eza --hyperlink -lA --sort=modified --reverse --classify" # show all except . .. , sort by recent, / at the end of folders, clickable
alias e="exit"
alias ip="ip --color=auto"
## EZA - the better ls command
alias a='eza -la --git --colour-scale all -g --smart-group --icons always --hyperlink' # the new ls; add --hyperlink if you like
alias aa='eza -la --git --colour-scale all -g --smart-group --icons always -s modified -r --hyperlink' # sort by new
# ponytail: Trash aliases accept paths, not every rm flag; add a wrapper only if flag compatibility is required.
if [[ "$OSTYPE" == darwin* && -x /usr/bin/trash ]]; then
alias rm='/usr/bin/trash'