-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall-all-and-symlink.sh
More file actions
executable file
Β·142 lines (121 loc) Β· 4.02 KB
/
Copy pathinstall-all-and-symlink.sh
File metadata and controls
executable file
Β·142 lines (121 loc) Β· 4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/usr/bin/env bash
set -e
echo "========================================="
echo "π Installing dotfiles..."
echo "========================================="
echo ""
# Check if Homebrew is installed
if ! command -v brew &> /dev/null; then
echo "π¦ Installing Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Add Homebrew to PATH for Apple Silicon Macs
if [[ $(uname -m) == "arm64" ]]; then
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
echo "β Homebrew installed"
else
echo "β Homebrew already installed"
fi
echo ""
# Install core CLI tools (only if not already installed)
echo "π οΈ Installing core tools..."
tools=(git node tmux lazygit uv fzf asdf)
for tool in "${tools[@]}"; do
if ! command -v $tool &> /dev/null; then
echo " Installing $tool..."
brew install $tool
else
echo " β $tool already installed"
fi
done
brew link --overwrite lazygit 2>/dev/null || true
echo "β Core tools ready"
echo ""
# Install WezTerm (cask)
if ! [ -d "/Applications/WezTerm.app" ]; then
echo "π₯οΈ Installing WezTerm..."
brew install --cask wezterm
echo "β WezTerm installed"
else
echo "β WezTerm already installed"
fi
echo ""
# Install Neovim from GitHub releases
if ! command -v nvim &> /dev/null; then
echo "π¦ Installing Neovim from GitHub..."
NVIM_VERSION=$(curl -s https://api.github.com/repos/neovim/neovim/releases/latest | grep '"tag_name"' | sed -E 's/.*"v([^"]+)".*/\1/')
if [[ $(uname -m) == "arm64" ]]; then
NVIM_ARCH="arm64"
else
NVIM_ARCH="x86_64"
fi
cd /tmp
curl -LO "https://github.com/neovim/neovim/releases/download/v${NVIM_VERSION}/nvim-macos-${NVIM_ARCH}.tar.gz"
tar xzf nvim-macos-${NVIM_ARCH}.tar.gz
sudo mv nvim-macos-${NVIM_ARCH} /opt/nvim
sudo ln -sf /opt/nvim/bin/nvim /usr/local/bin/nvim
rm nvim-macos-${NVIM_ARCH}.tar.gz
cd - > /dev/null
echo "β Neovim v${NVIM_VERSION} installed"
else
echo "β Neovim already installed"
fi
echo ""
# Install Nerd Font
if ! ls ~/Library/Fonts/MesloLGS* &> /dev/null && ! ls /Library/Fonts/MesloLGS* &> /dev/null; then
echo "π€ Installing MesloLGS Nerd Font..."
brew install --cask font-meslo-lg-nerd-font
echo "β MesloLGS Nerd Font installed"
else
echo "β MesloLGS Nerd Font already installed"
fi
echo ""
# Install Oh My Zsh if not already installed
if [ ! -d "$HOME/.oh-my-zsh" ]; then
echo "π Installing Oh My Zsh..."
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
echo "β Oh My Zsh installed"
else
echo "β Oh My Zsh already installed"
fi
echo ""
# Install Powerlevel10k theme
if [ ! -d "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" ]; then
echo "β‘ Installing Powerlevel10k theme..."
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
echo "β Powerlevel10k installed"
else
echo "β Powerlevel10k already installed"
fi
echo ""
# Get the directory where this script is located
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DOTFILES_DIR"
# Run individual setup scripts
echo "========================================="
echo "π Setting up individual tools..."
echo "========================================="
echo ""
bash setup-zsh.sh
echo ""
bash setup-nvim.sh
echo ""
bash setup-tmux.sh
echo ""
bash setup-wezterm.sh
echo ""
bash setup-lazygit.sh
echo ""
bash setup-kiro.sh
echo ""
echo "========================================="
echo "β¨ Installation complete!"
echo "========================================="
echo ""
echo "Next steps:"
echo "1. Restart your terminal or run: source ~/.zshrc"
echo "2. Open tmux and press backtick + I to install tmux plugins"
echo "3. Open nvim - plugins will auto-install on first launch"
echo "4. Configure Powerlevel10k by running: p10k configure"
echo ""