-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·220 lines (185 loc) · 7.13 KB
/
install.sh
File metadata and controls
executable file
·220 lines (185 loc) · 7.13 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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
#!/usr/bin/env bash
# ---------------------------------------------
# Install command-line tools using Homebrew.
# ---------------------------------------------
# Install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo >> /Users/diego/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/diego/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
brew update
brew upgrade
# ---------------------------------------------
# Basics
# ---------------------------------------------
brew install coreutils # gnu utils
# brew install bash
brew install zsh
brew install git
brew install fish
sudo git lfs install --system
# Fisher (plugin manager of fish)
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
# Tide (prompt for fish)
fisher install IlanCosman/tide@v6
# ---------------------------------------------
# For dotfiles symlinks
# ---------------------------------------------
brew install stow
# NODEJS (yarn also required for some nvim plugins).
# Move global to have all permissions (eg. claude complaints otherwise)
# brew install node
# brew install yarn
# mkdir -p /Users/diego/.npm-global
# npm -g config set prefix /Users/diego/.npm-global
brew install node
curl -fsSL https://get.pnpm.io/install.sh | sh -
pnpm env use --global 22
# ---------------------------------------------
# Terminal/zsh
# ---------------------------------------------
# brew install --cask kitty
brew install ripgrep
brew install fzf
brew install yazi
brew install resvg # see svg in yazi
brew install poppler # pdf in yazi
brew install imagemagick
brew install lazygit
brew install git-delta # lazygit diff theme # todo: remove if hunkdiff gets support
pnpm add -g hunkdiff # better diff tool 'hunk diff FILE' #todo: check integration with lazygit or jj
brew install fd
brew install zoxide
brew install tree
brew install gum
# ---------------------------------------------
# Aerospace
# ---------------------------------------------
# brew install --cask nikitabobko/tap/aerospace
# brew install borders
# ---------------------------------------------
# Neovim
# ---------------------------------------------
brew install neovim
brew install luarocks
pnpm i -g jshint # for javascript linting in nvim
brew install tflint # terraform lint
# ---------------------------------------------
# Fonts
# ---------------------------------------------
brew install --cask font-monaspace
brew install --cask font-jetbrains-mono
brew install --cask font-fira-code
# brew install --cask font-symbols-only-nerd-font # font for kitty
# ---------------------------------------------
# Tools
# ---------------------------------------------
brew install dust
brew install tmux
brew install htop
brew install php # for Alfred workflows
# brew install yt-dlp # like youtube-dl
brew install qlstephen # quicklook files
brew install --cask jupyter-notebook-viewer
brew install jq # json tool! Also required for formatting in nvim
brew install yq # like jq, also for yaml. Often used by coding agents
brew install parallel
# ---------------------------------------------
# AI
# ---------------------------------------------
brew install aichat
curl -fsSL https://opencode.ai/install | bash
brew install codex
curl -fsSL https://claude.ai/install.sh | bash
# for document parsing skill of liteparse
npm i -g @llamaindex/liteparse
brew install imagemagick # to let liteparse parse images
brew install --cask libreoffice # to let liteparse parse documents
# ---------------------------------------------
# Programming Languages and Frameworks, work
# ---------------------------------------------
# GCLOUD
brew install google-cloud-sdk
# PYTHON: uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# jupytext working in neovim
uv tool install jupytext
uv tool install tiktoken-cli
# RUST
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# install proximity-sort: for fzf and ALT-T
cargo install proximity-sort
echo "👉 Install docker and colima"
brew install docker docker-credential-helper docker-buildx docker-completion docker-compose
brew install colima
brew install qemu
# OTHERS
brew install openssl
brew install ngrok
# brew install terraform
# brew install jmeter
# brew install gcc
# JAVA
# brew install maven
# brew install jenv # probably avoid openjdk
# NOT SURE WIREGUARD IS NEEDED. Install app
# brew install wireguard-go
# brew install wireguard-tools
# ---------------------------------------------
# Remove outdated versions from the cellar
# ---------------------------------------------
brew cleanup
# ---------------------------------------------
# Global gitignore
# ---------------------------------------------
echo "Adding things to global gitignore"
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
# ---------------------------------------------
# Initialize a few things
# ---------------------------------------------
echo "Making a Dev folder if it doesn't already exist"
mkdir -p "$HOME/Dev"
echo "Making it also inside Documents for clous synched ones"
mkdir -p "$HOME/Documents/Dev"
echo "Making a Playground folder"
mkdir -p "$HOME/Dev/plg"
echo "Link the iCloud Obsidian dir to the home dir"
ln -s "$HOME/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note" "$HOME/notes"
# ---------------------------------------------
# Colima with docker
# ---------------------------------------------
mkdir -p ~/.docker/cli-plugins/
ln -sfn $HOMEBREW_PREFIX/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
ln -sfn $(which docker-buildx) ~/.docker/cli-plugins/docker-buildx
docker buildx install
# ---------------------------------------------
# MacOS settings
# https://macos-defaults.com/
# ---------------------------------------------
defaults write com.apple.finder "FXPreferredViewStyle" -string "Nlsv"
defaults write com.apple.finder "FXRemoveOldTrashItems" -bool "true"
defaults write com.apple.finder "FXEnableExtensionChangeWarning" -bool "false"
defaults write NSGlobalDomain "AppleShowAllExtensions" -bool "true"
defaults write NSGlobalDomain "NSCloseAlwaysConfirmsChanges" -bool "false"
killall Finder
defaults write com.apple.AppleMultitouchTrackpad "FirstClickThreshold" -int "0"
defaults write com.apple.dock "expose-group-apps" -bool "true"
killall Dock
defaults write com.apple.Music "userWantsPlaybackNotifications" -bool "false"
killall Music
defaults write com.apple.LaunchServices "LSQuarantine" -bool "false"
# ---------------------------------------------
# Rectangle custom settings
# ---------------------------------------------
defaults write com.knollsoft.Rectangle almostMaximizeHeight -float 0.8
defaults write com.knollsoft.Rectangle almostMaximizeWidth -float 0.6
defaults write com.knollsoft.Rectangle sizeOffset -float 150
defaults write com.knollsoft.Rectangle applyGapsToMaximize -int 3
# ---------------------------------------------
# Manual actions
# ---------------------------------------------
echo "⚠️ Proceed with manual steps from README.md"