-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup
More file actions
executable file
·236 lines (192 loc) · 4.95 KB
/
setup
File metadata and controls
executable file
·236 lines (192 loc) · 4.95 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
221
222
223
224
225
#!/usr/bin/env bash
setup_reflector() {
sudo pacman -S reflector
echo 'Getting fastest mirrors'
sudo reflector --verbose --country 'United States' -l 20 -p https --sort rate --save /etc/pacman.d/mirrorlist
sudo pacman -Syy
}
pacman_tweaks() {
echo 'Enabling parallel downloads and colors'
sudo sed -i '/Color/s/^#//' /etc/pacman.conf
sudo sed -i '/Color/a ILoveCandy' /etc/pacman.conf
sudo sed -i "/\[multilib\]/,/Include/"'s/^#//' /etc/pacman.conf
sudo sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 25/g' /etc/pacman.conf
sudo pacman -Syy
}
setup_paru() {
echo 'Setting up Paru'
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
echo 'Remove paru folder'
cd ..
rm -rf paru
echo 'Update packages'
paru -Syy
}
setup_hyprland() {
echo 'Installing requested packages'
paru -S acpilight \
waybar \
blueman \
bluez \
bluez-utils \
chromium \
foot \
wireplumber \
linux-headers \
make \
neofetch \
nvidia-dkms \
pamixer \
pavucontrol \
ttf-jetbrains-mono-nerd \
ttf-nerd-fonts-symbols \
xdg-user-dirs \
playerctl \
wget \
nodejs \
npm \
power-profiles-daemon \
noto-fonts-cjk \
network-manager-applet \
gvfs \
xarchiver \
mako \
gnome-keyring \
rust \
rust-analyzer \
hyprland \
hyprpicker \
nvidia-utils \
sddm \
hyprcursor \
hyprgraphics \
hypridle \
hyprland-protocols \
hyprland-qt-support \
hyprland-qtutils \
hyprlock \
hyprpolkitagent \
hyprshot \
hyprsunset \
hyprutils \
hyprwayland-scanner \
xdg-desktop-portal-hyprland \
nautilus \
gnome-themes-extra \
libnvidia-egl-wayland \
fuzzel \
wofi \
grim \
swappy \
slurp \
echo 'Installing AUR packages'
paru -S candy-icons-git \
visual-studio-code-bin \
echo 'Enabling services'
sudo systemctl enable power-profiles-daemon.service
sudo systemctl enable sddm.service
sudo systemctl enable bluetooth.service
echo 'Add user to wheel and video groups'
sudo usermod -aG wheel $(whoami)
sudo usermod -aG video $(whoami)
echo 'Copying config files'
cp -r ./foot ~/.config
cp -r ./hypr ~/.config
cp -r ./mako ~/.config
cp -r ./waybar ~/.config
cp -r ./nvim ~/.config
}
setup_kde() {
echo 'Installing requested packages'
paru -S chromium \
linux-headers \
make \
ttf-nerd-fonts-symbols \
wget \
steam \
nodejs \
npm \
noto-fonts-cjk \
otf-monaspace-nerd \
neovim \
echo 'Installing AUR packages'
paru -S visual-studio-code-bin
echo 'Enabling services'
sudo systemctl enable bluetooth.service
echo 'Settings up neovim'
cp -r ./nvim ~/.config
}
setup_gnome() {
echo 'Installing requested packages'
paru -S chromium \
linux-headers \
nvidia-dkms \
ttf-nerd-fonts-symbols \
otf-monaspace-nerd \
wget \
steam \
nodejs \
npm \
noto-fonts-cjk \
power-profiles-daemon \
gnome-themes-extra \
echo 'Installing AUR packages'
paru -S visual-studio-code-bin \
echo 'Enabling services'
sudo systemctl enable bluetooth.service
sudo systemctl enable power-profiles-daemon.service
}
setup_nvidia() {
echo 'Setup nvidia.conf'
sudo touch /etc/modprobe.d/nvidia.conf
echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia.conf
echo "Updating mkinitcpio config with nvidia"
echo "
MODULES=(btrfs nvidia nvidia_modeset nvidia_uvm nvidia_drm)
BINARIES=(/usr/bin/btrfs)
FILES=()
HOOKS=(base udev autodetect keyboard keymap modconf block filesystems fsck)" | sudo tee /etc/mkinitcpio.conf
}
setup_bashrc() {
echo 'Copy bash config'
cp ./.bashrc ~/
}
main() {
echo "Welcome to the setup script, lets get started!"
read -p "Do you want to setup reflector (Y/N)?" reflector
if [ $reflector == 'Y' ] || [ $reflector == 'y' ]; then
setup_reflector
fi
read -p "Do you want to setup parallel downloads and colors (Y/N)?" pacman
if [ $pacman == 'Y' ] || [ $pacman == 'y' ]; then
pacman_tweaks
fi
read -p "Do you want to setup paru (Y/N)?" paru
if [ $paru == 'Y' ] || [ $paru == 'y' ]; then
setup_paru
fi
read -p "Do you want to setup hyprland (Y/N)?" hyprland
if [ $hyprland == 'Y' ] || [ $hyprland == 'y' ]; then
setup_hyprland
fi
read -p "Do you want to setup kde packages (Y/N)?" kde
if [ $kde == 'Y' ] || [ $kde == 'y' ]; then
setup_kde
fi
read -p "Do you want to setup gnome packages (Y/N)?" gnome
if [ $gnome == 'Y' ] || [ $gnome == 'y' ]; then
setup_gnome
fi
read -p "Do you want to setup nvidia drivers (Y/N)?" nvidia
if [ $nvidia == 'Y' ] || [ $nvidia == 'y' ]; then
setup_nvidia
fi
read -p "Do you want to setup bashrc (Y/N)?" bashrc
if [ $bashrc == 'Y' ] || [ $bashrc == 'y' ]; then
setup_bashrc
fi
}
main