-
Notifications
You must be signed in to change notification settings - Fork 155
/
install-on-arch.sh
executable file
·235 lines (206 loc) · 7.56 KB
/
install-on-arch.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
#!/bin/env bash
set -e
echo "Welcome!" && sleep 2
#Default vars
HELPER="paru"
# does full system update
echo "Doing a system update, cause stuff may break if it's not the latest version..."
sudo pacman --noconfirm -Syu
echo "###########################################################################"
echo "Will do stuff, get ready"
echo "###########################################################################"
# install base-devel if not installed
sudo pacman -S --noconfirm --needed base-devel wget git
# choose video driver
echo "1) xf86-video-intel 2) xf86-video-amdgpu 3) nvidia 4) Skip"
read -r -p "Choose you video card driver(default 1)(will not re-install): " vid
case $vid in
[1])
DRI='xf86-video-intel'
;;
[2])
DRI='xf86-video-amdgpu'
;;
[3])
DRI='nvidia nvidia-settings nvidia-utils'
;;
[4])
DRI=""
;;
[*])
DRI='xf86-video-intel'
;;
esac
# install xorg if not installed
sudo pacman -S --noconfirm --needed rofi feh xorg xorg-xinit xorg-xinput $DRI xmonad
# install fonts
mkdir -p ~/.local/share/fonts
mkdir -p ~/.srcs
cp -r ./fonts/* ~/.local/share/fonts/
fc-cache -f
clear
echo "We need an AUR helper. It is essential. 1) paru 2) yay"
read -r -p "What is the AUR helper of your choice? (Default is paru): " num
if [ $num -eq 2 ]
then
HELPER="yay"
fi
if ! command -v $HELPER &> /dev/null
then
echo "It seems that you don't have $HELPER installed, I'll install that for you before continuing."
git clone https://aur.archlinux.org/$HELPER.git ~/.srcs/$HELPER
(cd ~/.srcs/$HELPER/ && makepkg -si )
fi
git clone https://github.com/jonaburg/picom ~/.srcs/picom
(cd ~/.srcs/picom/ && makepkg -si )
$HELPER -S \
acpi \
candy-icons-git \
wmctrl \
alacritty \
playerctl \
dunst \
xmonad-contrib \
jq \
xclip \
maim \
rofi-greenclip \
xautolock \
betterlockscreen
# Hack to make tint2 work for now.
if ! [ -f /usr/lib/libasan.so.6 ]; then
sudo ln -s /usr/lib/libasan.so.8 /usr/lib/libasan.so.6
fi
#install custom picom config file
mkdir -p ~/.config/
# cd .config/
# git clone https://gist.github.com/f70dea1449cfae856d42b771912985f9.git ./picom
if [ -d ~/.config/rofi ]; then
echo "Rofi configs detected, backing up..."
mkdir ~/.config/rofi.old && mv ~/.config/rofi/* ~/.config/rofi.old/
cp -r ./config/rofi/* ~/.config/rofi;
else
echo "Installing rofi configs..."
mkdir ~/.config/rofi && cp -r ./config/rofi/* ~/.config/rofi;
fi
sleep 5
echo "1)1366 x 768 2)1920 x 1080 3)2560 x 1440"
read -r -p "Choose your screen resolution: " res
case $res in
[1])
EWW_DIR='config/eww-1366'
;;
[2])
EWW_DIR='config/eww-1920'
;;
[3])
EWW_DIR='config/eww-2560'
;;
[*])
EWW_DIR='config/eww-1366'
;;
esac
if [ -d ~/.config/eww ]; then
echo "Eww configs detected, backing up..."
mkdir ~/.config/eww.old && mv ~/.config/eww/* ~/.config/eww.old/
cp -r ./$EWW_DIR/* ~/.config/eww;
else
echo "Installing eww configs..."
mkdir ~/.config/eww && cp -r ./$EWW_DIR/* ~/.config/eww;
fi
if [ -f ~/.config/picom.conf ]; then
echo "Picom configs detected, backing up..."
cp ~/.config/picom.conf ~/.config/picom.conf.old;
cp ./config/picom.conf ~/.config/picom.conf;
else
echo "Installing picom configs..."
cp ./config/picom.conf ~/.config/picom.conf;
fi
if [ -f ~/.config/alacritty.yml ]; then
echo "Alacritty configs detected, backing up..."
cp ~/.config/alacritty.yml ~/.config/alacritty.yml.old;
cp ./config/alacritty.yml ~/.config/alacritty.yml;
else
echo "Installing alacritty configs..."
cp ./config/alacritty.yml ~/.config/alacritty.yml;
fi
if [ -d ~/.config/dunst ]; then
echo "Dunst configs detected, backing up..."
mkdir ~/.config/dunst.old && mv ~/.config/dunst/* ~/.config/dunst.old/
cp -r ./config/dunst/* ~/.config/dunst;
else
echo "Installing dunst configs..."
mkdir ~/.config/dunst && cp -r ./config/dunst/* ~/.config/dunst;
fi
if [ -d ~/wallpapers ]; then
echo "Adding wallpaper to ~/wallpapers..."
cp ./wallpapers/yosemite-lowpoly.jpg ~/wallpapers/;
else
echo "Installing wallpaper..."
mkdir ~/wallpapers && cp -r ./wallpapers/* ~/wallpapers/;
fi
if [ -d ~/.config/tint2 ]; then
echo "Tint2 configs detected, backing up..."
mkdir ~/.config/tint2.old && mv ~/.config/tint2/* ~/.config/tint2.old/
cp -r ./config/tint2/* ~/.config/tint2;
else
echo "Installing tint2 configs..."
mkdir ~/.config/tint2 && cp -r ./config/tint2/* ~/.config/tint2;
fi
if [ -d ~/.xmonad ]; then
echo "XMonad configs detected, backing up..."
mkdir ~/.xmonad.old && mv ~/.xmonad/* ~/.xmonad.old/
cp -r ./xmonad/* ~/.xmonad/;
else
echo "Installing xmonad configs..."
mkdir ~/.xmonad && cp -r ./xmonad/* ~/.xmonad;
fi
if [ -d ~/bin ]; then
echo "~/bin detected, backing up..."
mkdir ~/bin.old && mv ~/bin/* ~/bin.old/
cp -r ./bin/* ~/bin;
clear
else
echo "Installing bin scripts..."
mkdir ~/bin && cp -r ./bin/* ~/bin/;
clear
SHELLNAME=$(echo $SHELL | grep -o '[^/]*$')
case $SHELLNAME in
bash)
if [[ ":$PATH:" == *":$HOME/bin:"* ]]; then
echo "Looks like $HOME/bin is not on your PATH, adding it now."
echo "export PATH=\$PATH:\$HOME/bin" >> $HOME/.bashrc
else
echo "$HOME/bin is already in your PATH. Proceeding."
fi
;;
zsh)
if [[ ":$PATH:" == *":$HOME/bin:"* ]]; then
echo "Looks like $HOME/bin is not on your PATH, adding it now."
echo "export PATH=\$PATH:\$HOME/bin" >> $HOME/.zshrc
else
echo "$HOME/bin is already in your PATH. Proceeding."
fi
;;
fish)
echo "I see you use fish. shahab96 likes your choice."
fish -c fish_add_path -P $HOME/bin
;;
*)
echo "Please add: export PATH='\$PATH:$HOME/bin' to your .bashrc or whatever shell you use."
echo "If you know how to add stuff to shells other than bash, zsh and fish please help out here!"
esac
fi
# done
echo "PLEASE MAKE .xinitrc TO LAUNCH, or just use your Display Manager (ie. lightdm or sddm, etc.)" | tee ~/Note.txt
printf "\n" >> ~/Note.txt
echo "For startpage, copy the startpage directory into wherever you want, and set it as new tab in firefox settings." | tee -a ~/Note.txt
echo "For more info on startpage (Which is a fork of Prismatic Night), visit https://github.com/dbuxy218/Prismatic-Night#Firefoxtheme" | tee -a ~/Note.txt
echo "ALL DONE! Reboot for all changes to take place!" | tee -a ~/Note.txt
echo "Open issues on github or ask me on discord or whatever if you face issues." | tee -a ~/Note.txt
echo "Install Museo Sans as well. From Adobe I believe." | tee -a ~/Note.txt
echo "If the bar doesn't work, use tint2conf and set stuff up, if you're hopelessly lost, open an issue." | tee -a ~/Note.txt
echo "These instructions have been saved to ~/Note.txt. Make sure to go through them."
echo "For instructions regarding usage on VirtualMachines, please refer to the VM folder of the repo." | tee -a ~/Note.txt
sleep 5
xmonad --recompile