autoinstall.sh (3888B)
1 #!/bin/bash 2 3 set -e 4 5 INSTALL='sudo pacman -S --noconfirm' 6 UPDATE='sudo pacman -Syu --noconfirm' 7 8 install_packages() { 9 $UPDATE 10 $INSTALL mpv feh redshift linux-firmware-qlogic pavucontrol picom nitrogen thunar gvfs lxappearance alsa-utils neovim yubico-pam starship fish man-db qt5ct breeze breeze-gtk redshift htop lsb-release libreoffice-fresh ly ufw scrot keepassxc ranger unzip gcr webkit2gtk gd dosfstools xorg-xkill openresolv wireguard-tools libdvdcss libdvdread dunst cryptsetup wget 11 echo "==============================" 12 echo "Programs are done installing" 13 echo "=============================" 14 } 15 16 setup_ufw() { 17 sudo systemctl enable ufw 18 sudo systemctl start ufw 19 sudo ufw allow 22/tcp 20 sudo ufw allow 80/tcp 21 sudo ufw allow 443/tcp 22 echo "==================" 23 echo "UFW setup is done" 24 echo "==================" 25 } 26 27 28 setup_ly() { 29 sudo systemctl enable ly 30 echo "==================" 31 echo "Done Ly setup!" 32 echo "==================" 33 } 34 35 setup_home_directory() { 36 mkdir -p ~/Documents/passwords 37 mkdir -p ~/Documents/projects 38 mkdir -p ~/Documents/notes 39 mkdir -p ~/Documents/books 40 mkdir -p ~/Downloads/ 41 mkdir -p ~/Backups/ 42 mkdir -p ~/Programming/ 43 mkdir -p ~/Videos/personal 44 mkdir -p ~/Music/ 45 mkdir -p ~/Games/ 46 echo "==================" 47 echo "Directories setup" 48 echo "==================" 49 } 50 51 copy_config_files() { 52 sudo mkdir -p /usr/share/xsessions 53 sudo cp ~/dotfiles/files/dwm.desktop /usr/share/xsessions/ 54 55 sudo cp -r ~/dotfiles/files/pacman.conf /etc/pacman.conf 56 57 sudo cp -r ~/dotfiles/files/config/* ~/.config/ 58 sudo cp ~/dotfiles/files/Ly/config.ini /etc/ly/config.ini 59 60 cd ~/dotfiles/files/config/suckless/dwm/ 61 sudo make clean install 62 cd ../slstatus 63 sudo make clean install 64 cd ../dmenu 65 sudo make clean install 66 cd ../surf 67 sudo make clean install 68 cd ../st 69 sudo make clean install 70 cd ../scroll 71 sudo make clean install 72 73 # Ranger config 74 ranger --copy-config=all 75 rm -rf ~/.config/ranger/* 76 sudo cp -r ~/dotfiles/files/ranger/* ~/.config/ranger/ 77 78 echo "==================" 79 echo "Configs loaded" 80 echo "==================" 81 } 82 83 fonts(){ 84 cp -rf ~/dotfiles/files/fonts ~/.fonts 85 } 86 87 bashrc_additions(){ 88 echo 'eval "$(dircolors ~/.config/dircolours)"' >> ~/.bashrc 89 echo 'alias tree='pstree'' >> ~/.bashrc 90 echo 'alias P="cd ~/Programming"' >> ~/.bashrc 91 echo 'alias C="cd ~/.config"' >> ~/.bashrc 92 echo 'alias vim='nvim'' >> ~/.bashrc 93 echo "printf '\033[?1h\033= >/dev/tty'" >> ~/.bashrc 94 } 95 96 fish(){ 97 echo -e '\n# Start fish shell \nif [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then\n shopt -q login_shell && LOGIN_OPTION="--login" || LOGIN_OPTION=""\n exec fish $LOGIN_OPTION\nfi' >> ~/.bashrc 98 } 99 100 Blocked_Websites() { 101 sudo chmod 666 /etc/hosts 102 103 sudo echo "#Facebook" > /etc/hosts 104 sudo echo "127.0.0.1 facebook.com login.facebook.com secure.facebook.com latest.facebook.com inyour.facebook.com beta.facebook.com static.facebook.com touch.facebook.com developers.facebook.com newsroom.fb.com pixel.facebook.com apps.facebook.com graph.facebook.com m.facebook.com upload.facebook.com" > /etc/hosts 105 106 sudo chmod 644 /etc/hosts 107 } 108 109 Security() { 110 sudo sed -i '6 i auth optional pam_faildelay.so delay=4000000' /etc/pam.d/system-login 111 } 112 113 main() { 114 install_packages 115 setup_ufw 116 setup_home_directory 117 setup_ly 118 copy_config_files 119 fonts 120 bashrc_additions 121 fish 122 Security 123 echo "==================================" 124 echo "Done installing, you may reboot." 125 echo "Thank you for installing!" 126 echo "==================================" 127 } 128 129 #This runs the script and gives the current user perms 130 main 131 sudo chown -R $(whoami):$(whoami) /home/$(whoami) 132 sh ~/dotfiles/yay.sh 133