diff --git a/archiso/airootfs/usr/local/bin/Installation_guide b/archiso/airootfs/usr/local/bin/Installation_guide deleted file mode 100755 index 4266754..0000000 --- a/archiso/airootfs/usr/local/bin/Installation_guide +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: GPL-3.0-or-later - -exec lynx 'https://wiki.archlinux.org/title/Installation_guide' diff --git a/archiso/airootfs/usr/local/bin/alci-displaymanager-check b/archiso/airootfs/usr/local/bin/dmcheck similarity index 100% rename from archiso/airootfs/usr/local/bin/alci-displaymanager-check rename to archiso/airootfs/usr/local/bin/dmcheck diff --git a/archiso/airootfs/usr/local/bin/livecd-sound b/archiso/airootfs/usr/local/bin/livecd-sound deleted file mode 100755 index baae0d2..0000000 --- a/archiso/airootfs/usr/local/bin/livecd-sound +++ /dev/null @@ -1,248 +0,0 @@ -#!/usr/bin/env bash -# -# SPDX-License-Identifier: GPL-3.0-or-later - -usage() { - cat <<- _EOF_ - live cd sound helper script. - Usage: livecdsound [OPTION] - OPTIONS - -u, --unmute unmute all sound cards - -p, --pick select a card for speetch output - -h, --help Show this usage message - -_EOF_ -} - -bugout () { - printf "/usr/local/bin/livecdsound: programming error" - stat_fail -} - -echo_card_indices() -{ - if [ -f /proc/asound/cards ] ; then - sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards - fi -} - -# The following functions try to set many controls. -# No card has all the controls and so some of the attempts are bound to fail. -# Because of this, the functions can't return useful status values. - -# $1 -# $2 -# $3 -unmute_and_set_level(){ - { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout - systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" - systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute - return 0 -} - -# $1 -# $2 -mute_and_zero_level() -{ - { [ "$1" ] && [ "$2" ] ; } || bugout - systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" - systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute - return 0 -} - -# $1 -# $2 -# $3 "on" | "off" -switch_control() -{ - { [ "$3" ] && [ "$1" ] ; } || bugout - systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" - systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" - return 0 -} - -# $1 -sanify_levels_on_card() -{ - unmute_and_set_level "$1" "Front" "80%" - unmute_and_set_level "$1" "Master" "80%" - unmute_and_set_level "$1" "Master Mono" "80%" - unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B - unmute_and_set_level "$1" "Playback" "80%" - unmute_and_set_level "$1" "Headphone" "100%" - unmute_and_set_level "$1" "PCM" "80%" - unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 - unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx - unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 - unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 - unmute_and_set_level "$1" "Synth" "80%" - unmute_and_set_level "$1" "CD" "80%" - unmute_and_set_level "$1" "PC Speaker" "100%" - - mute_and_zero_level "$1" "Mic" - mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 - - # Intel P4P800-MX - switch_control "$1" "Master Playback Switch" on - switch_control "$1" "Master Surround" on - - # Trident/YMFPCI/emu10k1: - unmute_and_set_level "$1" "Wave" "80%" - unmute_and_set_level "$1" "Music" "80%" - unmute_and_set_level "$1" "AC97" "80%" - - # DRC: - unmute_and_set_level "$1" "Dynamic Range Compression" "80%" - - # Required for HDA Intel (hda-intel): - unmute_and_set_level "$1" "Front" "80%" - - # Required for SB Live 7.1/24-bit (ca0106): - unmute_and_set_level "$1" "Analog Front" "80%" - - # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard - switch_control "$1" "IEC958 Capture Monitor" off - - # Required for hardware allowing toggles for AC97 through IEC958, - # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. - unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" - - # Required for newer Via hardware - unmute_and_set_level "$1" "VIA DXS,0" "80%" - unmute_and_set_level "$1" "VIA DXS,1" "80%" - unmute_and_set_level "$1" "VIA DXS,2" "80%" - unmute_and_set_level "$1" "VIA DXS,3" "80%" - - # Required on some notebooks with ICH4: - switch_control "$1" "Headphone Jack Sense" off - switch_control "$1" "Line Jack Sense" off - - # Some machines need one or more of these to be on; - # others need one or more of these to be off: - - switch_control "$1" "Audigy Analog/Digital Output Jack" on - switch_control "$1" "SB Live Analog/Digital Output Jack" on - - # D1984 -- Thinkpad T61/X61 - switch_control "$1" "Speaker" on - switch_control "$1" "Headphone" on - - # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) - unmute_and_set_level "$1" "Digital" "80%" - - return 0 -} - -# $1 | "all" -sanify_levels() -{ - local ttsdml_returnstatus=0 - local card - case "$1" in - all) - for card in $(echo_card_indices) ; do - sanify_levels_on_card "$card" || ttsdml_returnstatus=1 - done - ;; - *) - sanify_levels_on_card "$1" || ttsdml_returnstatus=1 - ;; - esac - return $ttsdml_returnstatus -} - -# List all cards that *should* be usable for PCM audio. In my experience, -# the console speaker (handled by the pcsp driver) isn't a suitable playback -# device, so we'll exclude it. -list_non_pcsp_cards() -{ - for card in $(echo_card_indices); do - local cardfile="/proc/asound/card${card}/id" - if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then - echo "$card" - fi - done -} - -# Properly initialize the sound card so that we have audio at boot. -unmute_all_cards() -{ - sanify_levels all -} - -is_numeric() { - local str=$1 - [[ "$str" =~ ^[0-9]+$ ]] -} - -set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf -} - -play_on_card() { - local card=$1 file=$2 - aplay -q "-Dplughw:$card,0" "$file" -} - -# If there are multiple usable sound cards, prompt the user to choose one, -# using auditory feedback. -pick_a_card() -{ - set -f - usable_cards="$(list_non_pcsp_cards)" - num_usable_cards="$(wc -w <<< "$usable_cards")" - - if [ "$num_usable_cards" -eq 1 ]; then - systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" - exit 0 - fi - systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" - for card in $usable_cards; do - if ! is_numeric "$card"; then - continue - fi - play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& - done - wait - sleep 1 - for card in $usable_cards; do - if ! is_numeric "$card"; then - continue - fi - play_on_card "$card" /usr/share/livecd-sounds/beep.wav - if read -r -t 10; then - systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" - set_default_card "$card" - break - fi -done -} - -if [[ $# -eq 0 ]]; then - echo "error: No argument passed." - exit 1 -fi -while [[ "${1}" != "" ]]; do - case ${1} in - -h|--help) - usage - exit - ;; - -u|--unmute) - systemd-cat -t "livecdsound" printf "Unmuting all cards" - unmute_all_cards - ;; - -p|--pick) - pick_a_card - ;; - *) - echo "error: Unsupported argument" - usage - exit 1 - ;; - esac - shift -done diff --git a/archiso/airootfs/usr/local/bin/remove-nvidia b/archiso/airootfs/usr/local/bin/remove-nvidia new file mode 100755 index 0000000..0573f05 --- /dev/null +++ b/archiso/airootfs/usr/local/bin/remove-nvidia @@ -0,0 +1,123 @@ +#!/bin/bash +# grabed from https://github.com/xerolinux/xerolinux_iso +# +# driver=free or driver=nonfree - grub and efi +echo "Start cachyos-remove-nvidia" +kernel_cmdline(){ + for param in $(cat /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; return 0 ;; + $1) return 0 ;; + *) continue ;; + esac + done + [ -n "${2}" ] && echo "${2}" + return 1 +} + +get_driver(){ + echo $(kernel_cmdline driver) +} + +get_virtmach(){ + echo $(kernel_cmdline virtmach) +} + +while [ -e "/var/lib/pacman/db.lck" ]; +do + echo 'Pacman is not ready yet. Will try again in 10 seconds.' + seconds=$(($seconds + 10)) + sleep 10 + if [[ "$seconds" == "30" ]]; then + echo 'Warning: removing pacman db.lck!' + rm /var/lib/pacman/db.lck + fi +done + +# free = remove nvidia keep nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "free" ]]; then + pacman -R --noconfirm nvidia-dkms nvidia-utils +fi + +#freenonouveau = remove nvidia and nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "freenonouveau" ]]; then + pacman -R --noconfirm nvidia-dkms nvidia-utils + pacman -R --noconfirm xf86-video-nouveau +fi + +#nonfree = keepin nvidia and nouveau +selection=$(get_driver) +echo "Selection was "$selection +if [[ $selection == "nonfree" ]]; then + echo "#################################" + echo "We keep nvidia and nouveau onboard" + echo "#################################" +fi + +# nonfreenonouveau : keep nvidia and remove nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "nonfreenonouveau" ]]; then + pacman -R --noconfirm xf86-video-nouveau +fi + +# remove virtual machines +selection=$(get_virtmach) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "none" ]]; then + + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils --noconfirm + echo "Removed virtualbox-guest-utils" + fi + + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils-nox --noconfirm + echo "Removed virtualbox-guest-utils-nox" + fi + + #remove vmware + if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then + rm /etc/xdg/autostart/vmware-user.desktop + echo "Removed vmware-user.desktop" + fi + + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + echo "Disabled vmtoolsd.service" + pacman -Rns open-vm-tools --noconfirm + echo "Removed 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 + echo "Removed vmtoolsd.service if still exists" + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + pacman -Rns qemu-guest-agent --noconfirm + echo "Removed qemu-guest-agent" + fi + +fi + +echo "#################################" +echo "End cachyos-remove-nvidia" +echo "#################################" diff --git a/archiso/airootfs/usr/local/bin/removeun b/archiso/airootfs/usr/local/bin/removeun new file mode 100755 index 0000000..b93d9cf --- /dev/null +++ b/archiso/airootfs/usr/local/bin/removeun @@ -0,0 +1,73 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Erik Dubois +# Website : https://www.erikdubois.be +# Website : https://www.arcolinux.info +# Website : https://www.arcolinux.com +# Website : https://www.arcolinuxd.com +# Website : https://www.arcolinuxb.com +# Website : https://www.arcolinuxiso.com +# Website : https://www.arcolinuxforum.com +############################################################################### +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +############################################################################### + +_clean_packages(){ + + local _packages_to_remove=( + gparted + grsync + cachyos-calamares + cachyos-calamares-config + edk2-shell + boost-libs + doxygen + expect + gpart + tcpdump + libpwquality + refind + rate-mirrors-bin + kvantum-qt5 + polkit-qt5 + qca-qt5 + qt5-location + qt5-multimedia + qt5-speech + qt5-wayland + qt5-webchannel + qt5-webengine + qt5-xmlpatterns + qt5-base + sonnet + kwidgetsaddons + kitemviews + kguiaddons + kdbusaddons + kcoreaddons + karchive + qt5ct + arch-install-scripts + squashfs-tools + extra-cmake-modules + cmake + elinks + yaml-cpp + syslinux + clonezilla + ckbcomp + xcompmgr + memtest86+ + mkinitcpio-archiso +) + local xx + # @ does one by one to avoid errors in the entire process + # * can be used to treat all packages in one command + for xx in ${_packages_to_remove[@]}; do pacman -Rsc $xx --noconfirm; done + +} + +_clean_packages diff --git a/archiso/airootfs/usr/local/bin/removeun-online b/archiso/airootfs/usr/local/bin/removeun-online new file mode 100755 index 0000000..cc6dc7c --- /dev/null +++ b/archiso/airootfs/usr/local/bin/removeun-online @@ -0,0 +1,28 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Erik Dubois +# Website : https://www.erikdubois.be +# Website : https://www.arcolinux.info +# Website : https://www.arcolinux.com +# Website : https://www.arcolinuxd.com +# Website : https://www.arcolinuxb.com +# Website : https://www.arcolinuxiso.com +# Website : https://www.arcolinuxforum.com +############################################################################### +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +############################################################################### + +_clean_packages(){ + + local _packages_to_remove=($(comm -23 <(pacman -Qqt | sort) <({ pacman -Qqg base-devel; echo "base"; echo "base-devel"; } | sort -u))) + local xx + # @ does one by one to avoid errors in the entire process + # * can be used to treat all packages in one command + for xx in ${_packages_to_remove[@]}; do pacman -Rsc $xx --noconfirm; done + +} + +_clean_packages diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index bb3f31f..4c15987 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -20,9 +20,10 @@ file_permissions=( ["/etc/sudoers.d"]="0:0:750" ["/root/.automated_script.sh"]="0:0:755" ["/usr/local/bin/choose-mirror"]="0:0:755" - ["/usr/local/bin/Installation_guide"]="0:0:755" - ["/usr/local/bin/livecd-sound"]="0:0:755" - ["/usr/local/bin/alci-displaymanager-check"]="0:0:755" + ["/usr/local/bin/dmcheck"]="0:0:755" ["/usr/local/bin/calamares-offline.sh"]="0:0:755" ["/usr/local/bin/calamares-online.sh"]="0:0:755" + ["/usr/local/bin/remove-nvidia"]="0:0:755" + ["/usr/local/bin/removeun"]="0:0:755" + ["/usr/local/bin/removeun-online"]="0:0:755" )