-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
executable file
·155 lines (122 loc) · 3.29 KB
/
install.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
#!/usr/bin/env sh
set -eo pipefail
dot=$(dirname $(readlink -f "$0"))
config="${XDG_CONFIG_HOME:-$HOME/.config}"
packages() {
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -S $(cat ./packages/packages.pacman)
tmp=$(mktemp -d)
(
cd "$tmp"
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -is
)
rm -rf "$tmp"
yay -Syy
yay -S --noconfirm $(cat ./packages/packages.aur)
}
zsh() {
mkdir -p "$config/zsh"
ln -s "$dot/zsh/zshrc.sh" "$config/zsh/.zshrc"
ln -s "$dot/zsh/zshenv.sh" "$HOME/.zshenv"
chsh -s $(which zsh)
}
alacritty() {
mkdir -p "$config/alacritty"
ln -s "$dot/alacritty/alacritty.toml" "$config/alacritty/alacritty.toml"
}
electron() {
ln -s "$dot/electron/electron-flags.conf" "$config/electron-flags.conf"
}
firefox() {
xdg-settings set default-web-browser firefox.desktop
}
git() {
mkdir -p "$config/git"
envsubst < "$dot/git/gitconfig.ini" > "$config/git/config"
}
kanshi() {
mkdir -p "$config/kanshi"
ln -s "$dot/kanshi/kanshi.config" "$config/kanshi/config"
}
mako() {
mkdir -p "$config/mako"
ln -s "$dot/mako/mako.ini" "$config/mako/config"
}
node() {
git clone https://github.com/lukechilds/zsh-nvm.git "$ZSH/custom/plugins/zsh-nvm" --depth=1
nvm install --lts
nvm use --lts
corepack enable pnpm
pnpm install -g typescript tsx nodemon
}
podman() {
mkdir -p "$config/containers"
ln -s "$dot/podman/registries.conf" "$config/containers/registries.conf"
}
sqlite() {
ln -sf "$dot/sqlite/sqliterc" "$HOME/.sqliterc"
}
starship() {
mkdir -p "$config/starship"
ln -s "$dot/starship/starship.toml" "$config/starship/starship.toml"
}
sway() {
mkdir -p "$config/sway"
ln -s "$dot/sway/config.sway" "$config/sway/config"
ln -s "$dot/sway/config.d" "$config/sway/config.d"
ln -s "$dot/sway/scripts" "$config/sway/scripts"
}
systemd() {
sudo systemctl enable reflector.timer
sudo systemctl enable systemd-timesyncd.service
mkdir -p "$config/systemd/user"
for unit in $(ls "$dot/systemd"); do
ln -s "$dot/systemd/$unit" "$config/systemd/user/$unit"
done
}
vscode() {
dir="$config/VSCodium/User"
mkdir -p "$dir"
ln -s "$dot/vscode/settings.json" "$dir/settings.json"
ln -s "$dot/vscode/keybindings.json" "$dir/keybindings.json"
ln -s "$dot/vscode/snippets.json" "$dir/snippets.json"
extensions=(
bradlc.vscode-tailwindcss
cardinal90.multi-cursor-case-preserve
catppuccin.catppuccin-vsc
Catppuccin.catppuccin-vsc
dbaeumer.vscode-eslint
esbenp.prettier-vscode
PKief.material-icon-theme
sleistner.vscode-fileutils
streetsidesoftware.code-spell-checker
streetsidesoftware.code-spell-checker-french
)
# not available with vscodium
# Anjali.clipboard-history
# dbankier.vscode-quick-select
for extension in "${extensions[@]}"; do
vscodium --install-extension "$extension"
done
}
waybar() {
mkdir -p "$config/waybar"
ln -s "$dot/waybar/waybar.jsonc" "$config/waybar/config.jsonc"
ln -s "$dot/waybar/waybar.css" "$config/waybar/style.css"
}
wofi() {
mkdir -p "$config/wofi"
ln -s "$dot/wofi/wofi.ini" "$config/wofi/config"
ln -s "$dot/wofi/wofi.css" "$config/wofi/style.css"
}
xdg() {
ln -s "$dot/xdg/user-dirs.dirs" "$config/user-dirs.dirs"
}
if [ -n "$1" ]; then
"$1"
else
declare -F | sed 's/declare -f //'
fi