/
pacstrap.sh
executable file
·237 lines (220 loc) · 3.9 KB
/
pacstrap.sh
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
#!/bin/bash
set -euo pipefail
# One time pacman dependency install script
# Meant to run after a fresh arch install
# but after choosing drivers and stuff (see bootstrap.yml)
install_tools() {
echo "Installing ${1}"
# shellcheck disable=SC2068
sudo pacman -S --needed ${@:2}
}
shell=(
bats
keychain
pass
pwgen
man-pages
man-db
zsh
# avoiding zinit in favour of common main plugins
zsh-autosuggestions
zsh-syntax-highlighting
)
install_tools "shell" "${shell[@]}"
# collecting tools by language
rust=(
# tools
alacritty
bat
choose
ripgrep
eza
tokei
fd
grex
git-delta
xsv
hyperfine
vivid
sd
procs
dust
starship
zoxide
yazi
bandwhich
lychee
# skim
ncspot
helix
genact
zellij
# development
rustup
rust-analyzer
cargo-release
cargo-outdated
cargo-edit
cargo-audit
cargo-deny
cargo-binstall
cargo-tarpaulin
)
install_tools "rust" "${rust[@]}"
# partial dev deps + python tooling evacuated from pip install --user
# after the --break-system-packages change
python=(
# tools
asciinema
yamllint
yt-dlp
ranger
# development
python-pip
#python-pipenv
python-requests
#python-pytest
#ipython
pypy3
ruff
mypy
)
install_tools "python" "${python[@]}"
go=(
# tools
fzf
docker
docker-buildx
#docker-compose (can generally use tilt)
#ctop
kustomize
kubectl
helm
k9s
github-cli
terraform
# development
go
)
install_tools "go" "${go[@]}"
ccpp=(
# tools
bc
btop
datamash
git
jq
powertop
protobuf
# audio
mpv
playerctl
#mpv-mpris (maybe.. aur)
#mpd - using mpris/playerctl in general
#ncmpcpp - ditto, replaced by ncspot
wf-recorder
#vlc
# development
cmake
clang
compiler-rt
mold
#llvm
#musl
)
install_tools "ccpp" "${ccpp[@]}"
lang=(
bash-language-server
marksman # f# language server for markdown
yaml-language-server
)
install_tools "language servers" "${lang[@]}"
# -----------------------------------------------------------------------------
# misc desktop related that's not classified by language (generally c/cpp)
# -----------------------------------------------------------------------------
biggui=(
chromium
firefox
#chrome from aur
browserpass
musescore
steam
signal-desktop
discord
)
install_tools "biggui" "${biggui[@]}"
gfx=(
feh
gimp
#gthumb (lots of deps..)
#gedit
imagemagick
# image optimizers
pngquant
oxipng
)
install_tools "gfx" "${gfx[@]}"
fonts=(
ttf-ubuntu-font-family
ttf-inconsolata-nerd
otf-ipafont # japanese
adobe-source-han-sans-kr-fonts # korean
#fonts-tlwg # thai AUR
wqy-microhei # chinese
noto-fonts-emoji # google's emoji font
anthy # japanese input method
)
install_tools "fonts" "${fonts[@]}"
system=(
openssh
rsync
strace
perf
lsof
lm_sensors # temperature/sensor dump from motherboard
#yubikey-manager
#yubikey-manager-qt
)
install_tools "system" "${system[@]}"
network=(
#nmap
net-tools # netstat
bind-tools # contains dig / nslookup
#traceroute
#bmon
#trickle
nethogs
#trickle (aur)
#libmicrodns # vlc cast: https://wiki.archlinux.org/index.php/VLC_media_player#Chromecast_support to enable mdns
# wifi
#iwd
#create_ap (aur)
)
install_tools "network" "${network[@]}"
filesystem=(
#ntfs-3g
#nemo-fileroller
#nemo-share
#gvfs-smb
#mtpfs # kindle
#android-file-transfer
#gptfdisk
udisks2 # easy usb mount
udiskie # auto udisk2 - python!
# ebooks
#poppler
#calibre
)
install_tools "filesystem" "${filesystem[@]}"
# Non-wayland bootstrap AUR deps.
# Not automated, just listing here.
# shellcheck disable=SC2034
aur=(
slides # terminal presentation framework
ueberzugpp # image rendering for yazi + alacritty
dyff # kubernetes GVK aware diffing
rancher-k3d-bin # k3d from rancher's own repo: https://github.com/k3d-io/k3d/blob/main/deploy-aur.sh
browserpass-chrome
#ckb-next # corsair mouse things
uim # japanese input method
)