Tweaks to live session setup
This commit is contained in:
parent
5727b5902b
commit
c848e2c446
68
installer
68
installer
@ -6,7 +6,7 @@
|
|||||||
# AIF, Calamares, and the Arch Wiki.. Credit where credit is due
|
# AIF, Calamares, and the Arch Wiki.. Credit where credit is due
|
||||||
|
|
||||||
# shellcheck disable=SC2086,SC2046,SC2254,SC2164
|
# shellcheck disable=SC2086,SC2046,SC2254,SC2164
|
||||||
VER=2.1.59
|
VER=2.1.60
|
||||||
|
|
||||||
# default values {
|
# default values {
|
||||||
|
|
||||||
@ -36,13 +36,11 @@ CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' | awk '{gsub(/\.map\.gz|.*
|
|||||||
|
|
||||||
export DIALOGOPTS="--cr-wrap"
|
export DIALOGOPTS="--cr-wrap"
|
||||||
|
|
||||||
# }
|
|
||||||
|
|
||||||
# package arrays {
|
|
||||||
|
|
||||||
# package arrays built later from user selections
|
# package arrays built later from user selections
|
||||||
typeset -a SES_PKGS USER_PKGS
|
typeset -a SES_PKGS USER_PKGS
|
||||||
|
|
||||||
|
# }
|
||||||
|
|
||||||
# packages installed specific to archlabs, installed when any session is chosen {
|
# packages installed specific to archlabs, installed when any session is chosen {
|
||||||
typeset -a BASE_PKGS=(
|
typeset -a BASE_PKGS=(
|
||||||
"alsa-firmware"
|
"alsa-firmware"
|
||||||
@ -216,8 +214,6 @@ declare -A PKG_EXT=(
|
|||||||
[zathura]='zathura-pdf-poppler'
|
[zathura]='zathura-pdf-poppler'
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# }
|
|
||||||
|
|
||||||
# commands used to install each bootloader, however most get modified during runtime {
|
# commands used to install each bootloader, however most get modified during runtime {
|
||||||
declare -A BCMDS=(
|
declare -A BCMDS=(
|
||||||
[efistub]='efibootmgr -v -d /dev/sda -p 1 -c -l'
|
[efistub]='efibootmgr -v -d /dev/sda -p 1 -c -l'
|
||||||
@ -227,12 +223,6 @@ declare -A BCMDS=(
|
|||||||
[systemd-boot]='bootctl --path=/boot install'
|
[systemd-boot]='bootctl --path=/boot install'
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# sessions that provide their own super bind and set the wallpaper {
|
|
||||||
declare WM_PKG_SES='openbox|bspwm|i3-gaps|fluxbox|jwm|awesome'
|
|
||||||
declare SELF_CONTAINED='plasma|gnome|cinnamon|deepin'
|
|
||||||
declare SELF_CONTAINED_SES='startplasma-x11|gnome-session|startdde|cinnamon-session'
|
|
||||||
# }
|
|
||||||
|
|
||||||
# executable name for each wm/de used in ~/.xinitrc {
|
# executable name for each wm/de used in ~/.xinitrc {
|
||||||
declare -A WM_SESSIONS=(
|
declare -A WM_SESSIONS=(
|
||||||
[awesome]='awesome'
|
[awesome]='awesome'
|
||||||
@ -1923,7 +1913,7 @@ install_cleanup()
|
|||||||
[[ $LOGIN_WM == 'dwm' ]] && sed -i '/super/d; /picom/d' "$MNT/home/$user/.xprofile" "$MNT/root/.xprofile"
|
[[ $LOGIN_WM == 'dwm' ]] && sed -i '/super/d; /picom/d' "$MNT/home/$user/.xprofile" "$MNT/root/.xprofile"
|
||||||
|
|
||||||
# remove some commands from ~/.xprofile when using self contained sessions
|
# remove some commands from ~/.xprofile when using self contained sessions
|
||||||
if [[ $LOGIN_WM =~ ($SELF_CONTAINED_SES) || ($LOGIN_TYPE != 'xinit' && $INSTALL_WMS =~ ($SELF_CONTAINED)) ]]; then
|
if [[ $LOGIN_WM =~ (startplasma-x11|gnome-session|startdde|cinnamon-session) || ($LOGIN_TYPE != 'xinit' && $INSTALL_WMS =~ (plasma|gnome|cinnamon|deepin)) ]]; then
|
||||||
sed -i '/super/d; /nitrogen/d; /picom/d' "$MNT/home/$user/.xprofile" "$MNT/root/.xprofile"
|
sed -i '/super/d; /nitrogen/d; /picom/d' "$MNT/home/$user/.xprofile" "$MNT/root/.xprofile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -2012,7 +2002,7 @@ install_packages()
|
|||||||
|
|
||||||
if [[ $INSTALL_WMS ]]; then
|
if [[ $INSTALL_WMS ]]; then
|
||||||
inpkg+=("${BASE_PKGS[@]}")
|
inpkg+=("${BASE_PKGS[@]}")
|
||||||
[[ $INSTALL_WMS =~ ($WM_PKG_SES) ]] && inpkg+=("${WM_PKGS[@]}")
|
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|fluxbox|jwm|awesome) ]] && inpkg+=("${WM_PKGS[@]}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in ${LOGIN_PKGS[$LOGIN_TYPE]}; do
|
for i in ${LOGIN_PKGS[$LOGIN_TYPE]}; do
|
||||||
@ -3113,32 +3103,50 @@ live()
|
|||||||
elif ! net_connect; then
|
elif ! net_connect; then
|
||||||
msg "Not Connected" "\nRunning live requires an active internet connection to install packages.\n\nExiting..\n" 2
|
msg "Not Connected" "\nRunning live requires an active internet connection to install packages.\n\nExiting..\n" 2
|
||||||
die 1
|
die 1
|
||||||
elif (( $(awk '/MemTotal/ {print int($2 * 1024 / 1000 / 1000)}' /proc/meminfo) < 4704)); then
|
|
||||||
msg "Not Enough Memory" "\nLive session requires at least 4.5G of system memory for installing packages.\n\nExiting..\n" 2
|
|
||||||
die 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
m=$(awk '/MemTotal/ {print int($2 / 1000)}' /proc/meminfo)
|
||||||
|
case "$ses" in
|
||||||
|
plasma)
|
||||||
|
if (( m < 6650 )); then
|
||||||
|
msg "Not Enough Memory" "\nLive session requires at least 6.5G of system memory for installing packages.\n\nExiting..\n" 2
|
||||||
|
die 1
|
||||||
|
fi
|
||||||
|
s="6G"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if (( m < 4600 )); then
|
||||||
|
msg "Not Enough Memory" "\nLive session requires at least 4.5G of system memory for installing packages.\n\nExiting..\n" 2
|
||||||
|
die 1
|
||||||
|
fi
|
||||||
|
s="4G"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
clear
|
clear
|
||||||
echo "Sorting mirrorlist"
|
|
||||||
if ! mount /run/archiso/cowspace -o remount,size=4G; then
|
if ! mount /run/archiso/cowspace -o remount,size=4G; then
|
||||||
msg "Remount Fail" "\nUnable to remount root with a larger copy-on-write space, this is needed for installing packages.\n\nExiting..\n" 2
|
msg "Remount Fail" "\nUnable to remount root with a larger copy-on-write space, this is needed for installing packages.\n\nExiting..\n" 2
|
||||||
die 1
|
die 1
|
||||||
fi
|
fi
|
||||||
install_mirrorlist
|
[[ -f /etc/pacman.d/mirrorlist.bak ]] || { echo "Sorting mirrorlist"; install_mirrorlist; }
|
||||||
al_repo "/etc/pacman.conf"
|
al_repo "/etc/pacman.conf"
|
||||||
pacman -Syyu --noconfirm || die 1
|
tput cnorm
|
||||||
|
pacman -Syyu --noconfirm || exit 1
|
||||||
rm -rf /var/cache/pacman/pkg/* # */
|
rm -rf /var/cache/pacman/pkg/* # */
|
||||||
pacman -S ${BASE_PKGS[*]} xorg-xinit --needed --noconfirm || die 1
|
pacman -S ${BASE_PKGS[*]} xorg-xinit --needed --noconfirm || exit 1
|
||||||
rm -rf /var/cache/pacman/pkg/* # */
|
rm -rf /var/cache/pacman/pkg/* # */
|
||||||
case "$ses" in
|
case "$ses" in
|
||||||
$WM_PKG_SES)
|
openbox|bspwm|i3-gaps|fluxbox|jwm|awesome)
|
||||||
pacman -S "$ses" ${WM_PKGS[*]} ${WM_EXT[$ses]} --needed --noconfirm || die 1
|
pacman -S "$ses" ${WM_PKGS[*]} ${WM_EXT[$ses]} --needed --noconfirm || exit 1
|
||||||
;;
|
;;
|
||||||
$SELF_CONTAINED)
|
gnome|cinnamon|deepin)
|
||||||
pacman -S "$ses" ${WM_EXT[$ses]} --needed --noconfirm || die 1
|
pacman -S "$ses" ${WM_EXT[$ses]} --needed --noconfirm || exit 1
|
||||||
|
;;
|
||||||
|
plasma)
|
||||||
|
pacman -S "$ses" --needed --noconfirm || exit 1
|
||||||
;;
|
;;
|
||||||
dwm)
|
dwm)
|
||||||
pacman -S git make gcc pkgconf --needed --noconfirm || die 1
|
pacman -S git make gcc pkgconf --needed --noconfirm || exit 1
|
||||||
install_suckless "/root" nochroot
|
install_suckless "/root" nochroot
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -3147,7 +3155,7 @@ live()
|
|||||||
cp -rfT /etc/skel /root
|
cp -rfT /etc/skel /root
|
||||||
install_tearfree "/etc/X11/xorg.conf.d"
|
install_tearfree "/etc/X11/xorg.conf.d"
|
||||||
case "$ses" in
|
case "$ses" in
|
||||||
$SELF_CONTAINED)
|
plasma|gnome|cinnamon|deepin)
|
||||||
sed -i '/super/d; /nitrogen/d; /picom/d' /root/.xprofile
|
sed -i '/super/d; /nitrogen/d; /picom/d' /root/.xprofile
|
||||||
;;
|
;;
|
||||||
dwm)
|
dwm)
|
||||||
@ -3157,8 +3165,8 @@ live()
|
|||||||
rm -f /root/.zlogin
|
rm -f /root/.zlogin
|
||||||
echo -e "pulseaudio &\n(sleep 1; pamixer --unmute --set-volume 50) &" >> /root/.xprofile
|
echo -e "pulseaudio &\n(sleep 1; pamixer --unmute --set-volume 50) &" >> /root/.xprofile
|
||||||
sed -i "/exec/ c exec ${WM_SESSIONS[$ses]}" /root/.xinitrc
|
sed -i "/exec/ c exec ${WM_SESSIONS[$ses]}" /root/.xinitrc
|
||||||
printf "\n%s has been set as the login session in ~/.xinitrc, to start the session simply run\n\n\tstartx\n\n" "${WM_SESSIONS[$ses]}"
|
printf "\n%s has been set as the login session in ~/.xinitrc, to start it run\n\n\tstartx\n\n" "$ses"
|
||||||
die 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
|
Reference in New Issue
Block a user