diff --git a/arch-setup.sh b/arch-setup.sh index f139d40..d3dc049 100755 --- a/arch-setup.sh +++ b/arch-setup.sh @@ -118,7 +118,7 @@ setup_pacman() { sudo sed -i 's/#ILoveCandy/ILoveCandy/' /etc/pacman.conf sudo sed -i 's/#VerbosePkgLists/VerbosePkgLists/' /etc/pacman.conf sudo sed -i 's/#CheckSpace/CheckSpace/' /etc/pacman.conf - #sudo sed -i 's/#PrettyProgressBar/PrettyProgressBar/' /etc/pacman.conf + sudo sed -i 's/#PrettyProgressBar/PrettyProgressBar/' /etc/pacman.conf sudo sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 10/' /etc/pacman.conf sudo sed -i 's/#DisableDownloadTimeout/DisableDownloadTimeout/' /etc/pacman.conf } @@ -221,14 +221,12 @@ setup_gpu() { fi ;; "\"nouveau\"") - install_dependencies mesa - install_package vulkan-nouveau + install_dependencies mesa vulkan-nouveau ;; esac ;; *AMD*) - install_dependencies mesa - install_package vulkan-radeon + install_dependencies mesa vulkan-radeon ;; *Intel*) install_dependencies intel-media-driver vulkan-intel @@ -242,7 +240,8 @@ setup_gpu() { setup_plymouth() { if whiptail --title "Setup Plymouth" --yesno "Would you like to setup Plymouth?" 10 60; then echo "quiet splash" | sudo tee -a /etc/kernel/cmdline - sudo pacman -S --needed --noconfirm plymouth plymouth-kcm + sudo sed -i 's/^HOOKS=(base udev autodetect microcode/HOOKS=(base udev autodetect microcode plymouth /' /etc/mkinitcpio.conf + install_package plymouth if pacman -Qs plymouth-theme-catppuccin-mocha-git > /dev/null; then sudo plymouth-set-default-theme -R catppuccin-mocha else @@ -273,46 +272,52 @@ setup_bluetooth() { # function name : setup u2f # Description: setup pam-u2f for login using Yubikey setup_u2f() { - install_package pam-u2f - mkdir ~/.config/Yubico - echo "Registering U2F device..." - pamu2fcfg -o "pam://$HOST" -i "pam://$HOST" > ~/.config/Yubico/u2f_keys - sudo touch /etc/pam.d/u2f-required - sudo touch /etc/pam.d/u2f-sufficient - echo "auth required pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-required - echo "auth sufficient pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-sufficient - - sudo sed -i '/^password\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/su - sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/sudo - sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/passwd - sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/system-login - if [ ! -f /etc/pam.d/polkit-1 ]; then - sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1 + if whiptail --title "Setup U2F" --yesno "Would you like to setup U2F (Yubikey) authentication?" 10 60; then + install_package pam-u2f + mkdir -p ~/.config/Yubico + echo "Registering U2F device..." + pamu2fcfg -o "pam://$HOST" -i "pam://$HOST" > ~/.config/Yubico/u2f_keys + sudo touch /etc/pam.d/u2f-required + sudo touch /etc/pam.d/u2f-sufficient + echo "auth required pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-required + echo "auth sufficient pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-sufficient + + sudo sed -i '/^password\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/su + sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/sudo + sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/passwd + sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/system-login + if [ ! -f /etc/pam.d/polkit-1 ]; then + sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1 + fi + sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/polkit-1 fi - sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/polkit-1 } # function name : setup fprint # Description: setup fprint for login using fingerprint reader setup_fprint() { - install_package fprintd - install_dependencies imagemagick - sudo systemctl enable --now fprintd - sudo sed -i '/^auth\s*include\s*system-login/i auth [success=1 default=ignore] pam_succeed_if.so service in sudo:su:su-l tty in :unknown' /etc/pam.d/system-local-login - sudo sed -i '/^auth\s*include\s*system-login/i auth sufficient pam_fprintd.so' /etc/pam.d/system-local-login - if [ ! -f /etc/pam.d/polkit-1 ]; then - sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1 + if whiptail --title "Setup Fprint" --yesno "Would you like to setup fingerprint authentication (fprintd)?" 10 60; then + install_package fprintd + install_dependencies imagemagick + sudo systemctl enable --now fprintd + sudo sed -i '/^auth\s*include\s*system-login/i auth [success=1 default=ignore] pam_succeed_if.so service in sudo:su:su-l tty in :unknown' /etc/pam.d/system-local-login + sudo sed -i '/^auth\s*include\s*system-login/i auth sufficient pam_fprintd.so' /etc/pam.d/system-local-login + if [ ! -f /etc/pam.d/polkit-1 ]; then + sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1 + fi + sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/polkit-1 + fprintd-enroll fi - sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/polkit-1 - fprintd-enroll } # function name : setup SmartCard [WIP] # Description: setup pcscd for login using smartcard reader setup_smartcard() { - install_package opensc - sudo systemctl enable --now pcscd - sudo systemctl enable --now pcscd.socket + if whiptail --title "Setup SmartCard" --yesno "Would you like to setup SmartCard (pcscd) authentication?" 10 60; then + install_package opensc + sudo systemctl enable --now pcscd + sudo systemctl enable --now pcscd.socket + fi } # function name : setup firewall @@ -584,8 +589,8 @@ setup_containers() { # Description: Install and setup Plasma KDE setup_plasma_kde() { if whiptail --title "Setup Plasma KDE" --yesno "Would you like to setup Plasma KDE?" 10 60; then - install_package plasma-meta gwenview kate okular kcalc gparted kdeconnect - install_dependencies qt6-quick3d + install_package plasma-meta gwenview kate okular kcalc gparted kdeconnect ark dolphin + install_dependencies qt6-quick3d flatpak-kcm plymouth-kcm sddm-kcm if pacman -Qs sddm > /dev/null; then sudo systemctl enable sddm if [ -f /etc/sddm.conf.d/10-wayland.conf ]; then