2020-03-12 11:44:07 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2020-10-12 07:15:20 +02:00
|
|
|
set -euo pipefail
|
|
|
|
|
2020-04-10 13:12:35 +02:00
|
|
|
#ANY CHANGES TO THE INSTALLATION PROCEDURE SHOULD BE MADE HERE
|
|
|
|
|
2021-03-08 08:30:26 +01:00
|
|
|
# function to select theme
|
|
|
|
function func_seltheme {
|
|
|
|
cmd=(dialog --separate-output --checklist "Select theme (Only select one)" 22 76 16)
|
|
|
|
options=(1 "Nyarch" off # any option can be set to default to "on"
|
|
|
|
2 "Spaceengine Pink" off)
|
|
|
|
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
|
|
|
clear
|
|
|
|
for choice in $choices
|
|
|
|
do
|
|
|
|
case $choice in
|
|
|
|
1)
|
2021-03-08 13:13:19 +01:00
|
|
|
echo "nyarch" > "$HOME/.seltheme"
|
2021-03-08 08:30:26 +01:00
|
|
|
;;
|
|
|
|
2)
|
2021-03-08 13:13:19 +01:00
|
|
|
echo "space-pink" > "$HOME/.seltheme"
|
2021-03-08 08:30:26 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2021-02-16 18:34:17 +01:00
|
|
|
# check if user is root
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
|
|
sudo -l > /dev/null
|
|
|
|
fi
|
|
|
|
|
2020-03-12 11:44:07 +01:00
|
|
|
#change to home (does not show in terminal)
|
2020-10-12 07:18:24 +02:00
|
|
|
cd "$HOME"
|
2020-03-12 11:44:07 +01:00
|
|
|
|
|
|
|
#remove old installs
|
2020-04-18 23:36:24 +02:00
|
|
|
rm -rf ~/config
|
2020-03-12 11:44:07 +01:00
|
|
|
|
|
|
|
#clone this repo
|
2021-01-29 16:45:59 +01:00
|
|
|
git clone https://gitlab.com/RealStickman-arch/config.git &&
|
2020-03-12 11:44:07 +01:00
|
|
|
|
2021-03-09 17:09:23 +01:00
|
|
|
# make sure to use master branch
|
|
|
|
cd config
|
|
|
|
git checkout master
|
|
|
|
cd ..
|
|
|
|
|
2020-11-10 08:29:29 +01:00
|
|
|
# check if the install scripts are the same
|
2021-03-08 09:16:44 +01:00
|
|
|
# NOTE Arguments get passed automatically now
|
2021-01-29 17:07:45 +01:00
|
|
|
if ! cmp --silent "$HOME/scripts/arch-config.sh" "$HOME/config/scripts/arch-config.sh" ; then
|
2020-11-10 08:31:35 +01:00
|
|
|
echo Removed old config file and launched new one.
|
2021-03-08 13:09:12 +01:00
|
|
|
rm "$HOME/scripts/arch-config.sh" && cp "$HOME/config/scripts/arch-config.sh" "$HOME/scripts/" && bash ~/scripts/arch-config.sh "$@"
|
2020-11-10 08:29:29 +01:00
|
|
|
fi
|
|
|
|
|
2021-03-08 08:30:26 +01:00
|
|
|
# if no seltheme file exists, ask to select a theme
|
|
|
|
if [[ ! -f "$HOME/.seltheme" ]]; then
|
|
|
|
func_seltheme
|
|
|
|
fi
|
|
|
|
|
2021-03-08 08:34:35 +01:00
|
|
|
##############################
|
|
|
|
##### arguments #####
|
|
|
|
##############################
|
|
|
|
# handle arguments
|
2021-03-08 09:07:55 +01:00
|
|
|
if [[ "$#" -eq 1 ]]; then
|
2021-03-08 08:34:35 +01:00
|
|
|
# -t/--theme to change theme
|
|
|
|
if [[ "$1" == "-t" || "$1" == "--theme" ]]; then
|
|
|
|
func_seltheme
|
2021-03-08 09:10:05 +01:00
|
|
|
elif [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
|
|
|
echo "-h, --help Show help menu"
|
|
|
|
echo "-t, --theme Show theme selection screen"
|
2021-03-08 08:34:35 +01:00
|
|
|
fi
|
2021-03-08 09:11:16 +01:00
|
|
|
elif [[ "$#" -gt 1 ]]; then
|
|
|
|
echo "Too many arguments"
|
|
|
|
exit 1
|
2021-03-08 08:34:35 +01:00
|
|
|
fi
|
|
|
|
|
2020-05-16 11:58:49 +02:00
|
|
|
#delete previous backups
|
2020-11-10 08:29:29 +01:00
|
|
|
echo Removing old backup
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/old_dat ]]; then
|
|
|
|
rm -rf ~/old_dat
|
|
|
|
fi
|
2020-09-09 20:56:53 +02:00
|
|
|
|
2020-11-23 13:30:16 +01:00
|
|
|
# make new backup
|
2020-11-10 08:29:29 +01:00
|
|
|
echo Creating backup
|
2020-11-23 13:30:16 +01:00
|
|
|
mkdir -p ~/old_dat/.config || echo Directory already exists
|
|
|
|
mkdir -p ~/old_dat/.doom.d || echo Directory already exists
|
|
|
|
mkdir -p ~/old_dat/.easystroke || echo Directory already exists
|
|
|
|
mkdir -p ~/old_dat/.mozilla || echo Directory already exists
|
|
|
|
mkdir -p ~/old_dat/scripts || echo Directory already exists
|
2020-09-09 20:56:53 +02:00
|
|
|
|
2020-11-10 07:58:07 +01:00
|
|
|
# make subdirectories
|
2020-11-23 13:30:16 +01:00
|
|
|
mkdir -p ~/old_dat/.local/share || echo Directory already exists
|
2020-11-10 07:58:07 +01:00
|
|
|
|
2020-11-10 08:29:29 +01:00
|
|
|
##############################
|
|
|
|
# back stuff up
|
|
|
|
##############################
|
2020-09-14 10:41:53 +02:00
|
|
|
#config folders
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.config/MangoHud ]]; then
|
|
|
|
rsync -ah ~/.config/MangoHud ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/fish ]]; then
|
|
|
|
rsync -ah ~/.config/fish ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/gtk-3.0 ]]; then
|
|
|
|
rsync -ah ~/.config/gtk-3.0 ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/i3 ]]; then
|
|
|
|
rsync -ah ~/.config/i3 ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/neofetch ]]; then
|
|
|
|
rsync -ah ~/.config/neofetch ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/openbox ]]; then
|
|
|
|
rsync -ah ~/.config/openbox ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/polybar ]]; then
|
|
|
|
rsync -ah ~/.config/polybar ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/termite ]]; then
|
|
|
|
rsync -ah ~/.config/termite ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
if [[ -d ~/.config/variety ]]; then
|
|
|
|
rsync -ah ~/.config/variety ~/old_dat/.config/ || echo Directory does not exist
|
|
|
|
fi
|
2020-11-10 08:29:29 +01:00
|
|
|
|
|
|
|
# doom.d folder
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.doom.d ]]; then
|
|
|
|
rsync -ah ~/.doom.d ~/old_dat/ || echo Directory does not exist
|
|
|
|
fi
|
2020-11-10 08:29:29 +01:00
|
|
|
|
|
|
|
# easystroke
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.easystroke ]]; then
|
|
|
|
rsync -ah ~/.easystroke ~/old_dat/ || echo Directory does not exist
|
|
|
|
fi
|
2020-11-10 08:29:29 +01:00
|
|
|
|
|
|
|
# local folder
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.local/share/applications ]]; then
|
|
|
|
rsync -ah ~/.local/share/applications/ ~/old_dat/.local/share/ || echo Directory does not exist
|
|
|
|
fi
|
2020-11-10 08:29:29 +01:00
|
|
|
|
|
|
|
# mozilla
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.mozilla ]]; then
|
|
|
|
rsync -ah ~/.mozilla ~/old_dat/ || echo Directory does not exist
|
|
|
|
fi
|
2020-11-10 08:29:29 +01:00
|
|
|
|
|
|
|
# scripts
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/scripts ]]; then
|
|
|
|
rsync -ah ~/scripts ~/old_dat/ || echo Directory does not exist
|
|
|
|
fi
|
|
|
|
|
2020-05-18 08:09:49 +02:00
|
|
|
echo Made backups
|
2020-05-16 11:58:49 +02:00
|
|
|
|
2021-02-15 11:57:49 +01:00
|
|
|
# remove old templates
|
2021-03-09 11:35:55 +01:00
|
|
|
if [[ -d ~/.config/Vorlagen ]]; then
|
|
|
|
rm -r ~/.config/Vorlagen
|
|
|
|
fi
|
2021-02-15 11:57:49 +01:00
|
|
|
|
2020-05-18 08:09:49 +02:00
|
|
|
#copy folders
|
2020-07-30 12:58:38 +02:00
|
|
|
cp -r ~/config/.config/ ~/ &&
|
2020-11-09 19:52:31 +01:00
|
|
|
cp -r ~/config/.local/ ~/ &&
|
2020-11-13 18:27:07 +01:00
|
|
|
#cp -r ~/config/Dokumente ~/ &&
|
2020-07-30 12:58:38 +02:00
|
|
|
cp -r ~/config/.mozilla ~/ &&
|
|
|
|
cp -r ~/config/.easystroke ~/ &&
|
2020-09-09 20:56:53 +02:00
|
|
|
cp -r ~/config/.doom.d ~/ &&
|
2020-05-18 08:09:49 +02:00
|
|
|
echo Copied folders
|
2020-07-30 11:46:34 +02:00
|
|
|
|
2020-09-09 20:56:53 +02:00
|
|
|
#copy single files
|
2020-07-30 12:58:38 +02:00
|
|
|
cp -r ~/config/.bashrc ~/ &&
|
|
|
|
cp -r ~/config/.face ~/ &&
|
|
|
|
cp -r ~/config/.gtkrc-2.0 ~/ &&
|
2020-08-28 21:51:25 +02:00
|
|
|
cp -r ~/config/.gitconfig ~/ &&
|
2021-03-08 13:08:19 +01:00
|
|
|
#cp -r ~/config/.fehbg ~/ &&
|
2020-12-09 17:47:08 +01:00
|
|
|
cp -r ~/config/.tmux.conf ~/ &&
|
2021-01-09 10:02:55 +01:00
|
|
|
cp -r ~/config/.xinitrc ~/ &&
|
2020-05-18 08:09:49 +02:00
|
|
|
echo Copied files
|
2020-07-30 11:46:34 +02:00
|
|
|
|
2021-01-09 10:02:55 +01:00
|
|
|
# make .xinitrc executable
|
|
|
|
chmod +x ~/.xinitrc
|
|
|
|
|
2020-09-09 20:56:53 +02:00
|
|
|
#copy scripts
|
2020-07-30 12:58:38 +02:00
|
|
|
cp -r ~/config/scripts/ ~/
|
2020-09-09 20:56:53 +02:00
|
|
|
|
2020-11-23 13:30:16 +01:00
|
|
|
# copy cache
|
|
|
|
cp -r ~/config/.cache ~/
|
|
|
|
|
2020-04-10 13:03:58 +02:00
|
|
|
#copy stuff to /etc
|
2021-01-04 17:24:00 +01:00
|
|
|
sudo cp -r ~/config/etc /
|
|
|
|
#sudo rsync --exclude=default/grub ~/config/etc /etc/
|
2021-01-04 17:08:27 +01:00
|
|
|
|
2021-01-04 17:24:00 +01:00
|
|
|
#read -r -p "Do you want to overwrite the grub config? [y/N] " response
|
|
|
|
#if [[ "$response" =~ ^([yY][eE][sS][jJ]|[yY])$ ]]
|
|
|
|
#then
|
2021-01-04 17:08:27 +01:00
|
|
|
# copy config
|
2021-01-04 17:24:00 +01:00
|
|
|
# sudo cp ~/config/etc/default/grub /etc/default/
|
2021-01-04 17:08:27 +01:00
|
|
|
# update grub
|
2021-01-04 17:24:00 +01:00
|
|
|
# sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
|
#fi
|
2020-09-09 20:56:53 +02:00
|
|
|
|
2020-11-05 20:30:08 +01:00
|
|
|
# NOTE Distro specific stuff
|
2020-11-05 14:39:17 +01:00
|
|
|
distro=$(cat /etc/*-release | grep "^ID=")
|
|
|
|
if [ "$distro" == "ID=arcolinux" ]; then
|
2020-11-05 13:37:34 +01:00
|
|
|
sudo mv /etc/arco-pacman.conf /etc/pacman.conf
|
|
|
|
fi
|
2020-11-05 14:39:17 +01:00
|
|
|
if [ "$distro" == "ID=arch" ]; then
|
2020-11-05 13:37:34 +01:00
|
|
|
sudo mv /etc/arch-pacman.conf /etc/pacman.conf
|
|
|
|
fi
|
|
|
|
|
2020-04-16 21:05:43 +02:00
|
|
|
#copy old lightdm themes (and maybe other stuff, idk)
|
2020-04-18 23:36:24 +02:00
|
|
|
sudo cp -r ~/config/var /
|
2020-03-12 11:44:07 +01:00
|
|
|
|
2020-10-10 12:40:51 +02:00
|
|
|
#copy usr stuff
|
|
|
|
sudo cp -r ~/config/usr /
|
|
|
|
|
2020-10-27 16:32:26 +01:00
|
|
|
# copy xresources
|
2021-02-28 12:14:30 +01:00
|
|
|
cp ~/config/.Xresources ~/
|
2020-10-27 16:32:26 +01:00
|
|
|
|
2021-03-08 09:17:40 +01:00
|
|
|
# remove old themes folder
|
|
|
|
rm -rf ./themes
|
2021-03-08 08:13:47 +01:00
|
|
|
|
2021-03-08 08:12:19 +01:00
|
|
|
# install theme selected in themes file
|
|
|
|
git clone https://gitlab.com/RealStickman-arch/themes.git
|
|
|
|
seltheme="$(cat "$HOME/.seltheme")"
|
|
|
|
if [[ "$seltheme" == "nyarch" ]]; then
|
2021-03-09 17:32:32 +01:00
|
|
|
#cp -r "./themes/nyarch/i3" "$HOME/.config/"
|
|
|
|
cat "./themes/nyarch/i3/color" >> "$HOME/.config/i3/config"
|
2021-03-08 08:23:56 +01:00
|
|
|
cp -r "./themes/nyarch/polybar" "$HOME/.config/"
|
2021-03-08 20:45:16 +01:00
|
|
|
cp -r "./themes/nyarch/neofetch/lowpoly_flamegirl_blue.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
|
2021-03-08 13:06:51 +01:00
|
|
|
cp "./themes/.fehbg-nyarch" "$HOME/.fehbg"
|
2021-03-11 15:59:35 +01:00
|
|
|
#sed -i 's/^NAME=".*"/NAME="Rawrch Linyux"/' /etc/os-release
|
2021-03-08 08:12:19 +01:00
|
|
|
elif [[ "$seltheme" == "space-pink" ]]; then
|
2021-03-09 17:32:32 +01:00
|
|
|
#cp -r "./themes/space-pink/i3" "$HOME/.config/"
|
|
|
|
cat "./themes/space-pink/i3/color" >> "$HOME/.config/i3/config"
|
2021-03-08 08:23:56 +01:00
|
|
|
cp -r "./themes/space-pink/polybar" "$HOME/.config/"
|
2021-03-08 20:45:16 +01:00
|
|
|
cp -r "./themes/space-pink/neofetch/lowpoly_flamegirl_orange.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
|
2021-03-08 13:06:51 +01:00
|
|
|
cp "./themes/.fehbg-space-pink" "$HOME/.fehbg"
|
2021-03-08 08:12:19 +01:00
|
|
|
fi
|
|
|
|
rm -rf ./themes
|
|
|
|
|
2021-03-08 13:08:19 +01:00
|
|
|
# make fehbg executable
|
|
|
|
chmod +x ~/.fehbg
|
|
|
|
|
2021-01-09 09:36:00 +01:00
|
|
|
# download cat as cat
|
|
|
|
git clone https://github.com/RealStickman/bash-cat-with-cat.git
|
2021-01-09 09:37:41 +01:00
|
|
|
cp ./bash-cat-with-cat/cat.sh "$HOME/scripts/pieces/cat.sh"
|
2021-01-09 09:36:00 +01:00
|
|
|
rm -rf ./bash-cat-with-cat
|
|
|
|
|
2020-04-15 11:18:39 +02:00
|
|
|
#gimp plugins
|
2020-11-20 08:46:15 +01:00
|
|
|
#mkdir ~/.config/GIMP/ || echo Not creating directory
|
|
|
|
#mkdir ~/.config/GIMP/2.10/ || echo Not creating directory
|
|
|
|
mkdir -p ~/.config/GIMP/2.10/plug-ins/ || echo Not creating directory
|
2020-09-09 20:56:53 +02:00
|
|
|
rsync -ah ~/config/gimp-plugins/* ~/.config/GIMP/2.10/plug-ins/
|
2020-07-30 11:46:34 +02:00
|
|
|
|
2021-03-20 14:01:39 +01:00
|
|
|
# set systemd stuff for vmware (only if installed)
|
|
|
|
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
|
|
|
|
sudo systemctl enable --now vmware-networks-server.service
|
|
|
|
fi
|
|
|
|
|
2020-04-15 11:21:46 +02:00
|
|
|
#unzip gimp plugins
|
2020-04-15 11:27:07 +02:00
|
|
|
echo Unzipping gimp plugins
|
2020-10-12 20:09:57 +02:00
|
|
|
unzip -o ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip -d ~/.config/GIMP/2.10/plug-ins/ > /dev/null
|
|
|
|
rm ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip > /dev/null
|
2020-04-15 11:21:46 +02:00
|
|
|
echo Unzipped gimp plugins
|
2020-04-15 11:18:39 +02:00
|
|
|
|
2021-03-08 15:14:22 +01:00
|
|
|
# xfce settings
|
|
|
|
# disable screensaver & locker
|
|
|
|
/usr/bin/xfconf-query -c xfce4-session -n -t bool -p /startup/screensaver/enabled -s false
|
|
|
|
|
2020-03-12 11:44:07 +01:00
|
|
|
#make bash scripts executable
|
2020-11-09 20:10:03 +01:00
|
|
|
chmod +x -R ~/.config/polybar/
|
|
|
|
chmod +x -R ~/.config/i3/scripts
|
|
|
|
chmod +x -R ~/scripts
|
|
|
|
|
|
|
|
# make applications executable
|
|
|
|
chmod +x -R ~/.local/share/applications
|
2020-03-12 11:44:07 +01:00
|
|
|
|
|
|
|
#remove downloaded folder
|
2020-04-18 23:36:24 +02:00
|
|
|
rm -rf ~/config
|
2020-03-12 11:44:07 +01:00
|
|
|
|
2020-11-09 20:12:32 +01:00
|
|
|
# reload applications
|
|
|
|
update-desktop-database ~/.local/share/applications/
|
|
|
|
|
2020-09-09 20:56:53 +02:00
|
|
|
#sync doom-emacs
|
|
|
|
~/.emacs.d/bin/doom sync
|
|
|
|
|
2021-03-27 12:10:05 +01:00
|
|
|
# reload systemd user scripts
|
|
|
|
systemctl --user daemon-reload
|
|
|
|
|
2020-10-27 16:34:16 +01:00
|
|
|
# reload .Xresources
|
2021-01-29 20:03:02 +01:00
|
|
|
if [[ -f "$HOME/.Xresources" ]]; then
|
|
|
|
xrdb ~/.Xresources
|
|
|
|
fi
|
2020-10-27 16:34:16 +01:00
|
|
|
|
2020-12-07 10:39:46 +01:00
|
|
|
# execute feh
|
|
|
|
"$HOME/.fehbg"
|
|
|
|
|
2021-03-15 15:59:04 +01:00
|
|
|
#restart i3 in place, but only if i3 is running
|
|
|
|
if [[ "$(ps aux | grep "\si3\$")" ]]; then
|
|
|
|
i3 restart
|
|
|
|
fi
|
2020-03-12 11:44:07 +01:00
|
|
|
|
|
|
|
#output
|
|
|
|
echo Finished updating everything!
|
|
|
|
echo Launching new shell!
|
|
|
|
|
2021-03-31 15:34:32 +02:00
|
|
|
# remind user of cgroupsv2 if using podman
|
|
|
|
if [[ $(pacman -Q | grep podman) ]]; then
|
|
|
|
echo "Remember to set \"systemd.unified_cgroup_hierarchy=1\" in the kernel!!"
|
|
|
|
fi
|
|
|
|
|
2020-11-30 08:24:00 +01:00
|
|
|
# reload fish
|
|
|
|
exec fish
|
2020-11-17 21:22:06 +01:00
|
|
|
|
|
|
|
exit 0
|