mirror of
https://github.com/d0zingcat/dotfiles.git
synced 2026-05-13 15:09:34 +00:00
refactor: streamline local environment defaults
Improve shell and setup resilience, clean package definitions, and remove the hardcoded Alacritty startup directory so the dotfiles behave more predictably across machines.
This commit is contained in:
54
.zshrc
54
.zshrc
@@ -26,7 +26,11 @@ export MANPAGER="sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' \
|
||||
-c 'nnoremap i <nop>' \
|
||||
-c 'nnoremap <Space> <C-f>' \
|
||||
-c 'noremap q :quit<CR>' -\""
|
||||
export KUBECONFIG=$(echo `ls ~/.kube/*config*` | sed 's/ /:/g')
|
||||
typeset -a kubeconfigs
|
||||
kubeconfigs=("$HOME"/.kube/*config*(N))
|
||||
if (( ${#kubeconfigs[@]} )); then
|
||||
export KUBECONFIG="${(j/:/)kubeconfigs}"
|
||||
fi
|
||||
export HELM_CACHE_HOME=$HOME/.cache/helm
|
||||
export FZF_DEFAULT_OPTS="--height=50% --layout=reverse"
|
||||
export GPG_TTY=$(tty)
|
||||
@@ -45,7 +49,7 @@ export ZSH_HIGHLIGHT_MAXLENGTH=60
|
||||
export GIT_EXTERNAL_DIFF=difft
|
||||
|
||||
|
||||
FPATH="$brew_opt/share/zsh/site-functions:${ASDF_DIR}/completions:${FPATH}"
|
||||
FPATH="$brew_opt/share/zsh/site-functions:${FPATH}"
|
||||
DISABLE_MAGIC_FUNCTIONS=true
|
||||
|
||||
HISTSIZE=10000 # Number of commands to remember in memory (in-session)
|
||||
@@ -53,23 +57,27 @@ SAVEHIST=50000 # Number of commands to save to the history file
|
||||
HISTFILE=~/.zsh_history # File where history is stored
|
||||
|
||||
|
||||
source $HOME/.antigen/antigen.zsh
|
||||
antigen use oh-my-zsh
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle git
|
||||
antigen bundle kubectl
|
||||
antigen bundle autojump
|
||||
antigen bundle pip
|
||||
antigen bundle asdf
|
||||
antigen bundle nvim
|
||||
antigen bundle darvid/zsh-poetry
|
||||
antigen bundle Aloxaf/fzf-tab
|
||||
antigen bundle vi-mode
|
||||
#antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
|
||||
# antigen bundle jeffreytse/zsh-vi-mode
|
||||
antigen apply
|
||||
if [ -f "$HOME/.antigen/antigen.zsh" ]; then
|
||||
source "$HOME/.antigen/antigen.zsh"
|
||||
antigen use oh-my-zsh
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle git
|
||||
antigen bundle kubectl
|
||||
antigen bundle autojump
|
||||
antigen bundle pip
|
||||
antigen bundle nvim
|
||||
antigen bundle darvid/zsh-poetry
|
||||
antigen bundle Aloxaf/fzf-tab
|
||||
antigen bundle vi-mode
|
||||
#antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
|
||||
# antigen bundle jeffreytse/zsh-vi-mode
|
||||
antigen apply
|
||||
else
|
||||
mkdir $HOME/.antigen
|
||||
curl -L git.io/antigen > $HOME/.antigen/antigen.zsh
|
||||
fi
|
||||
|
||||
|
||||
# menu
|
||||
@@ -276,12 +284,12 @@ function bitnami_seal() {
|
||||
}
|
||||
|
||||
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
||||
eval "$(starship init zsh)"
|
||||
eval "$(direnv hook zsh)"
|
||||
command -v starship >/dev/null 2>&1 && eval "$(starship init zsh)"
|
||||
command -v direnv >/dev/null 2>&1 && eval "$(direnv hook zsh)"
|
||||
|
||||
alias ta='tmux a'
|
||||
alias tl='tmux ls && read session && tmux attach -t ${session:-default} || tmux new -s ${session:-default}'
|
||||
alias ls='lsd'
|
||||
command -v lsd >/dev/null 2>&1 && alias ls='lsd'
|
||||
alias l='ls -l'
|
||||
alias la='ls -a'
|
||||
alias lla='ls -la'
|
||||
@@ -321,7 +329,7 @@ alias grep='ggrep'
|
||||
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
|
||||
[ -f /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc ] && . /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc
|
||||
|
||||
source <(fzf --zsh)
|
||||
command -v fzf >/dev/null 2>&1 && source <(fzf --zsh)
|
||||
|
||||
bindkey -M viins '^b' vi-backward-char
|
||||
bindkey -M viins '^f' vi-forward-char
|
||||
|
||||
46
Brewfile
46
Brewfile
@@ -1,8 +1,6 @@
|
||||
tap "anomalyco/tap"
|
||||
tap "farion1231/ccswitch"
|
||||
tap "homebrew/cask"
|
||||
tap "minio/stable"
|
||||
tap "telepresenceio/telepresence"
|
||||
tap "vitobotta/tap"
|
||||
brew "act"
|
||||
brew "argocd"
|
||||
@@ -28,8 +26,8 @@ brew "helm"
|
||||
brew "helmfile"
|
||||
brew "iperf3"
|
||||
brew "k9s"
|
||||
brew "kubernetes-cli"
|
||||
brew "kubectx"
|
||||
brew "kubernetes-cli"
|
||||
brew "lrzsz"
|
||||
brew "lsd"
|
||||
brew "lua"
|
||||
@@ -43,10 +41,11 @@ brew "mysql-client@8.4"
|
||||
brew "neofetch"
|
||||
brew "neovim"
|
||||
brew "nexttrace"
|
||||
brew "ripgrep"
|
||||
brew "opencode"
|
||||
brew "postgresql@17", restart_service: :changed
|
||||
brew "rclone"
|
||||
brew "redis", restart_service: :changed
|
||||
brew "ripgrep"
|
||||
brew "rustup"
|
||||
brew "starship"
|
||||
brew "swiftformat"
|
||||
@@ -55,73 +54,48 @@ brew "trzsz-ssh"
|
||||
brew "uv"
|
||||
brew "wget"
|
||||
brew "xcbeautify"
|
||||
brew "xcode-build-server"
|
||||
brew "yarn"
|
||||
brew "zsh"
|
||||
brew "anomalyco/tap/opencode"
|
||||
brew "minio/stable/mc"
|
||||
brew "telepresenceio/telepresence/telepresence-oss"
|
||||
brew "vitobotta/tap/hetzner_k3s"
|
||||
cask "1password"
|
||||
cask "1password-cli"
|
||||
cask "alacritty"
|
||||
cask "alma"
|
||||
cask "apifox"
|
||||
cask "appcleaner"
|
||||
cask "battle-net"
|
||||
cask "brave-browser"
|
||||
cask "farion1231/ccswitch/cc-switch"
|
||||
cask "chatgpt"
|
||||
cask "cherry-studio"
|
||||
cask "clash-party"
|
||||
cask "claude"
|
||||
cask "claude-code"
|
||||
cask "codex"
|
||||
cask "codex-app"
|
||||
cask "copilot-cli"
|
||||
cask "craft"
|
||||
cask "cursor"
|
||||
cask "daisydisk"
|
||||
cask "datagrip"
|
||||
cask "eudic"
|
||||
cask "figma"
|
||||
cask "feishu"
|
||||
cask "font-jetbrains-mono-nerd-font"
|
||||
cask "font-maple-mono-nf-cn"
|
||||
cask "gcloud-cli"
|
||||
cask "ghostty"
|
||||
cask "github-copilot-for-xcode"
|
||||
cask "google-chrome"
|
||||
cask "google-drive"
|
||||
cask "intellij-idea-ce"
|
||||
cask "jordanbaird-ice"
|
||||
cask "kiro"
|
||||
cask "mac-mouse-fix"
|
||||
cask "kiro-cli"
|
||||
cask "netnewswire"
|
||||
cask "notion"
|
||||
cask "obsidian"
|
||||
cask "only-switch"
|
||||
cask "orbstack"
|
||||
cask "raycast"
|
||||
cask "sourcetree"
|
||||
cask "spotify"
|
||||
cask "squirrel-app"
|
||||
cask "stats"
|
||||
cask "steam"
|
||||
cask "telegram"
|
||||
cask "typeless"
|
||||
cask "visual-studio-code"
|
||||
cask "visual-studio-code@insiders"
|
||||
cask "wechat"
|
||||
mas "HamHub", id: 6458691598
|
||||
mas "1Password for Safari", id: 1569813296
|
||||
mas "GarageBand", id: 682658836
|
||||
mas "iMovie", id: 408981434
|
||||
mas "Keynote", id: 409183694
|
||||
mas "Lark", id: 6449830127
|
||||
mas "Numbers", id: 409203825
|
||||
mas "Pages", id: 409201541
|
||||
mas "PDFgear", id: 6469021132
|
||||
mas "Quantumult X", id: 1443988620
|
||||
mas "SenPlayer", id: 6443975850
|
||||
mas "Shadowrocket", id: 932747118
|
||||
mas "sing-box", id: 6673731168
|
||||
mas "The Unarchiver", id: 425424353
|
||||
mas "Xcode", id: 497799835
|
||||
vscode "anthropic.claude-code"
|
||||
vscode "donjayamanne.githistory"
|
||||
vscode "dreamecho.git-blame-lens"
|
||||
|
||||
@@ -8,7 +8,7 @@ live_config_reload = true
|
||||
[terminal]
|
||||
# OSC 52 剪贴板支持
|
||||
osc52 = "CopyPaste" # Disabled, OnlyCopy, OnlyPaste, CopyPaste
|
||||
shell = { program = "/bin/zsh", args = ["-c", "cd ~/Workspace 2>/dev/null || true; exec zsh"] }
|
||||
shell = { program = "/bin/zsh" }
|
||||
|
||||
[selection]
|
||||
semantic_escape_chars = ",│`|\"' ()[]{}<>"
|
||||
|
||||
10
git/config
10
git/config
@@ -1,10 +1,10 @@
|
||||
[init]
|
||||
defaultBranch = main
|
||||
defaultBranch = main
|
||||
|
||||
[user]
|
||||
name = YOUR_NAME
|
||||
signingkey = YOUR_SSH_SIGNING_KEY
|
||||
email = YOUR_EMAIL
|
||||
name = Li Tang
|
||||
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPaVruhhL4O9BiAncnW1wH3jc7/hsqsXLknA8Xtnjjee
|
||||
email = iamtangli42@gmail.com
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
[core]
|
||||
editor = nvim
|
||||
excludesfile = ~/.config/git/.gitignore
|
||||
excludesfile = /Users/d0zingcat/.config/git/.gitignore
|
||||
|
||||
[pager]
|
||||
difftool = true
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"guihua.lua": { "branch": "master", "commit": "87bea7b98429405caf2a0ce4d029b027bb017c70" },
|
||||
"img-clip.nvim": { "branch": "main", "commit": "b6ddfb97b5600d99afe3452d707444afda658aca" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" },
|
||||
"legendary.nvim": { "branch": "master", "commit": "6de819bc285eb8c420e49e82c21d5bb696b5a727" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
||||
@@ -47,8 +47,8 @@
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
||||
"oil.nvim": { "branch": "master", "commit": "5b6068aad7d2057dd399fac73b7fb2cdf23ccd6e" },
|
||||
@@ -56,10 +56,9 @@
|
||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "607a438d8c647a355749973fd295e33505afafde" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||
"sniprun": { "branch": "master", "commit": "a90c65846c3c18efc3f799d8b6dc26af9d4a69ed" },
|
||||
"statuscol.nvim": { "branch": "main", "commit": "c46172d0911aa5d49ba5f39f4351d1bb7aa289cc" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||
|
||||
31
setup.sh
31
setup.sh
@@ -34,6 +34,7 @@ FILES=(
|
||||
|
||||
# Config directories to link
|
||||
CONFIG_FILES=(
|
||||
alacritty
|
||||
git
|
||||
nvim
|
||||
tmux
|
||||
@@ -168,15 +169,6 @@ function cmd_init() {
|
||||
print_success "Antigen already installed"
|
||||
fi
|
||||
|
||||
# Install asdf
|
||||
if [ ! -d "$HOME/.asdf" ]; then
|
||||
print_warning "Installing asdf..."
|
||||
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
|
||||
print_success "asdf installed"
|
||||
else
|
||||
print_success "asdf already installed"
|
||||
fi
|
||||
|
||||
# Create necessary directories
|
||||
print_warning "Creating directories..."
|
||||
mkdir -p "$HOME/.config/"
|
||||
@@ -196,6 +188,10 @@ function cmd_init() {
|
||||
function cmd_install() {
|
||||
print_header "Installing Dotfiles Symlinks"
|
||||
|
||||
mkdir -p "$HOME_DIR/.config"
|
||||
mkdir -p "$HOME_DIR/.ssh"
|
||||
mkdir -p "$HOME_DIR/.kube"
|
||||
|
||||
# Link files
|
||||
print_warning "Linking files..."
|
||||
for i in "${FILES[@]}"; do
|
||||
@@ -210,8 +206,7 @@ function cmd_install() {
|
||||
# Link config directories
|
||||
print_warning "Linking config directories..."
|
||||
for i in "${CONFIG_FILES[@]}"; do
|
||||
if [ -d "$WORKING_DIR/$i" ]; then
|
||||
mkdir -p "$HOME_DIR/.config"
|
||||
if [ -e "$WORKING_DIR/$i" ]; then
|
||||
ln -svfn "$WORKING_DIR/$i" "$HOME_DIR/.config/$i"
|
||||
print_success "Linked: .config/$i"
|
||||
else
|
||||
@@ -244,9 +239,13 @@ function cmd_install() {
|
||||
if command_exists fzf; then
|
||||
print_success "fzf already installed"
|
||||
elif command_exists brew; then
|
||||
print_warning "Installing fzf..."
|
||||
$(brew --prefix)/opt/fzf/install --key-bindings --completion 2>/dev/null || true
|
||||
print_success "fzf installed"
|
||||
if [ -x "$(brew --prefix)/opt/fzf/install" ]; then
|
||||
print_warning "Installing fzf shell integration..."
|
||||
"$(brew --prefix)/opt/fzf/install" --key-bindings --completion --no-update-rc 2>/dev/null || true
|
||||
print_success "fzf shell integration installed"
|
||||
else
|
||||
print_warning "fzf binary not found yet; run: brew bundle install"
|
||||
fi
|
||||
fi
|
||||
|
||||
print_header "Installation Complete!"
|
||||
@@ -603,14 +602,14 @@ function cmd_check() {
|
||||
local git_email=$(git config --file "$HOME_DIR/.gitconfig" user.email 2>/dev/null || echo "")
|
||||
|
||||
echo -n " user.name: "
|
||||
if [ "$git_name" == "YOUR_NAME" ] || [ -z "$git_name" ]; then
|
||||
if [[ "$git_name" == "YOUR_NAME" || -z "$git_name" ]]; then
|
||||
print_warning "not configured"
|
||||
else
|
||||
print_success "$git_name"
|
||||
fi
|
||||
|
||||
echo -n " user.email: "
|
||||
if [ "$git_email" == "YOUR_EMAIL" ] || [ -z "$git_email" ]; then
|
||||
if [[ "$git_email" == "YOUR_EMAIL" || -z "$git_email" ]]; then
|
||||
print_warning "not configured"
|
||||
else
|
||||
print_success "$git_email"
|
||||
|
||||
Reference in New Issue
Block a user