Files
dotfiles/install-on-arch.sh
T

246 lines
8.5 KiB
Bash
Executable File

#!/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) xf86-video-amdgpu and nvidia 5) xf86-video-amdgpu and xf86-video-intel 6) 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="xf86-video-amdgpu nvidia nvidia-settings nvidia-utils"
;;
[5])
DRI="xf86-video-amdgpu xf86-video-intel"
;;
[6])
DRI=""
;;
[*])
DRI='xf86-video-intel'
;;
esac
# install basics packages
sudo pacman -S --noconfirm --needed i3-gaps i3blocks i3lock kitty zsh rofi dunst feh mpd ncmpcpp light xclip scrot picom imagemagick curl neovim ranger papirus-icon-theme pulseaudio pulseaudio-alsa pulsemixer alsa-utils xorg xorg-xinit xorg-server libnotify sddm btop pacman-contrib $DRI
# install optional programs
echo "Install no required but usefull programs? (Code, iwd, libreoffice, firefox etc."
read -r -p "1) Yes 2) Nope" INSTALL_PROGRAMS
if [ $INSTALL_PROGRAMS -eq 1 ]
then
sudo pacman -S --noconfirm --needed code iwd dhcpcd ntfs-3g libreoffice firefox nautilus gimp
fi
# install emoji fonts
echo "Install emoji fonts?"
read -r -p "1) Yes 2) Nope" INSTALL_FONTS
if [ $INSTALL_FONTS -eq 1 ]
then
sudo pacman -S --noconfirm --needed noto-fonts noto-fonts-emoji noto-fonts-extra noto-fonts-cjk
if [ -f /etc/fonts/local.conf ]; then
echo "Fonts configs detected, backing up..."
sudo cp /etc/fonts/local.conf /etc/fonts/local.conf.old
sudo cp ./config/local.conf /etc/fonts/;
else
echo "Installing fonts configs..."
sudo cp ./config/local.conf /etc/fonts/;
fi
fc-cache -f
fi
# make light executable
sudo chmod +s /usr/bin/light
# install fonts
mkdir -p ~/.local/share/fonts
cp -r ./fonts/* ~/.local/share/fonts/
fc-cache -f
clear
# install scripts
sudo mkdir -p /usr/local/bin
sudo cp -r ./scripts/* /usr/local/bin
sudo cp -r ./themes/ /usr/local/bin/
# create default folders
mkdir -p ~/.srcs
mkdir -p ~/Pictures/screenshots/rofi
mkdir -p ~/Videos/rofi
mkdir -p ~/Music/rofi
# copy wallpapers
mkdir -p ~/Pictures/wallpapers
cp -r ./wallpapers/* ~/Pictures/wallpapers
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
$HELPER -S acpi \
polybar \
ffcast \
slop
mkdir -p ~/.config/
if [ -d ~/.config/dunst ]; then
echo "Dunst configs detected, backing up..."
mkdir -p ~/.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 ~/.config/gtk-3.0 ]; then
echo "Gtk-3.0 configs detected, backing up..."
mkdir -p ~/.config/gtk-3.0.old && mv ~/.config/gtk-3.0/* ~/.config/gtk-3.0.old/
cp -r ./config/gtk-3.0/* ~/.config/gtk-3.0;
else
echo "Installing gtk-3.0 configs..."
mkdir ~/.config/gtk-3.0 && cp -r ./config/gtk-3.0/* ~/.config/gtk-3.0;
fi
if [ -d ~/.config/i3 ]; then
echo "I3 configs detected, backing up..."
mkdir -p ~/.config/i3.old && mv ~/.config/i3/* ~/.config/i3.old/
cp -r ./config/i3/* ~/.config/i3;
else
echo "Installing i3 configs..."
mkdir ~/.config/i3 && cp -r ./config/i3/* ~/.config/i3;
fi
if [ -d ~/.config/mpd ]; then
echo "MPD configs detected, backing up..."
mkdir -p ~/.config/mpd.old && mv ~/.config/mpd/* ~/.config/mpd.old/
cp -r ./config/mpd/* ~/.config/mpd;
else
echo "Installing mpd configs..."
mkdir ~/.config/mpd && cp -r ./config/mpd/* ~/.config/mpd;
fi
if [ -d ~/.config/ncmpcpp ]; then
echo "Ncmpcpp configs detected, backing up..."
mkdir -p ~/.config/ncmpcpp.old && mv ~/.config/ncmpcpp/* ~/.config/ncmpcpp.old/
cp -r ./config/ncmpcpp/* ~/.config/ncmpcpp;
else
echo "Installing ncmpcpp configs..."
mkdir ~/.config/ncmpcpp && cp -r ./config/ncmpcpp/* ~/.config/ncmpcpp;
fi
if [ -d ~/.config/picom ]; then
echo "Picom configs detected, backing up..."
mkdir -p ~/.config/picom.old && mv ~/.config/picom/* ~/.config/picom.old/
cp -r ./config/picom/* ~/.config/picom;
else
echo "Installing picom configs..."
mkdir ~/.config/picom && cp -r ./config/picom/* ~/.config/picom;
fi
if [ -d ~/.config/polybar ]; then
echo "Polybar configs detected, backing up..."
mkdir -p ~/.config/polybar.old && mv ~/.config/polybar/* ~/.config/polybar.old/
cp -r ./config/polybar/* ~/.config/polybar;
else
echo "Installing polybar configs..."
mkdir ~/.config/polybar && cp -r ./config/polybar/* ~/.config/polybar;
fi
if [ -d ~/.config/ranger ]; then
echo "Ranger configs detected, backing up..."
mkdir -p ~/.config/ranger.old && mv ~/.config/ranger/* ~/.config/ranger.old/
cp -r ./config/ranger/* ~/.config/ranger;
else
echo "Installing ranger configs..."
mkdir ~/.config/ranger && cp -r ./config/ranger/* ~/.config/ranger;
fi
if [ -d ~/.config/btop ]; then
echo "Btop configs detected, backing up..."
mkdir -p ~/.config/btop.old && mv ~/.config/btop/* ~/.config/btop.old/
cp -r ./config/btop/* ~/.config/btop;
else
echo "Installing btop configs..."
mkdir ~/.config/btop && cp -r ./config/btop/* ~/.config/btop;
fi
if [ -d ~/.config/neofetch ]; then
echo "Neofetch configs detected, backing up..."
mkdir -p ~/.config/neofetch.old && mv ~/.config/neofetch/* ~/.config/neofetch.old/
cp -r ./config/neofetch/* ~/.config/neofetch;
else
echo "Installing neofetch configs..."
mkdir ~/.config/neofetch && cp -r ./config/neofetch/* ~/.config/neofetch;
fi
if [ -d ~/.config/kitty ]; then
echo "Kitty configs detected, backing up..."
mkdir -p ~/.config/kitty.old && mv ~/.config/kitty/* ~/.config/kitty.old/
cp -r ./config/kitty/* ~/.config/kitty;
else
echo "Installing kitty configs..."
mkdir ~/.config/kitty && cp -r ./config/kitty/* ~/.config/kitty;
fi
if [ -d ~/.config/rofi ]; then
echo "Rofi configs detected, backing up..."
mkdir -p ~/.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
if [ -d ~/.config/Code\ -\ OSS/User ]; then
echo "Visual Studio Code (OSS) configs detected, backing up..."
mkdir -p ~/.config/Code\ -\ OSS/User.old && mv ~/.config/Code\ -\ OSS/User/* ~/.config/Code\ -\ OSS/User.old/
cp -r ./config/vsc/* ~/.config/Code\ -\ OSS/User;
else
echo "Installing Visual Studio Code (OSS) configs..."
mkdir ~/.config/Code\ -\ OSS/User && cp -r ./config/vsc/* ~/.config/Code\ -\ OSS/User;
fi
if [ -d ~/.config/Code/User ]; then
echo "Visual Studio Code configs detected, backing up..."
mkdir -p ~/.config/Code/User.old && mv ~/.config/Code/User/* ~/.config/Code/User.old/
cp -r ./config/vsc/* ~/.config/Code/User;
else
echo "Installing Visual Studio Code configs..."
mkdir ~/.config/Code/User && cp -r ./config/vsc/* ~/.config/Code/User;
fi
if [ -f ~/.zshrc ]; then
echo "Zsh configs detected, backing up..."
cp ~/.zshrc ~/zshrc.old
cp ./config/.zshrc ~/;
else
echo "Installing zsh configs..."
cp ./config/.zshrc ~/;
fi