#!/bin/bash _clean_packages() { # local _leave_these_packages="base\nbase-devel\n\ngrub\nefibootmgr\noctopi\nca-certificates\nmelawy-welcome\n" # local _leave_these_basepackages="filesystem\ngcc-libs\nglibc\nglib2\nbash\ncoreutils\nfile\nfindutils\ngawk\ngrep\nprocps-ng\nsed\ntar\ngettext\npciutils\npsmisc\nshadow\nutil-linux\nbzip2\ngzip\nxz\nlicenses\npacman\nsystemd\nsystemd-sysvcompat\niputils\niproute2\n" # local _packages_to_remove=($(comm -23 <(pacman -Qq | sort) <({ pacman -Qqg melawy; printf $_leave_these_packages; printf $_leave_these_basepackages; } | sort -u))) local _packages_to_remove="" _packages_to_remove+=( $(pacman -Qq | grep calamares) arch-install-scripts boost-libs ckbcomp clonezilla cmake doxygen edk2-shell expect extra-cmake-modules gpart grsync hdparm memtest86+ mkinitcpio mkinitcpio-archiso mkinitcpio-busybox qemu-arm-aarch64-static-bin rate-mirrors squashfs-tools syslinux tcpdump yaml-cpp ) local _check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)" if [[ "${_check_nvidia_card}" -ne 0 ]]; then echo "No NVIDIA card detected. Removing nvidia drivers" _packages_to_remove+=(nvidia-dkms nvidia-utils nvidia-settings egl-wayland) fi local xx # @ does one by one to avoid errors in the entire process # taken from Erik Dubois script for xx in "${_packages_to_remove[@]}"; do pacman -Rsnc "$xx" --noconfirm; done } _pacman_fix() { pacman-key --init pacman-key --populate } _remove_pacman_package() { local _pkgname="$1" pacman -Rsnc "$_pkgname" --noconfirm || true } # remove pkgs installed for VMs _clean_vm_packages() { #remove virtualbox if pacman -Qi virtualbox-guest-utils &> /dev/null; then systemctl disable vboxservice.service _remove_pacman_package virtualbox-guest-utils fi if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then systemctl disable vboxservice.service _remove_pacman_package virtualbox-guest-utils-nox fi #remove vmware if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then rm /etc/xdg/autostart/vmware-user.desktop fi if pacman -Qi open-vm-tools &> /dev/null; then systemctl disable vmtoolsd.service _remove_pacman_package open-vm-tools fi if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service fi #remove qemu if pacman -Qi qemu-guest-agent &> /dev/null; then systemctl disable qemu-guest-agent.service _remove_pacman_package qemu-guest-agent fi } _check_not_running_vm="$(systemd-detect-virt | grep -q 'none'; echo $?)" if [[ "${_check_not_running_vm}" -eq 0 ]]; then _clean_vm_packages fi _clean_packages _pacman_fix