Add: Main Menu > System Configuration > Desktop Setup > Optimizations : The installer now offers installation of TLP

Change: Bluetooth & Network Manager activation is done a bit differently
Change: Minor code improvements for efficiency or aesthetics
This commit is contained in:
Jane Doe
2025-08-09 18:15:27 +03:00
parent 156583f990
commit 86b08cfe91
+115 -75
View File
@@ -2,7 +2,7 @@
# Amelia Installer
# Source: https://gitlab.com/prism7/archery
# Version: 9.1.0
# Version: 9.2.0
set -euo pipefail
###################################################################################################
@@ -2121,10 +2121,10 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Deskt
Enter a number: "
read -r -p "
==> " packages
==> " desktop
echo
case "${packages}" in
case "${desktop}" in
1)
desktopname="Plasma"
deskname ;;
@@ -2175,15 +2175,13 @@ Enter a number: "
return 1 ;;
esac
ok
if [[ -n "${web}" ]]; then
if [[ "${packages}" =~ ^(11|12)$ ]]; then
if [[ -n "${web}" && "${desktop}" =~ ^(11|12)$ ]]; then
until web_browser; do : ; done
fi
fi
if [[ "${printer}" == "y" ]]; then
if [[ "${packages}" =~ ^(11|12)$ ]]; then
if [[ "${printer}" == "y" && "${desktop}" =~ ^(11|12)$ ]]; then
until print_scan; do : ; done
fi
fi
}
###################################################################################################
@@ -2348,7 +2346,7 @@ Enter [Y/n]: "
###################################################################################################
web_browser() {
if [[ "${packages}" =~ ^(11|12)$ ]] && [[ -n "${revision}" ]]; then
if [[ "${desktop}" =~ ^(11|12)$ ]] && [[ -n "${revision}" ]]; then
web_browser=""
web_slct=""
return 0
@@ -2360,7 +2358,7 @@ web_browser() {
${magenta}###${nc}----------------------------------${magenta}[ ${bwhite}Web browser Selection${nc} ${magenta}]${nc}----------------------------------${magenta}###
"
local prompt="Web Browser"
if [[ "${packages}" =~ ^(1|2|3|4|5|6|7|8|9|10|13)$ ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
sleep 0.2
YELLOW "
@@ -2461,7 +2459,7 @@ ${magenta}###${nc}--------------------------------${magenta}[ ${bwhite}Printer &
"
local prompt="Printer & Scanner Support"
if [[ "${hypervisor}" == "none" ]]; then
if [[ "${packages}" =~ ^(1|2|3|4|5|6|7|8|9|10|13)$ ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
sleep 0.2
YELLOW "
@@ -2483,9 +2481,9 @@ Enter [Y/n]: "
case "${printer}" in
y)
if [[ "${packages}" == "2" ]]; then
if [[ "${desktop}" == "2" ]]; then
print_pkgs="cups-pdf cups-browsed cups-pk-helper ipp-usb nss-mdns sane-airscan print-manager skanlite system-config-printer xdg-utils colord"
elif [[ "${packages}" == "4" ]]; then
elif [[ "${desktop}" == "4" ]]; then
print_pkgs="cups-pdf cups-browsed cups-pk-helper ipp-usb nss-mdns sane-airscan simple-scan system-config-printer xdg-utils colord"
else
print_pkgs="cups-pdf cups-browsed cups-pk-helper ipp-usb nss-mdns sane-airscan system-config-printer xdg-utils colord"
@@ -2629,7 +2627,9 @@ ${magenta}###${nc}--------------------------------------${magenta}[ ${bwhite}Opt
[9] Rtkit
[ ] Return to System Configuration "
[10] Tlp
[ ] Return to System Configuration "
BLUE "
@@ -2665,6 +2665,9 @@ Enter a number: "
9)
until rtkit; do : ; done
return 1 ;;
10)
until tlp; do : ; done
return 1 ;;
"")
set_optm_slct="yes"
until sys_submn; do : ; done ;;
@@ -3123,6 +3126,51 @@ Enter [Y/n]: "
ok
}
###################################################################################################
tlp() {
local prompt="Tlp Setup"
sleep 0.2
NC "
${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}Tlp Setup${nc} ${magenta}]${nc}----------------------------------------${magenta}###
"
sleep 0.2
YELLOW "
### Tlp is a laptop battery power saving utility for Linux
### working out-of-the-box & easy to further configure
> Install & enable ${nc}'tlp' ${yellow} ? [y/N] "
BLUE "
Enter [y/N]: "
read -r -p "
==> " tlp
echo
tlp="${tlp:-n}"
tlp="${tlp,,}"
if [[ "${tlp}" == "y" ]]; then
YELLOW "
### 'tlp' service will be enabled
"
elif [[ "${tlp}" == "n" ]]; then
skip
else
y_n
return 1
fi
ok
}
###################################################################################################
dsks_submn() {
sleep 0.2
@@ -3490,13 +3538,13 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Prese
[1] Create '/ESP' and '/Root' (${cyan}Ext4${nc},${magenta}Btrfs${nc})
[1] Create '/ESP' & '/Root' (${cyan}Ext4${nc},${magenta}Btrfs${nc})
[2] Create '/ESP', '/Root' and '/Swap' (${cyan}Ext4${nc},${magenta}Btrfs${nc})
[2] Create '/ESP', '/Root' & '/Swap' (${cyan}Ext4${nc},${magenta}Btrfs${nc})
[3] Create '/ESP', '/Root' and '/Home' (${cyan}Ext4${nc})
[3] Create '/ESP', '/Root' & '/Home' (${cyan}Ext4${nc})
[4] Create '/ESP', '/Root', '/Home' and '/Swap' (${cyan}Ext4${nc}) "
[4] Create '/ESP', '/Root', '/Home' & '/Swap' (${cyan}Ext4${nc}) "
BLUE "
@@ -4679,7 +4727,7 @@ instl() {
until dtct_gfx; do : ; done
fi
if [[ -z "${packages}" ]]; then
if [[ -z "${desktop}" ]]; then
local stage_prompt="Desktop Setup"
completion_err
until dsktp_slct; do : ; done
@@ -4688,14 +4736,14 @@ instl() {
until base_devel; do : ; done
fi
if [[ -z "${web_slct}" ]]; then
if [[ ! "${packages}" =~ ^(11|12)$ ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
until web_browser; do : ; done
fi
fi
if [[ "${hypervisor}" == "none" ]]; then
if [[ -z "${printer}" ]]; then
if [[ ! "${packages}" =~ ^(11|12)$ ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
until print_scan; do : ; done
fi
fi
@@ -5659,7 +5707,7 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
revise() {
revision="yes"
reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" packages="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_browser="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="")
reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" desktop="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_browser="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="")
export "${reset[@]}"
gfxpkgs=()
@@ -6086,12 +6134,12 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
fi
fi
if [[ -n "${shell}" ]]; then
basepkgs=(base efibootmgr nano networkmanager pkgstats sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${microcode}" "${shell}")
else
basepkgs=(base efibootmgr nano networkmanager pkgstats sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${microcode}")
fi
basepkgs=(base efibootmgr nano networkmanager pkgstats sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${microcode}" "${shell_pkgs}")
if [[ -n "${shell}" ]]; then
basepkgs+=("${shell}")
fi
if [[ -n "${nrg_plc}" ]]; then
basepkgs+=("${nrg_plc}")
fi
@@ -6100,12 +6148,9 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
else
basepkgs+=(alsa-firmware linux-firmware sof-firmware)
fi
if [[ ! "${packages}" =~ ^(11|12)$ ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
basepkgs+=(7zip alsa-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-libcamera pipewire-pulse pipewire-zeroconf reflector xdg-user-dirs)
fi
if [[ "${packages}" != "12" ]]; then
basepkgs+=("${shell_pkgs}")
fi
if [[ -n "${ukify}" ]]; then
basepkgs+=("${ukify}")
fi
@@ -6131,67 +6176,50 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
basepkgs+=("${web_browser}")
fi
case "${packages}" in
case "${desktop}" in
1) # Plasma Desktop:
deskpkgs="${basepkgs[*]} dolphin-plugins konsole plasma plasma-x11-session qt6-multimedia-gstreamer"
displaymanager="sddm"
bluetooth="bluetooth"
network="NetworkManager" ;;
displaymanager="sddm" ;;
2) # Plasma Light Desktop:
deskpkgs="${basepkgs[*]} ark bluedevil breeze-gtk colord-kde dolphin-plugins flatpak-kcm freerdp kate kcalc kclock kde-gtk-config kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdeplasma-addons kdf kdialog keditbookmarks kget 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-nm plasma-pa plasma-systemmonitor plasma-wayland-protocols plasma-x11-session sddm-kcm spectacle appmenu-gtk-module arj bluez-obex dosfstools ffmpegthumbs icoutils kvantum libappimage lrzip lzop maliit-keyboard ntfs-3g power-profiles-daemon qt5-xmlpatterns qt6-connectivity qt6-multimedia-gstreamer unarchiver unrar xdg-desktop-portal-gtk"
displaymanager="sddm"
bluetooth="bluetooth"
network="NetworkManager" ;;
displaymanager="sddm" ;;
3) # Gnome Desktop:
deskpkgs="${basepkgs[*]} gnome"
displaymanager="gdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
displaymanager="gdm" ;;
4) # Gnome Light Desktop:
deskpkgs="${basepkgs[*]} dconf-editor file-roller gdm gnome-browser-connector gnome-calculator gnome-clocks gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-shell-extensions gnome-system-monitor gnome-text-editor gnome-tweaks gnome-user-share gvfs gvfs-afc gvfs-mtp gvfs-smb loupe papers sushi dosfstools glib2-devel gparted ntfs-3g power-profiles-daemon unrar unzip xorg-xhost zip"
displaymanager="gdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
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-power-manager xfce4-pulseaudio-plugin xfce4-screensaver xfce4-screenshooter xfce4-taskmanager xfce4-whiskermenu-plugin xfce4-power-manager xiccd"
displaymanager="lightdm"
network="NetworkManager" ;;
displaymanager="lightdm" ;;
6) # Cinnamon Desktop:
deskpkgs="${basepkgs[*]} blueman cinnamon ffmpegthumbnailer gnome-color-manager gnome-keyring lightdm-slick-greeter touchegg wget ${terminal}"
displaymanager="lightdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
displaymanager="lightdm" ;;
7) # Deepin Desktop:
deskpkgs="${basepkgs[*]} adobe-source-han-sans-otc-fonts bluez deepin deepin-album deepin-calculator deepin-camera deepin-clipboard deepin-community-wallpapers deepin-compressor deepin-device-formatter deepin-editor deepin-font-manager deepin-grand-search deepin-kwin deepin-movie deepin-printer deepin-reader deepin-screensaver deepin-shortcut-viewer deepin-terminal gtk-engine-murrine iw proxychains-ng qt6-multimedia-gstreamer redshift zssh"
displaymanager="lightdm"
network="NetworkManager" ;;
displaymanager="lightdm" ;;
8) # Budgie Desktop:
deskpkgs="${basepkgs[*]} blueman budgie gnome-user-share lightdm-gtk-greeter nautilus network-manager-applet openssh papirus-icon-theme power-profiles-daemon rygel ${terminal}"
displaymanager="lightdm"
network="NetworkManager" ;;
displaymanager="lightdm" ;;
9) # Lxqt Desktop:
deskpkgs="${basepkgs[*]} blueman breeze-icons gvfs gvfs-mtp kimageformats libarchive lxqt network-manager-applet oxygen-icons python-pyxdg qt6-imageformats qt6-multimedia-gstreamer sddm xscreensaver xsettingsd"
displaymanager="sddm"
network="NetworkManager" ;;
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 gtk-engine-murrine gtk-engines 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"
displaymanager="lightdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
displaymanager="lightdm" ;;
11) # Base System:
deskpkgs="${basepkgs[*]}"
network="NetworkManager" ;;
deskpkgs="${basepkgs[*]}" ;;
12) # Custom System:
custarray=(base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}")
@@ -6229,8 +6257,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
13) # Cosmic Desktop:
deskpkgs="${basepkgs[*]} cosmic cosmic-player dconf packagekit power-profiles-daemon pulseaudio-alsa"
displaymanager="cosmic-greeter"
network="NetworkManager" ;;
displaymanager="cosmic-greeter" ;;
esac
pkg_displ
@@ -6724,6 +6751,19 @@ RTKIT
fi
fi
if [[ "${tlp}" == "y" ]]; then
local stage_prompt="Tlp Service Activation"
if arch-chroot /mnt <<-TLP > /dev/null 2>&1 2> amelia_log.txt ; then
pacman -S --noconfirm tlp || exit
systemctl enable tlp
systemctl mask systemd-rfkill.service systemd-rfkill.socket || exit
TLP
stage_ok
else
stage_fail
fi
fi
if [[ "${printer}" == "y" ]]; then
local stage_prompt="Print & Scan Services Activation"
if arch-chroot /mnt <<-PRINT_CONF > /dev/null 2>&1 2> amelia_log.txt ; then
@@ -7089,13 +7129,13 @@ chroot_conf() {
${magenta}###${nc}--------------------------------${magenta}[ ${bwhite}Chroot & Configure System${nc} ${magenta}]${nc}--------------------------------${magenta}###${nc}
"
# 'Vanilla' Setups Configuration:
if [[ "${packages}" != "12" ]]; then
# All Desktop Configuration:
if [[ "${desktop}" != "12" ]]; then
cnfg
main_chroot
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
if [[ "${packages}" == "7" ]]; then
if [[ "${desktop}" == "7" ]]; then
local stage_prompt="Deepin Greeter Configuration"
if arch-chroot /mnt <<-DEEPIN > /dev/null 2>&1 2> amelia_log.txt ; then
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf || exit
@@ -7104,7 +7144,7 @@ DEEPIN
else
stage_fail
fi
elif [[ "${packages}" == "5" || "${packages}" == "8" || "${packages}" == "10" ]]; then
elif [[ "${desktop}" =~ ^(5|8|10)$ ]]; then
local stage_prompt="GTK Greeter Configuration"
if arch-chroot /mnt <<-GTK > /dev/null 2>&1 2> amelia_log.txt ; then
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf || exit
@@ -7113,7 +7153,7 @@ GTK
else
stage_fail
fi
elif [[ "${packages}" == "6" ]]; then
elif [[ "${desktop}" == "6" ]]; then
local stage_prompt="Slick Greeter Configuration"
if arch-chroot /mnt <<-SLICK > /dev/null 2>&1 2> amelia_log.txt ; then
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf || exit
@@ -7126,10 +7166,10 @@ SLICK
fi
if [[ "${vendor}" != "Virtual Machine" ]]; then
if [[ -n "${bluetooth}" ]]; then
if [[ ! "${desktop}" =~ ^(11|12|13)$ ]]; then
local stage_prompt="Bluetooth Service Activation"
if arch-chroot /mnt <<-BLUETOOTH > /dev/null 2>&1 2> amelia_log.txt ; then
systemctl enable ${bluetooth} || exit
systemctl enable bluetooth || exit
BLUETOOTH
stage_ok
else
@@ -7149,10 +7189,10 @@ DMSERVICE
fi
fi
if [[ -n "${network}" ]]; then
if [[ "${desktop}" != "12" ]]; then
local stage_prompt="Network Manager Service Activation"
if arch-chroot /mnt <<-NETWORK > /dev/null 2>&1 2> amelia_log.txt ; then
systemctl enable ${network} || exit
systemctl enable NetworkManager || exit
NETWORK
stage_ok
else
@@ -7161,8 +7201,8 @@ NETWORK
fi
fi
#--------------------------------------------------------------------------------------------------
# 'Custom System' Configuration:
if [[ "${packages}" == "12" ]]; then
# Custom System Configuration:
if [[ "${desktop}" == "12" ]]; then
cnfg
main_chroot
@@ -7230,7 +7270,7 @@ CUSTOMSERV
tty="$(tty)"
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="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" 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="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_browser="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" web_slct="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="")
vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" desktop="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" 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="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_browser="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" web_slct="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="" tlp="")
export "${vars[@]}"
clear
first_check