Add ly to login options, remove extra ucode install
This commit is contained in:
parent
185c31c9d1
commit
eec825e909
@ -5,7 +5,7 @@
|
||||
# Some ideas and code reworked from other resources
|
||||
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
|
||||
|
||||
VER="2.0.55" # installer version
|
||||
VER="2.0.56" # installer version
|
||||
DIST="ArchLabs" # linux distributor
|
||||
MNT="/mnt" # install mountpoint
|
||||
ANS="/tmp/ans" # dialog answer file
|
||||
@ -53,7 +53,7 @@ EXMNTS='' # when an extra partition is mounted append it's info
|
||||
FONT="ter-i16n" # font used for the linux console
|
||||
HOOKS="shutdown" # list of additional HOOKS to add in /etc/mkinitcpio.conf
|
||||
|
||||
LOGIN_TYPE='' # login manager can be: lightdm, xinit
|
||||
LOGIN_TYPE='' # login manager can be: lightdm, xinit, ly
|
||||
LOGIN_WM='' # default login session to be placed in ~/.xinitrc
|
||||
LOGINRC='' # login shell rc file, eg. .zprofile, .bash_profile, .profile
|
||||
|
||||
@ -95,11 +95,11 @@ ISO_BASE+="pacman-contrib parted rsync sdparm smartmontools wget wireless_tools
|
||||
ISO_BASE+="alsa-firmware alsa-lib alsa-plugins pulseaudio pulseaudio-alsa networkmanager w3m htop wireless-regdb "
|
||||
ISO_BASE+="lm_sensors lsb-release p7zip pamixer reflector unrar ranger terminus-font ttf-dejavu archlabs-keyring"
|
||||
|
||||
# archlabs base packages
|
||||
# archlabs base
|
||||
AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes archlabs-dARK archlabs-icons archlabs-wallpapers archlabs-scripts"
|
||||
|
||||
# baseline (usually installed in the background)
|
||||
BASE_PKGS="base-devel xorg xorg-drivers xorg-xinit sudo git gvfs gtk3 gtk-engines gtk-engine-murrine pavucontrol tumbler "
|
||||
BASE_PKGS="base-devel xorg xorg-drivers sudo git gvfs gtk3 gtk-engines gtk-engine-murrine pavucontrol tumbler "
|
||||
BASE_PKGS+="playerctl ffmpeg gstreamer libmad libmatroska gst-libav gst-plugins-base gst-plugins-good scrot"
|
||||
|
||||
# extras for window managers
|
||||
@ -219,6 +219,7 @@ declare -A FS_OPTS=(
|
||||
# packages installed for each login option {
|
||||
declare -A LOGIN_PKGS=(
|
||||
[xinit]='xorg-xinit'
|
||||
[ly]='archlabs-ly'
|
||||
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
|
||||
) # }
|
||||
|
||||
@ -424,24 +425,27 @@ select_login()
|
||||
if [[ -z $LOGIN_TYPE ]]; then
|
||||
dlg LOGIN_TYPE menu "Login Management" "\nSelect what kind of login management to use." \
|
||||
"xinit" "Console login without a display manager" \
|
||||
"ly" "TUI display manager with a ncurses-like interface"
|
||||
"lightdm" "Lightweight display manager with a gtk greeter" || return 1
|
||||
fi
|
||||
|
||||
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
||||
AUTOLOGIN=''
|
||||
EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf"
|
||||
else
|
||||
if [[ $LOGIN_TYPE == 'xinit' ]]; then
|
||||
EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
|
||||
# define what wm/de to use for xinit
|
||||
if (( $(wc -w <<< "$INSTALL_WMS") > 1 )); then
|
||||
dlg LOGIN_WM menu "Login Management" "$_login" $LOGIN_CHOICES || return 1
|
||||
LOGIN_WM="${WM_SESSIONS[$LOGIN_WM]}"
|
||||
fi
|
||||
[[ -z $LOGIN_WM ]] && LOGIN_WM="${WM_SESSIONS[${INSTALL_WMS%% *}]}"
|
||||
|
||||
# autologin
|
||||
yesno "Autologin" "$(sed "s|USER|$NEWUSER|g; s|RC|$LOGINRC|g" <<< "$_autologin")" && AUTOLOGIN=true || AUTOLOGIN=''
|
||||
|
||||
EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
|
||||
else
|
||||
AUTOLOGIN='' # no autologin for DMs
|
||||
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
||||
EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf"
|
||||
elif [[ $LOGIN_TYPE == 'ly' ]]; then
|
||||
EDIT_FILES[login]="/etc/ly/config.ini"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@ -463,7 +467,6 @@ select_config()
|
||||
until [[ $ZONE && $SUBZ ]]; do
|
||||
dlg ZONE menu "Timezone" "$_timez" America - Australia - Asia - Atlantic - Africa - Europe - Indian - Pacific - Arctic - Antarctica - || break
|
||||
dlg SUBZ menu "Timezone" "$_timesubz" $(awk '/'"$ZONE"'\// {gsub(/'"$ZONE"'\//, ""); print $3 " - "}' /usr/share/zoneinfo/zone.tab | sort) || continue
|
||||
yesno "Timezone" "\nConfirm time zone: $ZONE/$SUBZ\n" || unset ZONE
|
||||
done
|
||||
[[ $ZONE && $SUBZ ]] || { i=2; continue; } ;;
|
||||
4) dlg KERNEL menu "Kernel" "\nChoose which kernel to use." \
|
||||
@ -477,11 +480,7 @@ select_config()
|
||||
(( i++ )) # progress through to the next choice
|
||||
done
|
||||
|
||||
case $MYSHELL in
|
||||
'/bin/bash') LOGINRC='.bash_profile' ;;
|
||||
'/usr/bin/zsh') LOGINRC='.zprofile' ;;
|
||||
'/usr/bin/mksh') LOGINRC='.profile' ;;
|
||||
esac
|
||||
case $MYSHELL in *bash) LOGINRC='.bash_profile' ;; *zsh) LOGINRC='.zprofile' ;; *mksh) LOGINRC='.profile' ;; esac
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -1470,6 +1469,8 @@ install_base()
|
||||
|
||||
install_boot()
|
||||
{
|
||||
echo "Installing $BOOTLDR"
|
||||
|
||||
if [[ $ROOT_PART == /dev/mapper* ]]; then
|
||||
ROOT_PART_ID="$ROOT_PART"
|
||||
else
|
||||
@ -1479,17 +1480,11 @@ install_boot()
|
||||
fi
|
||||
|
||||
if [[ $SYS == 'UEFI' ]]; then
|
||||
# our old installs
|
||||
# remove our old install and generic BOOT/ dir
|
||||
find $MNT/$BOOTDIR/EFI/ -maxdepth 1 -mindepth 1 -iname "$DIST" -type d -delete
|
||||
# generic BOOT/ dir
|
||||
find $MNT/$BOOTDIR/EFI/ -maxdepth 1 -mindepth 1 -iname 'BOOT' -type d -delete
|
||||
fi
|
||||
|
||||
if [[ ! -e $MNT/$BOOTDIR/$UCODE ]]; then
|
||||
chrun "pacman -S $UCODE --noconfirm"
|
||||
[[ -e $MNT/$BOOTDIR/$UCODE ]] || UCODE=""
|
||||
fi
|
||||
|
||||
prerun_$BOOTLDR
|
||||
chrun "${BCMDS[$BOOTLDR]}" 2>$ERR
|
||||
errshow 1 "${BCMDS[$BOOTLDR]}"
|
||||
@ -1519,6 +1514,7 @@ install_boot()
|
||||
|
||||
install_user()
|
||||
{
|
||||
echo "Creating new user $NEWUSER and setting password"
|
||||
rm -f $MNT/root/.zshrc # remove welcome message from root zshrc
|
||||
|
||||
chrun "chpasswd <<< 'root:$ROOT_PASS'" 2>$ERR
|
||||
@ -1549,7 +1545,7 @@ install_user()
|
||||
[[ $WM_PKGS == *xfce* ]] && echo 'volumeicon &' >> $MNT/home/$NEWUSER/.xprofile
|
||||
|
||||
# remove some commands from ~/.xprofile when using KDE or Gnome as the login session
|
||||
if [[ $LOGIN_WM =~ (startkde|gnome-session) || ($LOGIN_TYPE == 'lightdm' && $WM_PKGS =~ (plasma|gnome)) ]]; then
|
||||
if [[ $LOGIN_WM =~ (startkde|gnome-session) || ($LOGIN_TYPE =~ (lightdm|ly) && $WM_PKGS =~ (plasma|gnome)) ]]; then
|
||||
sed -i '/super/d' $MNT/home/$NEWUSER/.xprofile $MNT/root/.xprofile
|
||||
sed -i '/nitrogen/d' $MNT/home/$NEWUSER/.xprofile $MNT/root/.xprofile
|
||||
sed -i '/compton/d' $MNT/home/$NEWUSER/.xprofile $MNT/root/.xprofile
|
||||
@ -1591,8 +1587,16 @@ install_xinit()
|
||||
fi
|
||||
}
|
||||
|
||||
install_ly()
|
||||
{
|
||||
rm -rf "$SERVICE" "$MNT/home/$NEWUSER"/.{xinitrc,profile,zprofile,bash_profile}
|
||||
chrun 'systemctl enable ly.service' 2>$ERR
|
||||
errshow 1 "systemctl enable ly.service"
|
||||
}
|
||||
|
||||
install_login()
|
||||
{
|
||||
echo "Setting up $LOGIN_TYPE"
|
||||
SERVICE="$MNT/etc/systemd/system/getty@tty1.service.d"
|
||||
install_${LOGIN_TYPE:-xinit}
|
||||
}
|
||||
@ -1623,7 +1627,7 @@ install_awesome()
|
||||
cp -rT "/mnt/home/$NEWUSER/archlabs-awesome" /mnt/etc/skel
|
||||
rm -rf "/home/$NEWUSER/"{.git,archlabs-awesome,screenshots}
|
||||
printf "You will need to install pamac separately using: 'baph -i pamac-aur'\n"
|
||||
sleep 3
|
||||
sleep 2
|
||||
else
|
||||
printf "failed to clone awesome config repo\n"
|
||||
fi
|
||||
@ -1632,7 +1636,7 @@ install_awesome()
|
||||
install_packages()
|
||||
{
|
||||
local rmpkg=""
|
||||
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS $UCODE "
|
||||
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS "
|
||||
|
||||
if pacman -Qsq 'archlabs-installer' >/dev/null 2>&1; then
|
||||
rmpkg+="archlabs-installer "
|
||||
@ -1668,7 +1672,7 @@ install_packages()
|
||||
[[ $rmpkg ]] && chrun "pacman -Rns $rmpkg --noconfirm"
|
||||
|
||||
# reinstalling iputils fixes the network issue for non-root users
|
||||
chrun "pacman -S iputils --noconfirm"
|
||||
chrun "pacman -S iputils $UCODE --noconfirm"
|
||||
|
||||
# install the packages chosen throughout the install
|
||||
chrun "pacman -S $inpkg --needed --noconfirm" 2>$ERR
|
||||
@ -1732,8 +1736,9 @@ install_mirrorlist()
|
||||
local mfile="$1" # output mirrorlist file
|
||||
|
||||
if hash reflector >/dev/null 2>&1; then
|
||||
reflector --score 80 -l 40 -f 5 --sort rate --save "$mfile"
|
||||
reflector --verbose --score 80 -l 40 -f 5 --sort rate --save "$mfile"
|
||||
elif hash rankmirrors >/dev/null 2>&1; then
|
||||
echo "Sorting mirrorlist"
|
||||
local key="access_key=5f29642060ab983b31fdf4c2935d8c56"
|
||||
ip_add="$(curl -fsSL "http://api.ipstack.com/check&?$key&fields=ip" | python -c "import sys, json; print(json.load(sys.stdin)['ip'])")"
|
||||
country="$(curl -fsSL "http://api.ipstack.com/$ip_add?$key&fields=country_code" | python -c "import sys, json; print(json.load(sys.stdin)['country_code'])")"
|
||||
@ -2380,7 +2385,7 @@ die()
|
||||
dlg()
|
||||
{
|
||||
local var="$1" # assign output from dialog to var
|
||||
local dlg_t="$2" # display a dialog of type dlg_t (menu, check, input)
|
||||
local dlg_t="$2" # dialog type (menu, check, input)
|
||||
local title="$3" # dialog title
|
||||
local body="$4" # dialog message
|
||||
local n=0 # number of items to display
|
||||
|
Reference in New Issue
Block a user