| 1 | # == MY ARCH SETUP INSTALLER == # |
| 2 | #part1 |
| 3 | printf '\033c' |
| 4 | sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf |
| 5 | pacman --noconfirm -Sy archlinux-keyring |
| 6 | loadkeys us |
| 7 | timedatectl set-ntp true |
| 8 | lsblk |
| 9 | printf "\e[0;34mEnter the drive: \e[0m" |
| 10 | read drive |
| 11 | cfdisk $drive |
| 12 | printf "\e[0;34mEnter the EFI partition: \e[0m" |
| 13 | read efipartition |
| 14 | mkfs.fat -F32 $efipartition |
| 15 | read -p "Did you also create swap partition? [y/n]" answer |
| 16 | if [[ $answer = y ]] ; then |
| 17 | printf "\e[0;34mEnter swap partition: \e[0m" |
| 18 | read swappartition |
| 19 | mkswap $swappartition |
| 20 | swapon $swappartition |
| 21 | fi |
| 22 | printf "\e[0;34mEnter the linux filesystem partition: \e[0m" |
| 23 | read partition |
| 24 | mkfs.ext4 $partition |
| 25 | echo "mounting $partition to /mnt" |
| 26 | mount $partition /mnt |
| 27 | pacstrap /mnt base base-devel linux linux-firmware |
| 28 | genfstab -U /mnt >> /mnt/etc/fstab |
| 29 | sed '1,/^#part2/d' arch_install.sh > /mnt/arch_install2.sh |
| 30 | chmod +x /mnt/arch_install2.sh |
| 31 | arch-chroot /mnt ./arch_install2.sh |
| 32 | exit |
| 33 | |
| 34 | #part2 |
| 35 | printf '\033c' |
| 36 | ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime |
| 37 | hwclock --systohc |
| 38 | echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen |
| 39 | locale-gen |
| 40 | echo "LANG=en_US.UTF-8" > /etc/locale.conf |
| 41 | echo "KEYMAP=us" > /etc/vconsole.conf |
| 42 | printf "\e[0;34mHostname: \e[0m" |
| 43 | read hostname |
| 44 | echo $hostname > /etc/hostname |
| 45 | echo "127.0.0.1 localhost" >> /etc/hosts |
| 46 | echo "::1 localhost" >> /etc/hosts |
| 47 | echo "127.0.1.1 $hostname.localdomain $hostname" >> /etc/hosts |
| 48 | mkinitcpio -P |
| 49 | passwd |
| 50 | pacman --noconfirm -S grub efibootmgr os-prober |
| 51 | printf "\e[0;34mEnter EFI partition: \e[0m" |
| 52 | read efipartition |
| 53 | mkdir /boot/efi |
| 54 | mount $efipartition /boot/efi |
| 55 | grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=archlinux --recheck |
| 56 | sed -i 's/quiet/pci=noaer/g' /etc/default/grub |
| 57 | sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub |
| 58 | grub-mkconfig -o /boot/grub/grub.cfg |
| 59 | |
| 60 | pacman -S --noconfirm xorg-server xorg-xprop xorg-xkill xorg-xsetroot xorg-xinit \ |
| 61 | noto-fonts noto-fonts-emoji noto-fonts-cjk ttf-font-awesome \ |
| 62 | awesome-terminal-fonts libnotify dunst ntfs-3g \ |
| 63 | jq mpv ncdu maim transmission-cli yt-dlp cowsay \ |
| 64 | pacman-contrib pavucontrol rsync ueberzug ffmpegthumbnailer python-pywal \ |
| 65 | sxiv xdotool xwallpaper zip unzip wget pcmanfm \ |
| 66 | fzf man-db pipewire pipewire-pulse xcompmgr firefox pamixer \ |
| 67 | xclip sxhkd imagemagick connman wpa_supplicant git dash arc-gtk-theme papirus-icon-theme \ |
| 68 | neovim lua rust-analyzer rustup xdg-user-dirs mpd ncmpcpp \ |
| 69 | zsh zsh-autosuggestions zathura zathura-pdf-poppler |
| 70 | |
| 71 | systemctl enable connman.service |
| 72 | rm /bin/sh |
| 73 | ln -s dash /bin/sh |
| 74 | # echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers |
| 75 | echo "%wheel ALL=(ALL:ALL) ALL" >> /etc/sudoers |
| 76 | printf "\e[0;34mEnter Username: \e[0m" |
| 77 | read username |
| 78 | useradd -m -G wheel -s /bin/zsh $username |
| 79 | passwd $username |
| 80 | echo "Pre-Installation Finish Reboot now" |
| 81 | ai3_path=/home/$username/arch_install3.sh |
| 82 | sed '1,/^#part3/d' arch_install2.sh > $ai3_path |
| 83 | chown $username:$username $ai3_path |
| 84 | chmod +x $ai3_path |
| 85 | su -c $ai3_path -s /bin/sh $username |
| 86 | exit |
| 87 | |
| 88 | #part3 |
| 89 | printf '\033c' |
| 90 | cd $HOME |
| 91 | git clone --separate-git-dir=$HOME/.dotfiles git@github.com:krolyxon/dotfiles.git tmpdotfiles |
| 92 | rsync --recursive --verbose --exclude '.git' tmpdotfiles/ $HOME/ |
| 93 | rm -r tmpdotfiles |
| 94 | # dwm : Window Manager |
| 95 | git clone --depth=1 git@github.com:krolyxon/dwm.git ~/.local/src/dwm |
| 96 | sudo make -C ~/.local/src/dwm install |
| 97 | |
| 98 | # st: Terminal |
| 99 | git clone --depth=1 git@github.com:krolyxon/st.git ~/.local/src/st |
| 100 | sudo make -C ~/.local/src/st install |
| 101 | |
| 102 | # dmenu: Program Menu |
| 103 | git clone --depth=1 git@github.com:krolyxon/dmenu.git ~/.local/src/dmenu |
| 104 | sudo make -C ~/.local/src/dmenu install |
| 105 | |
| 106 | # slstatus: Status bar for dwm |
| 107 | git clone --depth=1 git@github.com:krolyxon/slstatus.git ~/.local/src/slstatus |
| 108 | sudo make -C ~/.local/src/slstatus install |
| 109 | |
| 110 | # nvim: Text editor |
| 111 | git clone --depth=1 git@github.com:krolyxon/nvim.git ~/.config/nvim |
| 112 | |
| 113 | # paru: AUR helper |
| 114 | git clone https://aur.archlinux.org/paru-bin.git && cd paru-bin && makepkg -si && cd .. && rm -rf paru-bin |
| 115 | paru -S --noconfirm htop-vim nerd-fonts-jetbrains-mono lf-bin libxft-bgra zsh-fast-syntax-highlighting-git |
| 116 | chsh -s $(which zsh) |
| 117 | printf "bro do you want to install that fucking nvidia-390xx drivers? (y/n): " |
| 118 | read driver |
| 119 | if [[ $driver = y ]]; then |
| 120 | paru -S --noconfirm nvidia-390xx |
| 121 | fi |
| 122 | |
| 123 | ln -s ~/.config/x11/xinitrc .xinitrc |
| 124 | ln -s ~/.config/shell/profile .zprofile |
| 125 | alias dots='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' |
| 126 | dots config --local status.showUntrackedFiles no |
| 127 | exit |