diff --git a/Amelia.sh b/Amelia.sh index df1b622..39056aa 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -1,7 +1,7 @@ #!/bin/bash # Amelia installer for Archlinux - # Version: 1.2.8 + # Version: 1.3.0 # Source: https://gitlab.com/prism7/archery # Contact: leenooks7@gmail.com @@ -380,6 +380,37 @@ failure() { fi exit } +alt_session_support() { + sleep 0.2 + YELLOW " + ### NOTE: ${desktopname} desktop defaults to a(n) ${session} session + + + + > Install ${nc}${alt_session} ${yellow}session support ? [N/y] " + BLUE " + + +Enter [N/y]: " + read -r -p " +==> " session_support + + session_support="${session_support:-n}" + session_support="${session_support,,}" + + case "${session_support}" in + y) + sleep 0.2 + NC " + +==> [${green}${alt_session} support OK${nc}] " ;; + n) + skip ;; + *) + invalid + until alt_session_support; do : ; done ;; + esac +} # END PROMPT FUNCTIONS ################################################################################################### # SYSTEM FUNCTIONS @@ -2124,7 +2155,9 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Deskt [12] Custom Arch Linux - [13] Cosmic " + [13] Cosmic + + [14] Pantheon " BLUE " @@ -2136,10 +2169,18 @@ Enter a number: " case "${desktop}" in 1) desktopname="Plasma" - deskname ;; + deskname + session="Wayland" + alt_session="X11" + alt_session_support + alt_session_pack="plasma-x11-session" ;; 2) desktopname="Plasma Lite" - deskname ;; + deskname + session="Wayland" + alt_session="X11" + alt_session_support + alt_session_pack="plasma-x11-session" ;; 3) desktopname="Gnome" deskname ;; @@ -2148,7 +2189,11 @@ Enter a number: " deskname ;; 5) desktopname="Xfce" - deskname ;; + deskname + session="X11" + alt_session="Wayland (experimental)" + alt_session_support + alt_session_pack="labwc";; 6) desktopname="Cinnamon" deskname @@ -2162,7 +2207,11 @@ Enter a number: " term_offer ;; 9) desktopname="Lxqt" - deskname ;; + deskname + session="X11" + alt_session="Wayland (experimental)" + alt_session_support + alt_session_pack="labwc lxqt-wayland-session waylock" ;; 10) desktopname="Mate" deskname ;; @@ -2176,11 +2225,16 @@ Enter a number: " 13) desktopname="Cosmic" deskname ;; + 14) + desktopname="Pantheon" + deskname ;; "") choice + keypress return 1 ;; *) invalid + keypress return 1 ;; esac ok @@ -2246,7 +2300,9 @@ ${magenta}###${nc}--------------------------------${magenta}[ ${bwhite}LightDM G [2] Slick - [3] Deepin " + [3] Deepin + + [4] Pantheon " BLUE " @@ -2273,6 +2329,12 @@ Enter a number: " NC " ==> [${green}Lightdm Deepin Greeter OK${nc}] " ;; + 4) + greeter="lightdm-pantheon-greeter" + sleep 0.2 + NC " + +==> [${green}Lightdm Pantheon Greeter OK${nc}] " ;; "") choice return 1 ;; @@ -5779,7 +5841,7 @@ revise() { revision="y" gfxpkgs=() validpkgs=() - reset=(xbootloader="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" lowlat="" nogsp="" sanity="" partok="" preset="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" hometype="" homeform="" smartpart="" LuksParts="" nvidia_aur="" web_aur_url="") + reset=(xbootloader="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" lowlat="" nogsp="" sanity="" partok="" preset="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" hometype="" homeform="" smartpart="" LuksParts="" nvidia_aur="" web_aur_url="" session="" alt_session="" session_support="" alt_session_pack="") export "${reset[@]}" instl @@ -6146,16 +6208,17 @@ pkg_collection() { [[ "${vendor}" != "Virtual Machine" ]] && basepkgs+=(alsa-firmware linux-firmware sof-firmware) [[ "${terminal}" == "y" ]] && basepkgs+=(gnome-terminal) [[ "${nvidiaprop}" == "y" ]] && basepkgs+=("${kernel}-headers") + [[ "${session_support}" == "y" ]] && basepkgs+=("${alt_session_pack}") [[ ! "${desktop}" =~ ^(11|12)$ ]] && basepkgs+=(7zip alsa-plugins alsa-utils bluez bluez-hid2hci bluez-obex bluez-utils exfatprogs git glibc-locales gst-libav gst-plugin-libcamera gst-plugin-pipewire gst-plugins-bad gst-plugins-good gst-plugins-ugly libfido2 man-db man-pages mesa-utils nano-syntax-highlighting pacman-contrib pipewire-alsa pipewire-libcamera pipewire-onnx pipewire-pulse pipewire-zeroconf reflector usb_modeswitch xdg-user-dirs) case "${desktop}" in 1) # Plasma Desktop: - deskpkgs="${basepkgs[*]} dolphin-plugins konsole plasma plasma-x11-session qt6-multimedia-gstreamer" + deskpkgs="${basepkgs[*]} dolphin-plugins konsole plasma qt6-multimedia-gstreamer" displaymanager="plasmalogin" ;; 2) # Plasma Lite Desktop: - deskpkgs="${basepkgs[*]} ark bluedevil breeze-gtk colord-kde dolphin-plugins flatpak-kcm freerdp kate kcalc kclock kde-gtk-config kde-inotify-survey kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdeplasma-addons kdf kdialog keditbookmarks kimageformats kio-admin kio-gdrive kio-zeroconf konsole krdc krfb kscreen kwayland-integration kwrited okular purpose ocean-sound-theme packagekit-qt6 partitionmanager plasma5-integration plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-keyboard plasma-login-manager plasma-nm plasma-pa plasma-systemmonitor plasma-wayland-protocols plasma-x11-session spectacle appmenu-gtk-module arj dosfstools ffmpegthumbs icoutils kvantum libappimage libappindicator lrzip lzop ntfs-3g power-profiles-daemon qrca qt5-xmlpatterns qt6-connectivity qt6-multimedia-gstreamer unarchiver unrar xdg-desktop-portal-gtk" + deskpkgs="${basepkgs[*]} ark bluedevil breeze-gtk colord-kde dolphin-plugins flatpak-kcm freerdp kate kcalc kclock kde-gtk-config kde-inotify-survey kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdeplasma-addons kdf kdialog keditbookmarks kimageformats kio-admin kio-gdrive kio-zeroconf konsole krdc krfb kscreen kwayland-integration kwrited okular purpose ocean-sound-theme packagekit-qt6 partitionmanager plasma5-integration plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-keyboard plasma-login-manager plasma-nm plasma-pa plasma-systemmonitor plasma-wayland-protocols spectacle appmenu-gtk-module arj dosfstools ffmpegthumbs icoutils kvantum libappimage libappindicator lrzip lzop ntfs-3g power-profiles-daemon qrca qt5-xmlpatterns qt6-connectivity qt6-multimedia-gstreamer unarchiver unrar xdg-desktop-portal-gtk" displaymanager="plasmalogin" ;; 3) # Gnome Desktop: @@ -6167,7 +6230,7 @@ pkg_collection() { displaymanager="gdm" ;; 5) # Xfce Desktop: - deskpkgs="${basepkgs[*]} blueman catfish ffmpegthumbnailer gvfs gvfs-afc gvfs-mtp gvfs-smb libgsf libopenraw lightdm-gtk-greeter mousepad mugshot network-manager-applet pavucontrol poppler-glib ristretto thunar-archive-plugin thunar-media-tags-plugin thunar-shares-plugin xfce4 xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-datetime-plugin xfce4-indicator-plugin xfce4-mount-plugin xfce4-notifyd xfce4-power-manager xfce4-pulseaudio-plugin xfce4-screensaver xfce4-screenshooter xfce4-taskmanager xfce4-whiskermenu-plugin xfce4-power-manager xiccd" + deskpkgs="${basepkgs[*]} blueman catfish ffmpegthumbnailer gvfs gvfs-afc gvfs-mtp gvfs-smb libgsf libopenraw lightdm-gtk-greeter lightdm-gtk-greeter-settings mousepad mugshot network-manager-applet pavucontrol poppler-glib ristretto thunar-archive-plugin thunar-media-tags-plugin thunar-shares-plugin xfce4 xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-datetime-plugin xfce4-indicator-plugin xfce4-mount-plugin xfce4-notifyd xfce4-power-manager xfce4-pulseaudio-plugin xfce4-screensaver xfce4-screenshooter xfce4-taskmanager xfce4-whiskermenu-plugin xfce4-power-manager xiccd" displaymanager="lightdm" ;; 6) # Cinnamon Desktop: @@ -6179,15 +6242,15 @@ pkg_collection() { displaymanager="lightdm" ;; 8) # Budgie Desktop: - deskpkgs="${basepkgs[*]} blueman budgie gnome-user-share lightdm-gtk-greeter nemo network-manager-applet openssh power-profiles-daemon rygel xdg-user-dirs" + deskpkgs="${basepkgs[*]} blueman budgie gnome-user-share lightdm-gtk-greeter lightdm-gtk-greeter-settings nemo network-manager-applet openssh power-profiles-daemon rygel xdg-user-dirs" displaymanager="lightdm" ;; 9) # Lxqt Desktop: - deskpkgs="${basepkgs[*]} blueman breeze-icons gvfs gvfs-mtp kimageformats libarchive libstatgrab libsysstat lxqt network-manager-applet oxygen-icons python-pyxdg qt6-imageformats qt6-multimedia-gstreamer sddm xscreensaver xsettingsd" + deskpkgs="${basepkgs[*]} blueman breeze-icons gvfs gvfs-mtp kimageformats libarchive libstatgrab libsysstat lxqt network-manager-applet oxygen-icons python-pyxdg qt6-imageformats qt6-multimedia-gstreamer sddm xorg-xrdb xscreensaver xsettingsd" displaymanager="sddm" ;; 10) # Mate Desktop: - deskpkgs="${basepkgs[*]} atril blueman caja-actions caja-audio-video-properties caja-open-terminal caja-sendto caja-share caja-wallpaper cpio engrampa eom gnome-keyring lightdm-gtk-greeter mate mate-applets mate-calc mate-icon-theme mate-icon-theme-faenza mate-media mate-netbook mate-power-manager mate-screensaver mate-system-monitor mate-terminal mate-user-share mate-utils mozo network-manager-applet pluma python-gobject unace unrar webp-pixbuf-loader xdg-user-dirs-gtk" + deskpkgs="${basepkgs[*]} atril blueman caja-actions caja-audio-video-properties caja-open-terminal caja-sendto caja-share caja-wallpaper cpio engrampa eom gnome-keyring lightdm-gtk-greeter lightdm-gtk-greeter-settings mate mate-applets mate-calc mate-icon-theme-faenza mate-media mate-netbook mate-power-manager mate-screensaver mate-system-monitor mate-terminal mate-user-share mate-utils mozo network-manager-applet pluma python-gobject unace unrar webp-pixbuf-loader xdg-user-dirs-gtk" displaymanager="lightdm" ;; 11) # Base System: @@ -6206,13 +6269,17 @@ pkg_collection() { [[ "${vendor}" == "Virtual Machine" ]] && custarray+=("${vmpkgs}") [[ "${vendor}" != "Virtual Machine" ]] && custarray+=(linux-firmware) [[ "${nvidiaprop}" == "y" ]] && custarray+=("${kernel}-headers") - [[ "${greeternmbr}" =~ ^(1|2|3)$ ]] && custarray+=("${greeter}") + [[ "${greeternmbr}" =~ ^(1|2|3|4)$ ]] && custarray+=("${greeter}") deskpkgs="${custarray[*]}" ;; 13) # Cosmic Desktop: deskpkgs="${basepkgs[*]} cosmic dconf gnome-keyring gvfs gvfs-dnssd gvfs-nfs gvfs-smb packagekit power-profiles-daemon pulseaudio-alsa" displaymanager="cosmic-greeter" ;; + + 14) # Pantheon Desktop: + deskpkgs="${basepkgs[*]} pantheon pantheon-print sound-theme-elementary" + displaymanager="lightdm" ;; esac } ################################################################################################### @@ -7348,16 +7415,7 @@ ${magenta}###${nc}--------------------------------${magenta}[ ${bwhite}Chroot & main_chroot if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then - if [[ "${desktop}" == "7" ]]; then - local stage_prompt="Deepin Greeter Configuration" - if arch-chroot /mnt <<-DEEPIN > "${void}" 2>&1 2> "${log}" ; then - sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf || exit -DEEPIN - stage_ok - else - stage_fail - fi - elif [[ "${desktop}" =~ ^(5|8|10)$ ]]; then + if [[ "${desktop}" =~ ^(5|8|10)$ ]]; then local stage_prompt="GTK Greeter Configuration" if arch-chroot /mnt <<-GTK > "${void}" 2>&1 2> "${log}" ; then sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf || exit @@ -7375,6 +7433,24 @@ SLICK else stage_fail fi + elif [[ "${desktop}" == "7" ]]; then + local stage_prompt="Deepin Greeter Configuration" + if arch-chroot /mnt <<-DEEPIN > "${void}" 2>&1 2> "${log}" ; then + sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf || exit +DEEPIN + stage_ok + else + stage_fail + fi + elif [[ "${desktop}" == "14" ]]; then + local stage_prompt="Pantheon Greeter Configuration" + if arch-chroot /mnt <<-PANTHEON > "${void}" 2>&1 2> "${log}" ; then + sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=io.elementary.greeter|g' /etc/lightdm/lightdm.conf || exit +PANTHEON + stage_ok + else + stage_fail + fi fi fi @@ -7445,6 +7521,15 @@ DEEPIN else stage_fail fi + elif [[ "${greeternmbr}" == "4" ]]; then + local stage_prompt="Pantheon Greeter Configuration" + if arch-chroot /mnt <<-PANTHEON > "${void}" 2>&1 2> "${log}" ; then + sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=io.elementary.greeter|g' /etc/lightdm/lightdm.conf || exit +PANTHEON + stage_ok + else + stage_fail + fi fi fi @@ -7485,7 +7570,7 @@ CUSTOM_SRVC log="Amelia.log" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" trg="" - vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vendor="" vendors="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" encr_home_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" efiname="" path="" hometype="" homeform="" LuksParts="" nvidia_aur="" web_aur_url="") + vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vendor="" vendors="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" encr_home_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" efiname="" path="" hometype="" homeform="" LuksParts="" nvidia_aur="" web_aur_url="" session="" alt_session="" session_support="" alt_session_pack="") export "${vars[@]}" validpkgs=() sleep 0.2