-
Notifications
You must be signed in to change notification settings - Fork 41
/
install-on-arch.sh
executable file
·185 lines (171 loc) · 8.99 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
#!/bin/bash
# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
# Copyright (C) 2022 Keyitdev
config_directory="$HOME/.config"
fonts_directory="/usr/share/fonts"
scripts_directory="/usr/local/bin"
gtk_theme_directory="/usr/share/themes"
green='\033[0;32m'
no_color='\033[0m'
date=$(date +%s)
sudo pacman --noconfirm --needed -Sy dialog
system_update(){
echo -e "${green}[*] Doing a system update, cause stuff may break if it's not the latest version...${no_color}"
sudo pacman -Sy --noconfirm archlinux-keyring
sudo pacman --noconfirm -Syu
sudo pacman -S --noconfirm --needed base-devel wget git curl
}
install_aur_helper(){
if ! command -v "$aurhelper" &> /dev/null
then
echo -e "${green}[*] It seems that you don't have $aurhelper installed, I'll install that for you before continuing.${no_color}"
git clone https://aur.archlinux.org/"$aurhelper".git $HOME/.srcs/"$aurhelper"
(cd $HOME/.srcs/"$aurhelper"/ && makepkg -si)
else
echo -e "${green}[*] It seems that you already have $aurhelper installed, skipping.${no_color}"
fi
}
install_pkgs(){
echo -e "${green}[*] Installing packages with pacman.${no_color}"
sudo pacman -S --noconfirm --needed acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit alacritty btop code dunst feh firefox i3-gaps libnotify mpc mpd ncmpcpp nemo neofetch neovim pacman-contrib papirus-icon-theme picom polybar ranger rofi scrot slop xclip zathura zathura-pdf-mupdf zsh
}
install_aur_pkgs(){
echo -e "${green}[*] Installing packages with $aurhelper.${no_color}"
"$aurhelper" -S --noconfirm --needed light i3lock-color i3-resurrect ffcast oh-my-zsh-git
}
create_default_directories(){
echo -e "${green}[*] Copying configs to $config_directory.${no_color}"
mkdir -p "$HOME"/.config
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/share/themes
mkdir -p "$HOME"/Pictures/wallpapers
}
create_backup(){
echo -e "${green}[*] Creating backup of existing configs.${no_color}"
[ -d "$config_directory"/alacritty ] && mv "$config_directory"/alacritty "$config_directory"/alacritty_$date && echo "alacritty configs detected, backing up."
[ -d "$config_directory"/btop ] && mv "$config_directory"/btop "$config_directory"/btop_$date && echo "btop configs detected, backing up."
[ -d "$config_directory"/dunst ] && mv "$config_directory"/dunst "$config_directory"/dunst_$date && echo "dunst configs detected, backing up."
[ -d "$config_directory"/gtk-3.0 ] && mv "$config_directory"/gtk-3.0 "$config_directory"/gtk-3.0_$date && echo "gtk-3.0 configs detected, backing up."
[ -d "$config_directory"/i3 ] && mv "$config_directory"/i3 "$config_directory"/i3_$date && echo "i3 configs detected, backing up."
[ -d "$config_directory"/mpd ] && mv "$config_directory"/mpd "$config_directory"/mpd_$date && echo "mpd configs detected, backing up."
[ -d "$config_directory"/ncmpcpp ] && mv "$config_directory"/ncmpcpp "$config_directory"/ncmpcpp_$date && echo "ncmpcpp configs detected, backing up."
[ -d "$config_directory"/neofetch ] && mv "$config_directory"/neofetch "$config_directory"/neofetch_$date && echo "neofetch configs detected, backing up."
[ -d "$config_directory"/nvim ] && mv "$config_directory"/nvim "$config_directory"/nvim_$date && echo "nvim configs detected, backing up."
[ -d "$config_directory"/picom ] && mv "$config_directory"/picom "$config_directory"/picom_$date && echo "picom configs detected, backing up."
[ -d "$config_directory"/polybar ] && mv "$config_directory"/polybar "$config_directory"/polybar_$date && echo "polybar configs detected, backing up."
[ -d "$config_directory"/ranger ] && mv "$config_directory"/ranger "$config_directory"/ranger_$date && echo "ranger configs detected, backing up."
[ -d "$config_directory"/rofi ] && mv "$config_directory"/rofi "$config_directory"/rofi_$date && echo "rofi configs detected, backing up."
[ -d "$config_directory"/zathura ] && mv "$config_directory"/zathura "$config_directory"/zathura_$date && echo "zathura configs detected, backing up."
[ -d "$scripts_directory" ] && sudo mv "$scripts_directory" "$scripts_directory"_$date && echo "scripts ($scripts_directory) detected, backing up."
[ -f "$config_directory"/Code\ -\ OSS/User/settings.json ] && mv "$config_directory"/Code\ -\ OSS/User/settings.json "$config_directory"/Code\ -\ OSS/User/settings.json_$date && echo "Vsc configs detected, backing up."
[ -f /etc/fonts/local.conf ] && sudo mv /etc/fonts/local.conf /etc/fonts/local.conf_$date && echo "Fonts configs detected, backing up."
}
copy_configs(){
echo -e "${green}[*] Copying configs to $config_directory.${no_color}"
cp -r ./config/* "$config_directory"
}
copy_scripts(){
echo -e "${green}[*] Copying scripts to $scripts_directory.${no_color}"
sudo cp -r ./scripts/* "$scripts_directory"
}
copy_fonts(){
echo -e "${green}[*] Copying fonts to $fonts_directory.${no_color}"
sudo cp -r ./fonts/* "$fonts_directory"
fc-cache -fv
}
copy_other_configs(){
echo -e "${green}[*] Copying wallpapers to "$HOME"/Pictures/wallpapers.${no_color}"
cp -r ./wallpapers/* "$HOME"/Pictures/wallpapers
echo -e "${green}[*] Copying zsh configs.${no_color}"
sudo cp ./keyitdev.zsh-theme /usr/share/oh-my-zsh/custom/themes
cp ./.zshrc "$HOME"
}
install_additional_pkgs(){
echo -e "${green}[*] Installing additional packages with $aurhelper.${no_color}"
"$aurhelper" -S --noconfirm --needed dhcpcd gimp iwd libreoffice ntfs-3g ntp pulsemixer vnstat
}
install_emoji_fonts(){
echo -e "${green}[*] Installing emoji fonts with $aurhelper.${no_color}"
"$aurhelper" -S --noconfirm --needed noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
sudo cp -f ./local.conf /etc/fonts
fc-cache -fv
}
install_vsc(){
echo -e "${green}[*] Installing vsc extensions.${no_color}"
code --install-extension zhuangtongfa.Material-theme
echo -e "${green}[*] Copying vsc configs.${no_color}"
cp ./vsc/settings.json "$HOME"/.config/Code\ -\ OSS/User
}
install_gtk_theme(){
echo -e "${green}[*] Installing gtk theme.${no_color}"
git clone --depth 1 https://github.com/Fausto-Korpsvart/Rose-Pine-GTK-Theme
echo -e "${green}[*] Copying gtk theme to /usr/share/themes.${no_color}"
sudo cp -r ./Rose-Pine-GTK-Theme/themes/RosePine-Main-BL /usr/share/themes/RosePine-Main
mkdir -p "$HOME"/.config/gtk-4.0
sudo cp -r ./Rose-Pine-GTK-Theme/themes/RosePine-Main-BL/gtk-4.0/* "$HOME"/.config/gtk-4.0
}
install_sddm(){
echo -e "${green}[*] Installing sddm theme.${no_color}"
"$aurhelper" -S --noconfirm --needed qt5-graphicaleffects qt5-quickcontrols2 qt5-svg sddm
sudo systemctl enable sddm.service
sudo git clone https://github.com/keyitdev/sddm-flower-theme.git /usr/share/sddm/themes/sddm-flower-theme
sudo cp /usr/share/sddm/themes/sddm-flower-theme/Fonts/* /usr/share/fonts/
echo "[Theme]
Current=sddm-flower-theme" | sudo tee /etc/sddm.conf
}
finishing(){
echo -e "${green}[*] Chmoding light.${no_color}"
sudo chmod +s /usr/bin/light
echo -e "${green}[*] Setting Zsh as default shell.${no_color}"
chsh -s /bin/zsh
sudo chsh -s /bin/zsh
echo -e "${green}[*] Updating nvim extensions.${no_color}"
nvim +PackerSync
}
cmd=(dialog --clear --title "Aur helper" --menu "Firstly, select the aur helper you want to install (or have already installed)." 10 50 16)
options=(1 "yay" 2 "paru")
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
case $choices in
1) aurhelper="yay";;
2) aurhelper="paru";;
esac
cmd=(dialog --clear --separate-output --checklist "Select (with space) what script should do.\\nChecked options are required for proper installation, do not uncheck them if you do not know what you are doing." 26 86 16)
options=(1 "System update" on
2 "Install aur helper" on
3 "Install basic packages" on
4 "Install basic packages (aur)" on
5 "Create default directories" on
6 "Create backup of existing configs (to prevent overwritting)" on
7 "Copy configs" on
8 "Copy scripts" on
9 "Copy fonts" on
10 "Copy other configs (gtk theme, wallpaper, vsc configs, zsh configs)" on
11 "Install additional packages" off
12 "Install emoji fonts" off
13 "Install vsc theme" on
14 "Install gtk theme" on
15 "Install sddm with flower theme" off
16 "Make Light executable, set zsh as default shell, update nvim extensions." on)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices
do
case $choice in
1) system_update;;
2) install_aur_helper;;
3) install_pkgs;;
4) install_aur_pkgs;;
5) create_default_directories;;
6) create_backup;;
7) copy_configs;;
8) copy_scripts;;
9) copy_fonts;;
10) copy_other_configs;;
11) install_additional_pkgs;;
12) install_emoji_fonts;;
13) install_vsc;;
14) install_gtk_theme;;
15) install_sddm;;
16) finishing;;
esac
done