autoinstall.sh (4098B)
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 mpc mpd ncmpcpp 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 36 setup_home_directory() { 37 mkdir -p ~/Documents/passwords 38 mkdir -p ~/Documents/projects 39 mkdir -p ~/Documents/notes 40 mkdir -p ~/Documents/books 41 mkdir -p ~/Downloads/ 42 mkdir -p ~/Backups/ 43 mkdir -p ~/Programming/ 44 mkdir -p ~/Videos/personal 45 mkdir -p ~/Music/ 46 mkdir -p ~/Games/ 47 echo "==================" 48 echo "Directories setup" 49 echo "==================" 50 } 51 52 copy_config_files() { 53 sudo mkdir -p /usr/share/xsessions 54 sudo cp ~/dotfiles/files/dwm.desktop /usr/share/xsessions/ 55 56 sudo cp -r ~/dotfiles/files/pacman.conf /etc/pacman.conf 57 58 sudo cp -r ~/dotfiles/files/config/* ~/.config/ 59 sudo cp ~/dotfiles/files/Ly/config.ini /etc/ly/config.ini 60 61 cd ~/dotfiles/files/config/suckless/dwm/ 62 sudo make clean install 63 cd ../slstatus 64 sudo make clean install 65 cd ../dmenu 66 sudo make clean install 67 cd ../surf 68 sudo make clean install 69 cd ../st 70 sudo make clean install 71 cd ../scroll 72 sudo make clean install 73 74 # Ranger config 75 ranger --copy-config=all 76 rm -rf ~/.config/ranger/* 77 sudo cp -r ~/dotfiles/files/ranger/* ~/.config/ranger/ 78 79 echo "==================" 80 echo "Configs loaded" 81 echo "==================" 82 } 83 84 fonts(){ 85 cp -rf ~/dotfiles/files/fonts ~/.fonts 86 } 87 88 bashrc_additions(){ 89 echo 'eval "$(dircolors ~/.config/dircolours)"' >> ~/.bashrc 90 echo 'alias tree='pstree'' >> ~/.bashrc 91 echo 'alias P="cd ~/Programming"' >> ~/.bashrc 92 echo 'alias C="cd ~/.config"' >> ~/.bashrc 93 echo 'alias vim='nvim'' >> ~/.bashrc 94 echo "printf '\033[?1h\033= >/dev/tty'" >> ~/.bashrc 95 } 96 97 fish(){ 98 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 99 } 100 101 setup_music() { 102 echo -e "\n# MPD daemon start (if no other user instance exists)\n[ ! -s ~/.config/mpd/pid ] && mpd" >> .bash_profile 103 systemctl --user start mpd.service 104 105 } 106 107 Blocked_Websites() { 108 sudo chmod 666 /etc/hosts 109 110 sudo echo "#Facebook" > /etc/hosts 111 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 112 113 sudo chmod 644 /etc/hosts 114 } 115 116 Security() { 117 sudo sed -i '6 i auth optional pam_faildelay.so delay=4000000' /etc/pam.d/system-login 118 } 119 120 main() { 121 install_packages 122 setup_ufw 123 setup_home_directory 124 setup_ly 125 copy_config_files 126 fonts 127 bashrc_additions 128 fish 129 setup_music 130 Security 131 echo "==================================" 132 echo "Done installing, you may reboot." 133 echo "Thank you for installing!" 134 echo "==================================" 135 } 136 137 #This runs the script and gives the current user perms 138 main 139 sudo chown -R $(whoami):$(whoami) /home/$(whoami) 140 sh ~/dotfiles/yay.sh 141