Don't install junk for dwm, cleanup some messy sections

This commit is contained in:
natemaia 2019-08-30 18:59:30 -07:00
parent 741ae95e59
commit ff1002624b

View File

@ -14,8 +14,7 @@
# will result in "My Distro Linux" used where needed
: ${DIST="ArchLabs"}
VER="2.0.63" # installer version
VER="2.0.64" # installer version
MNT="/mnt" # install mountpoint
ANS="/tmp/ans" # dialog answer file
@ -101,7 +100,7 @@ AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes archlabs-dARK ar
# baseline (usually installed in the background)
BASE_PKGS="base-devel xorg xorg-drivers sudo git gvfs gtk3 gtk-engines gtk-engine-murrine pavucontrol tumbler xdg-user-dirs "
BASE_PKGS+="playerctl ffmpeg gstreamer libmad libmatroska gst-libav gst-plugins-base gst-plugins-good scrot bash-completion"
BASE_PKGS+="playerctl ffmpeg gstreamer libmad libmatroska gst-libav gst-plugins-base gst-plugins-good scrot"
# extras for window managers
WM_BASE_PKGS="arandr archlabs-networkmanager-dmenu nitrogen polkit-gnome volumeicon xclip exo laptop-detect "
@ -419,14 +418,12 @@ select_login()
AUTOLOGIN='' # no autologin unless using xinit
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" \
"gdm" "Gnome display manager" \
"sddm" "Simple desktop display manager" || return 1
fi
case $LOGIN_TYPE in
ly) EDIT_FILES[login]="/etc/ly/config.ini" ;;
@ -692,7 +689,7 @@ select_packages()
xterm "The standard terminal emulator for the X window system" "$(ofn xterm "${USER_PKGS[*]}")" \
zathura "Minimalistic document viewer" "$(ofn zathura "${USER_PKGS[*]}")"
if [[ $USER_PKGS ]]; then
if [[ $USER_PKGS ]]; then # add any needed PKG_EXT to the list
for i in $USER_PKGS; do
[[ ${PKG_EXT[$i]} && $USER_PKGS != *"${PKG_EXT[$i]}"* ]] && USER_PKGS+=" ${PKG_EXT[$i]}"
done
@ -1408,6 +1405,7 @@ install_base()
if [[ $VM ]]; then
find $MNT/etc/X11/xorg.conf.d/ -name '*.conf' -delete
elif lspci | grep ' VGA ' | grep -q 'Intel'; then
echo "Creating Intel VGA Tear Free config /etc/X11/xorg.conf.d/20-intel.conf"
cat > $MNT/etc/X11/xorg.conf.d/20-intel.conf <<- EOF
Section "Device"
Identifier "Intel Graphics"
@ -1504,7 +1502,6 @@ 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
@ -1516,6 +1513,7 @@ install_user()
[[ $MYSHELL == '/usr/bin/mksh' ]] && cp -fv $MNT/etc/skel/.mkshrc $MNT/root/.mkshrc
fi
echo "Creating new user $NEWUSER and setting password"
local groups='audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel'
chrun "useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER" 2>$ERR
@ -1531,7 +1529,6 @@ install_user()
fi
[[ $INSTALL_WMS == *dwm* ]] && install_suckless
[[ $WM_PKGS == *xfce* ]] && echo 'volumeicon &' >> $MNT/home/$NEWUSER/.xprofile
# remove some commands from ~/.xprofile when using KDE or Gnome as the login session
@ -1550,9 +1547,7 @@ install_user()
install_login()
{
local serv="$MNT/etc/systemd/system/getty@tty1.service.d"
echo "Setting up $LOGIN_TYPE"
case $LOGIN_TYPE in
ly|sddm|gdm|lightdm)
rm -rf "$serv" "$MNT/home/$NEWUSER/.xinitrc"
@ -1595,28 +1590,24 @@ install_packages()
local rmpkg="archlabs-installer "
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS "
# add extra packages chosen throughout the install
if [[ $MYSHELL == '/usr/bin/zsh' ]]; then
inpkg+="zsh-completions "
else
rmpkg+="zsh "
[[ $MYSHELL == '/usr/bin/mksh' ]] && inpkg+="mksh "
fi
case $MYSHELL in
*zsh) inpkg+="zsh-completions " ;;
*mksh) inpkg+="mksh " rmpkg+="zsh " ;;
*bash) inpkg+="bash-completion " rmpkg+="zsh " ;;
esac
# using a different kernel, remove the stock one
if [[ $KERNEL != 'linux' ]]; then
inpkg+="$KERNEL "
rmpkg+="linux "
fi
[[ $KERNEL != 'linux' ]] && inpkg+="$KERNEL " rmpkg+="linux "
# don't install extras on dwm only installs
if [[ $INSTALL_WMS != 'dwm' ]]; then
# gnome, plasma, and cinnamon have their own superkey bind and ksuperkey conflicts
[[ $INSTALL_WMS =~ ^(plasma|gnome|cinnamon)$ ]] || inpkg+="archlabs-ksuperkey "
# window manager only packages
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|dwm|fluxbox) ]] && inpkg+="$WM_BASE_PKGS "
# ensure a terminal gets installed if one wasn't chosen or a DE that installs one
[[ $inpkg =~ (term|urxvt|tilix|alacritty|sakura|tilda|plasma|cinnamon) || $INSTALL_WMS == *dwm* ]] || inpkg+="xterm "
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|fluxbox) ]] && inpkg+="$WM_BASE_PKGS "
else
inpkg+="arandr nitrogen polkit-gnome xclip xdotool compton gnome-keyring dunst feh "
fi
# update first to avoid issues
chrun "pacman -Syyu --noconfirm"
@ -1661,22 +1652,11 @@ install_suckless()
printf "failed to clone %s repo\n" "$i"
fi
done
if [[ -x $MNT/usr/bin/dwm ]]; then
printf "To configure dwm edit %s\n" "/home/$NEWUSER/suckless/dwm/config.h"
printf "You can then recompile it with 'sudo make clean install'\n"
sleep 2
fi
}
install_mkinitcpio()
{
local add=''
# luks keyfile creation
# currently not used due to not prompting for passphrase on startup
# [[ $LUKS_UUID && $LUKS_PASS && $SYS == 'UEFI' && $BOOTLDR == 'grub' ]] && luks_keyfile
[[ $LUKS ]] && add="encrypt"
[[ $LVM ]] && { [[ $add ]] && add+=" lvm2" || add+="lvm2"; }
sed -i "s/block filesystems/block ${add} filesystems ${HOOKS}/g" $MNT/etc/mkinitcpio.conf
@ -1739,10 +1719,6 @@ setup_grub()
[[ $BOOT_DEV ]] || { part_device 1 || return 1; }
BCMDS[grub]="grub-install --recheck --force --target=i386-pc $BOOT_DEV"
else
# since we're not using the keyfile this is dead code
# if [[ $ROOT_PART == */dev/mapper/* && -z $LVM && -z $LUKS_PASS ]]; then
# luks_pass "$_luksopen" 1 || return 1
# fi
BCMDS[grub]="mount -t efivarfs efivarfs /sys/firmware/efi/efivars >/dev/null 2>&1
grub-install --recheck --force --target=x86_64-efi --efi-directory=/$BOOTDIR --bootloader-id=$DIST"
grep -q /sys/firmware/efi/efivars /proc/mounts || mount -t efivarfs efivarfs /sys/firmware/efi/efivars >/dev/null 2>&1
@ -2272,22 +2248,6 @@ luks_basic()
return 0
}
luks_keyfile()
{
if [[ ! -e $MNT/crypto_keyfile.bin ]]; then
# printf "Creating LUKS keyfile /crypto_keyfile.bin\n"
local n
n="$(lsblk -lno NAME,UUID,TYPE | awk "/$LUKS_UUID/"' && /part|crypt|lvm/ {print $1}')"
local mkkey="dd bs=512 count=8 if=/dev/urandom of=/crypto_keyfile.bin"
mkkey="$mkkey && chmod 000 /crypto_keyfile.bin"
mkkey="$mkkey && cryptsetup luksAddKey /dev/$n /crypto_keyfile.bin <<< '$LUKS_PASS'"
chrun "$mkkey"
sed -i 's/FILES=()/FILES=(\/crypto_keyfile.bin)/g' $MNT/etc/mkinitcpio.conf 2>$ERR
fi
return 0
}
luks_advanced()
{
if luks_setup; then
@ -2312,7 +2272,6 @@ luks_advanced()
ofn()
{
# does $2 contain $1
[[ "$2" == *"$1"* ]] && printf "on" || printf "off"
}
@ -2464,26 +2423,19 @@ errshow()
(( $1 == 1 )) && { fatal=1; shift; }
local txt="\nThe command exited abnormally:\n\n$1\n\n"
if [[ $err ]]; then
txt+="With the following message:\n\n$err\n\n"
local txt+="\nThe command exited abnormally:\n\n$1\n\nWith the following message:\n\n$err\n\n"
else
txt+="With no error message:\n\n"
local txt+="\nThe command exited abnormally:\n\n$1\n\nWith no error message:\n\n"
fi
if (( fatal )); then
txt+="Errors at this stage are fatal and the install cannot continue.\n"
else
txt+="Errors at this stage are non-fatal and can be either fixed or ignored depending on the error.\n"
fi
msg "Install Error" "$txt"
if (( fatal )); then
msg "Install Error" "${txt}Errors at this stage are fatal and the install cannot continue.\n"
[[ -r $DBG && $TERM == 'linux' ]] && less "$DBG"
die 1
fi
msg "Install Error" "${txt}Errors at this stage are non-fatal and can be either fixed or ignored depending on the error.\n"
return 1
}
@ -2526,8 +2478,7 @@ net_connect()
{
if chk_connect; then
return 0
else
if hash nmtui >/dev/null 2>&1; then
elif hash nmtui >/dev/null 2>&1; then
tput civis
if [[ $TERM == 'linux' ]]; then
printf "%b" "\e]P1191919" "\e]P4191919"
@ -2537,10 +2488,12 @@ net_connect()
nmtui-connect
fi
chk_connect
elif hash wifi-menu >dev/null 2>&1; then
wifi-menu
chk_connect
else
return 1
fi
fi
}
no_bg_install()