forked from Keyitdev/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-on-arch.sh
executable file
·170 lines (157 loc) · 8.39 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
#!/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 --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 light 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 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
mkdir -p /usr/local/bin
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 gtk theme to /usr/share/themes.${no_color}"
sudo cp -r ./tokyonight_gtk /usr/share/themes
echo -e "${green}[*] Copying wallpapers to "$HOME"/Pictures/wallpapers.${no_color}"
cp -r ./wallpapers/* "$HOME"/Pictures/wallpapers
echo -e "${green}[*] Copying vsc configs.${no_color}"
cp -r ./vsc/* "$HOME"/.vscode-oss/extensions
cp ./vsc/settings.json "$HOME"/.config/Code\ -\ OSS/User
echo -e "${green}[*] Copying zsh configs.${no_color}"
sudo cp ./keyitdev.zsh-theme /usr/share/oh-my-zsh/custom/themes
cp ./.zshrc "$HOME"
}
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
}
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_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
}
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.\\nThe first 11 options are required for proper installation, do not uncheck them if you do not know what you are doing." 22 76 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 "Make Light executable, set zsh as default shell, update nvim extensions." on
12 "Install additional packages" off
13 "Install emoji fonts" off
14 "Install sddm with flower theme" off)
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) finishing;;
12) install_additional_pkgs;;
13) install_emoji_fonts;;
14) install_sddm;;
esac
done