Add jwm
This commit is contained in:
parent
6cc6c6d095
commit
60f53a3b51
@ -8,9 +8,9 @@
|
|||||||
# check for syntax errors
|
# check for syntax errors
|
||||||
# set -n
|
# set -n
|
||||||
|
|
||||||
VER=2.0.89
|
VER=2.0.90
|
||||||
|
|
||||||
# bulk default values {
|
# default values {
|
||||||
|
|
||||||
: ${DIST=ArchLabs} # distro name if not set
|
: ${DIST=ArchLabs} # distro name if not set
|
||||||
MNT=/mnt # installation root mountpoint
|
MNT=/mnt # installation root mountpoint
|
||||||
@ -26,6 +26,7 @@ RUN=/run/archiso/bootmnt/arch/boot # path for live system /boot
|
|||||||
VM="$(dmesg | grep -i hypervisor)" # system running in a virtual machine
|
VM="$(dmesg | grep -i hypervisor)" # system running in a virtual machine
|
||||||
EXMNTS="" # extra partitions that were mounted, used to verify mountpoint and show user
|
EXMNTS="" # extra partitions that were mounted, used to verify mountpoint and show user
|
||||||
FORMATTED="" # partitions that have been formatted, allows skipping the format step
|
FORMATTED="" # partitions that have been formatted, allows skipping the format step
|
||||||
|
USER_CMD="" # optional command(s) entered by the user to run in the chroot
|
||||||
export DIALOGOPTS="--cr-wrap" # dialog environment variable to hold default options, see `man dialog`
|
export DIALOGOPTS="--cr-wrap" # dialog environment variable to hold default options, see `man dialog`
|
||||||
|
|
||||||
BASE_PKGS="base xorg xorg-drivers sudo git gvfs gtk3 libmad libmatroska tumbler "
|
BASE_PKGS="base xorg xorg-drivers sudo git gvfs gtk3 libmad libmatroska tumbler "
|
||||||
@ -57,13 +58,13 @@ declare -A BCMDS=(
|
|||||||
|
|
||||||
# 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=(
|
||||||
[dwm]='dwm' [i3-gaps]='i3' [bspwm]='bspwm' [awesome]='awesome' [plasma]='startkde' [xfce4]='startxfce4'
|
[dwm]='dwm' [jwm]='jwm' [i3-gaps]='i3' [bspwm]='bspwm' [awesome]='awesome' [plasma]='startkde' [xfce4]='startxfce4'
|
||||||
[gnome]='gnome-session' [fluxbox]='startfluxbox' [openbox]='openbox-session' [cinnamon]='cinnamon-session'
|
[gnome]='gnome-session' [fluxbox]='startfluxbox' [openbox]='openbox-session' [cinnamon]='cinnamon-session'
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# packages installed for each wm/de, most are depends of the skel packages {
|
# packages installed for each wm/de, most are depends of the skel packages {
|
||||||
declare -A WM_EXT=(
|
declare -A WM_EXT=(
|
||||||
[dwm]='' [gnome]='' [cinnamon]='gnome-terminal' [plasma]='kdebase-meta'
|
[dwm]='' [jwm]='' [gnome]='' [cinnamon]='gnome-terminal' [plasma]='kdebase-meta'
|
||||||
[awesome]='archlabs-skel-awesome' [bspwm]='archlabs-skel-bspwm' [fluxbox]='archlabs-skel-fluxbox'
|
[awesome]='archlabs-skel-awesome' [bspwm]='archlabs-skel-bspwm' [fluxbox]='archlabs-skel-fluxbox'
|
||||||
[i3-gaps]='archlabs-skel-i3-gaps' [openbox]='archlabs-skel-openbox' [xfce4]='archlabs-skel-xfce4 xfce4-goodies'
|
[i3-gaps]='archlabs-skel-i3-gaps' [openbox]='archlabs-skel-openbox' [xfce4]='archlabs-skel-xfce4 xfce4-goodies'
|
||||||
) # }
|
) # }
|
||||||
@ -135,6 +136,7 @@ _sessions="\nUse [Space] to toggle available sessions, use [Enter] to accept the
|
|||||||
_login="\nSelect which of your session choices to use for the initial login.\n\nYou can be change this later by editing your ~/.xinitrc"
|
_login="\nSelect which of your session choices to use for the initial login.\n\nYou can be change this later by editing your ~/.xinitrc"
|
||||||
_autologin="\nDo you want autologin enabled for USER?\n\nIf so the following two files will be created (disable autologin by removing them):\n\n - /home/USER/RC (run startx when logging in on tty1)\n - /etc/systemd/system/getty@tty1.service.d/autologin.conf (login USER without password)\n"
|
_autologin="\nDo you want autologin enabled for USER?\n\nIf so the following two files will be created (disable autologin by removing them):\n\n - /home/USER/RC (run startx when logging in on tty1)\n - /etc/systemd/system/getty@tty1.service.d/autologin.conf (login USER without password)\n"
|
||||||
_packages="\nUse [Space] to move a package into the selected area and press [Enter] to accept the selection.\n\nPackages may be installed by your DE/WM (if any), or for the packages you select."
|
_packages="\nUse [Space] to move a package into the selected area and press [Enter] to accept the selection.\n\nPackages may be installed by your DE/WM (if any), or for the packages you select."
|
||||||
|
_usercmd="\nEnter command(s) to be run in the newly installed system (chroot).\n\nAn example use case would be installing packages or editing files not offered in the menus.\n\nBecause the command will be run in a chroot not everything may function correctly, additionally the command will not be sanity checked, it's your system so exercise caution.\n\nYou may string more than one command together by using standard bash syntax.\n"
|
||||||
_edit="\nBefore exiting you can select configuration files to review/change.\n\nIf you need to make other changes with the drives still mounted, use Ctrl-z to pause the installer, when finished type 'fg' and [Enter] to resume the installer, if you want to avoid the automatic reboot using Ctrl-c will cleanly exit."
|
_edit="\nBefore exiting you can select configuration files to review/change.\n\nIf you need to make other changes with the drives still mounted, use Ctrl-z to pause the installer, when finished type 'fg' and [Enter] to resume the installer, if you want to avoid the automatic reboot using Ctrl-c will cleanly exit."
|
||||||
|
|
||||||
# LUKS
|
# LUKS
|
||||||
@ -174,7 +176,7 @@ _lvmerrlvsize="\nInvalid value Entered.\n\nMust be a numeric value with 'M' (meg
|
|||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
(( SEL < 12 )) && (( SEL++ ))
|
(( SEL < 13 )) && (( SEL++ ))
|
||||||
tput civis
|
tput civis
|
||||||
dialog --backtitle "$DIST Installer - $SYS - v$VER" --title " Prepare " --default-item $SEL --cancel-label 'Exit' --menu "$_prep" 0 0 0 \
|
dialog --backtitle "$DIST Installer - $SYS - v$VER" --title " Prepare " --default-item $SEL --cancel-label 'Exit' --menu "$_prep" 0 0 0 \
|
||||||
1 "Show device tree" \
|
1 "Show device tree" \
|
||||||
@ -188,7 +190,8 @@ main()
|
|||||||
9 "Select window manager or desktop" \
|
9 "Select window manager or desktop" \
|
||||||
10 "Select additional packages" \
|
10 "Select additional packages" \
|
||||||
11 "View configuration selections" \
|
11 "View configuration selections" \
|
||||||
12 "* Confirm choices and start the installation" 2> "$ANS"
|
12 "Add a command to be run on the system during install" \
|
||||||
|
13 "* Confirm choices and start the installation" 2> "$ANS"
|
||||||
|
|
||||||
read -r SEL < "$ANS"
|
read -r SEL < "$ANS"
|
||||||
[[ -z $WARN && $SEL =~ (2|5) ]] && { msg "Data Warning" "$_warn"; WARN=true; }
|
[[ -z $WARN && $SEL =~ (2|5) ]] && { msg "Data Warning" "$_warn"; WARN=true; }
|
||||||
@ -204,7 +207,8 @@ main()
|
|||||||
9) prechecks 3 && { select_sessions || (( SEL-- )); } ;;
|
9) prechecks 3 && { select_sessions || (( SEL-- )); } ;;
|
||||||
10) prechecks 3 && { select_packages || (( SEL-- )); } ;;
|
10) prechecks 3 && { select_packages || (( SEL-- )); } ;;
|
||||||
11) prechecks 3 && select_show ;;
|
11) prechecks 3 && select_show ;;
|
||||||
12) prechecks 3 && install_main ;;
|
12) prechecks 3 && select_usercmd ;;
|
||||||
|
13) prechecks 3 && install_main ;;
|
||||||
*) yesno "Exit" "\nUnmount partitions (if any) and exit the installer?\n" && die 0
|
*) yesno "Exit" "\nUnmount partitions (if any) and exit the installer?\n" && die 0
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@ -270,8 +274,6 @@ select_show()
|
|||||||
|
|
||||||
select_login()
|
select_login()
|
||||||
{
|
{
|
||||||
[[ $INSTALL_WMS ]] || return 0
|
|
||||||
|
|
||||||
AUTOLOGIN='' # no autologin unless using xinit
|
AUTOLOGIN='' # no autologin unless using xinit
|
||||||
|
|
||||||
dlg LOGIN_TYPE menu "Login Management" "\nSelect what kind of login management to use." \
|
dlg LOGIN_TYPE menu "Login Management" "\nSelect what kind of login management to use." \
|
||||||
@ -414,14 +416,20 @@ select_keymap()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
select_usercmd()
|
||||||
|
{
|
||||||
|
dlg MYHOST input "User Command" "$_usercmd" "$USER_CMD" nolimit
|
||||||
|
}
|
||||||
|
|
||||||
select_sessions()
|
select_sessions()
|
||||||
{
|
{
|
||||||
LOGIN_CHOICES=''
|
LOGIN_CHOICES=''
|
||||||
dlg INSTALL_WMS check "Sessions" "$_sessions\n" \
|
dlg INSTALL_WMS check "Sessions" "$_sessions\n" \
|
||||||
openbox "A lightweight, powerful, and highly configurable stacking wm" "$(ofn openbox "${INSTALL_WMS[*]}")" \
|
|
||||||
i3-gaps "A fork of i3wm with more features including gaps" "$(ofn i3-gaps "${INSTALL_WMS[*]}")" \
|
i3-gaps "A fork of i3wm with more features including gaps" "$(ofn i3-gaps "${INSTALL_WMS[*]}")" \
|
||||||
|
openbox "A lightweight, powerful, and highly configurable stacking wm" "$(ofn openbox "${INSTALL_WMS[*]}")" \
|
||||||
dwm "A dynamic WM for X that manages windows in tiled, floating, or monocle layouts" "$(ofn dwm "${INSTALL_WMS[*]}")" \
|
dwm "A dynamic WM for X that manages windows in tiled, floating, or monocle layouts" "$(ofn dwm "${INSTALL_WMS[*]}")" \
|
||||||
bspwm "A tiling wm that represents windows as the leaves of a binary tree" "$(ofn bspwm "${INSTALL_WMS[*]}")" \
|
bspwm "A tiling wm that represents windows as the leaves of a binary tree" "$(ofn bspwm "${INSTALL_WMS[*]}")" \
|
||||||
|
jwm "A lightweight window manager for Xorg written in C" "$(ofn jwm "${INSTALL_WMS[*]}")" \
|
||||||
xfce4 "A lightweight and modular desktop environment based on gtk+2/3" "$(ofn xfce4 "${INSTALL_WMS[*]}")" \
|
xfce4 "A lightweight and modular desktop environment based on gtk+2/3" "$(ofn xfce4 "${INSTALL_WMS[*]}")" \
|
||||||
awesome "A customized Awesome WM session created by @elanapan" "$(ofn awesome "${INSTALL_WMS[*]}")" \
|
awesome "A customized Awesome WM session created by @elanapan" "$(ofn awesome "${INSTALL_WMS[*]}")" \
|
||||||
fluxbox "A lightweight and highly-configurable window manager" "$(ofn fluxbox "${INSTALL_WMS[*]}")" \
|
fluxbox "A lightweight and highly-configurable window manager" "$(ofn fluxbox "${INSTALL_WMS[*]}")" \
|
||||||
@ -430,10 +438,9 @@ select_sessions()
|
|||||||
cinnamon "A desktop environment combining traditional desktop with modern effects" "$(ofn cinnamon "${INSTALL_WMS[*]}")"
|
cinnamon "A desktop environment combining traditional desktop with modern effects" "$(ofn cinnamon "${INSTALL_WMS[*]}")"
|
||||||
|
|
||||||
[[ $INSTALL_WMS ]] || return 0
|
[[ $INSTALL_WMS ]] || return 0
|
||||||
|
WM_PKGS="${INSTALL_WMS/dwm/}"
|
||||||
WM_PKGS="${INSTALL_WMS/dwm/}" # remove dwm from package list
|
WM_PKGS="${WM_PKGS// / }"
|
||||||
WM_PKGS="${WM_PKGS// / }" # remove double spaces
|
WM_PKGS="${WM_PKGS# }"
|
||||||
WM_PKGS="${WM_PKGS# }" # remove leading space
|
|
||||||
|
|
||||||
for i in $INSTALL_WMS; do
|
for i in $INSTALL_WMS; do
|
||||||
LOGIN_CHOICES+="$i - "
|
LOGIN_CHOICES+="$i - "
|
||||||
@ -1127,7 +1134,7 @@ select_extra_partitions()
|
|||||||
install_main()
|
install_main()
|
||||||
{
|
{
|
||||||
install_base
|
install_base
|
||||||
genfstab -U "$MNT" > "$MNT/etc/fstab" 2> $ERR 2>&1
|
genfstab -U "$MNT" > "$MNT/etc/fstab" 2> "$ERR" 2>&1
|
||||||
errshow 1 "genfstab -U $MNT > $MNT/etc/fstab"
|
errshow 1 "genfstab -U $MNT > $MNT/etc/fstab"
|
||||||
[[ -f $MNT/swapfile ]] && sed -i "s~${MNT}~~" "$MNT/etc/fstab"
|
[[ -f $MNT/swapfile ]] && sed -i "s~${MNT}~~" "$MNT/etc/fstab"
|
||||||
install_packages
|
install_packages
|
||||||
@ -1139,6 +1146,10 @@ install_main()
|
|||||||
install_user
|
install_user
|
||||||
install_login
|
install_login
|
||||||
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
||||||
|
if [[ "$USER_CMD" ]]; then
|
||||||
|
chrun "$USER_CMD" 2> "$ERR" 2>&1
|
||||||
|
errshow 0 "$USER_CMD"
|
||||||
|
fi
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
dlg choice menu "Finalization" "$_edit" \
|
dlg choice menu "Finalization" "$_edit" \
|
||||||
@ -1156,18 +1167,18 @@ install_main()
|
|||||||
login "${EDIT_FILES[login]}"
|
login "${EDIT_FILES[login]}"
|
||||||
|
|
||||||
if [[ -z $choice || $choice == 'finished' ]]; then
|
if [[ -z $choice || $choice == 'finished' ]]; then
|
||||||
[[ $DEBUG == true && -r $DBG ]] && ${EDITOR:-vim} $DBG
|
[[ $DEBUG == true && -r $DBG ]] && ${EDITOR:-vim} "$DBG"
|
||||||
clear && die 127
|
clear
|
||||||
|
die 127
|
||||||
else
|
else
|
||||||
local exists=''
|
local exists=''
|
||||||
for f in ${EDIT_FILES[$choice]}; do
|
for f in ${EDIT_FILES[$choice]}; do
|
||||||
[[ -e ${MNT}$f ]] && exists+=" ${MNT}$f"
|
if [[ -e ${MNT}$f ]]; then
|
||||||
done
|
${EDITOR:-vim} "${MNT}$f"
|
||||||
if [[ $exists ]]; then
|
|
||||||
${EDITOR:-vim} -O $exists
|
|
||||||
else
|
else
|
||||||
msg "File Missing" "\nThe file(s) selected do not exist:\n\n${EDIT_FILES[$choice]}\n"
|
msg "File Missing" "\nThe file(s) selected do not exist:\n\n${MNT}$f\n"
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -1291,32 +1302,30 @@ install_boot()
|
|||||||
install_user()
|
install_user()
|
||||||
{
|
{
|
||||||
local groups='audio,video,floppy,log,network,rfkill,scanner,storage,optical,power,wheel'
|
local groups='audio,video,floppy,log,network,rfkill,scanner,storage,optical,power,wheel'
|
||||||
if [[ -e $MNT/etc/X11/xorg.conf.d/20-nvida.conf && -e $MNT/usr/bin/optirun ]]; then
|
[[ -e $MNT/etc/X11/xorg.conf.d/20-nvida.conf && -e $MNT/usr/bin/optirun ]] && groups+=',bumblebee'
|
||||||
groups+=',bumblebee'
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "$MNT/root/.zlogin" # remove welcome message
|
rm -f "$MNT/root/.zlogin" # remove welcome message
|
||||||
|
|
||||||
chrun "chpasswd <<< 'root:$ROOT_PASS'" 2> $ERR 2>&1
|
chrun "chpasswd <<< 'root:$ROOT_PASS'" 2> "$ERR" 2>&1
|
||||||
errshow 1 "set root password"
|
errshow 1 "set root password"
|
||||||
if [[ $MYSHELL != 'zsh' ]]; then # root uses zsh by default
|
if [[ $MYSHELL != 'zsh' ]]; then # root uses zsh by default
|
||||||
chrun "usermod -s /bin/$MYSHELL root" 2> $ERR 2>&1
|
chrun "usermod -s /bin/$MYSHELL root" 2> "$ERR" 2>&1
|
||||||
errshow 1 "usermod -s /bin/$MYSHELL root"
|
errshow 1 "usermod -s /bin/$MYSHELL root"
|
||||||
# copy the default mkshrc to /root if it was selected
|
# copy the default mkshrc to /root if it was selected
|
||||||
[[ $MYSHELL == 'mksh' ]] && cp -fv "$MNT/etc/skel/.mkshrc" "$MNT/root/.mkshrc"
|
[[ $MYSHELL == 'mksh' ]] && cp -fv "$MNT/etc/skel/.mkshrc" "$MNT/root/.mkshrc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Creating new user $NEWUSER and setting password"
|
echo "Creating new user $NEWUSER and setting password"
|
||||||
chrun "useradd -m -u 1000 -g users -G $groups -s /bin/$MYSHELL $NEWUSER" 2> $ERR 2>&1
|
chrun "useradd -m -u 1000 -g users -G $groups -s /bin/$MYSHELL $NEWUSER" 2> "$ERR" 2>&1
|
||||||
errshow 1 "useradd -m -u 1000 -g users -G $groups -s /bin/$MYSHELL $NEWUSER"
|
errshow 1 "useradd -m -u 1000 -g users -G $groups -s /bin/$MYSHELL $NEWUSER"
|
||||||
chrun "chpasswd <<< '$NEWUSER:$USER_PASS'" 2> $ERR 2>&1
|
chrun "chpasswd <<< '$NEWUSER:$USER_PASS'" 2> "$ERR" 2>&1
|
||||||
errshow 1 "set $NEWUSER password"
|
errshow 1 "set $NEWUSER password"
|
||||||
|
|
||||||
if [[ $INSTALL_WMS == *dwm* ]];then
|
if [[ $INSTALL_WMS == *dwm* ]];then
|
||||||
install_suckless "/home/$NEWUSER" chroot
|
install_suckless "/home/$NEWUSER" chroot
|
||||||
[[ $INSTALL_WMS == 'dwm' ]] && rm -rf "$MNT/home/$NEWUSER/.config/xfce4"
|
[[ $INSTALL_WMS == 'dwm' ]] && rm -rf "$MNT/home/$NEWUSER/.config/xfce4"
|
||||||
fi
|
fi
|
||||||
|
[[ $INSTALL_WMS == *jwm* ]] && cp -rf "$MNT/etc/system.jwmrc" "$MNT/home/$NEWUSER/.jwmrc"
|
||||||
[[ $INSTALL_WMS != *bspwm* && $INSTALL_WMS != *openbox* ]] && rm -rf "$MNT/home/$NEWUSER/.config/"{jgmenu,tint2}
|
[[ $INSTALL_WMS != *bspwm* && $INSTALL_WMS != *openbox* ]] && rm -rf "$MNT/home/$NEWUSER/.config/"{jgmenu,tint2}
|
||||||
[[ $USER_PKGS != *geany* ]] && rm -rf "$MNT/home/$NEWUSER/.config/geany"
|
[[ $USER_PKGS != *geany* ]] && rm -rf "$MNT/home/$NEWUSER/.config/geany"
|
||||||
[[ $MYSHELL != 'bash' ]] && rm -rf "$MNT/home/$NEWUSER/.bash"*
|
[[ $MYSHELL != 'bash' ]] && rm -rf "$MNT/home/$NEWUSER/.bash"*
|
||||||
@ -1329,9 +1338,6 @@ install_user()
|
|||||||
sed -i '/super/d; /compton/d' "$MNT/home/$NEWUSER/.xprofile" "$MNT/root/.xprofile"
|
sed -i '/super/d; /compton/d' "$MNT/home/$NEWUSER/.xprofile" "$MNT/root/.xprofile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# create user home directories (Music, Documents, Downloads, etc..)
|
|
||||||
chrun 'xdg-user-dirs-update'
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1368,7 +1374,7 @@ install_login()
|
|||||||
sed -i "s/root/${NEWUSER}/g" $serv/autologin.conf
|
sed -i "s/root/${NEWUSER}/g" $serv/autologin.conf
|
||||||
cat > "$MNT/home/$NEWUSER/$LOGINRC" <<- EOF
|
cat > "$MNT/home/$NEWUSER/$LOGINRC" <<- EOF
|
||||||
# automatically run startx when logging in on tty1
|
# automatically run startx when logging in on tty1
|
||||||
[ -z "\$DISPLAY" ] && [ \$XDG_VTNR -eq 1 ] && startx
|
[ \$XDG_VTNR -eq 1 ] && exec startx
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
rm -rf $serv
|
rm -rf $serv
|
||||||
@ -1386,14 +1392,6 @@ install_packages()
|
|||||||
rmpkg+="archlabs-installer "
|
rmpkg+="archlabs-installer "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $VM ]] && dmesg | grep -qi 'vbox'; then
|
|
||||||
inpkg+="virtualbox-guest-utils "
|
|
||||||
case "$KERNEL" in
|
|
||||||
linux) inpkg+="virtualbox-guest-modules-arch " ;;
|
|
||||||
*) inpkg+="virtualbox-guest-modules-dkms ${KERNEL}-headers " ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $MYSHELL == 'zsh' ]]; then
|
if [[ $MYSHELL == 'zsh' ]]; then
|
||||||
inpkg+="zsh-completions "
|
inpkg+="zsh-completions "
|
||||||
else
|
else
|
||||||
@ -1433,6 +1431,13 @@ install_packages()
|
|||||||
errshow 1 "pacman -S efibootmgr --needed --noconfirm"
|
errshow 1 "pacman -S efibootmgr --needed --noconfirm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $VM ]] && dmesg | grep -qi 'vbox'; then
|
||||||
|
case "$KERNEL" in
|
||||||
|
linux) chrun "pacman -S virtualbox-guest-utils virtualbox-guest-modules-arch --needed --noconfirm" ;;
|
||||||
|
*) chrun "pacman -S virtualbox-guest-utils virtualbox-guest-modules-dkms ${KERNEL}-headers --needed --noconfirm" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
# allow members of the wheel group to run commands as root
|
# allow members of the wheel group to run commands as root
|
||||||
sed -i "s/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" "$MNT/etc/sudoers"
|
sed -i "s/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" "$MNT/etc/sudoers"
|
||||||
|
|
||||||
@ -1443,7 +1448,6 @@ install_suckless()
|
|||||||
{
|
{
|
||||||
local dir="$1/suckless"
|
local dir="$1/suckless"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
if [[ $2 == 'chroot' ]]; then
|
if [[ $2 == 'chroot' ]]; then
|
||||||
chrun "mkdir -pv '$dir'"
|
chrun "mkdir -pv '$dir'"
|
||||||
for i in dwm dmenu st; do
|
for i in dwm dmenu st; do
|
||||||
@ -1573,6 +1577,14 @@ install_tearfree_conf()
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if lspci | grep ' VGA ' | grep -q 'Intel\|AMD/ATI'; then
|
||||||
|
if [[ $xpath == *"$MNT"* ]]; then
|
||||||
|
sed 's/xrender/glx/g' "$MNT/etc/skel/.config/compton.conf"
|
||||||
|
else
|
||||||
|
sed 's/xrender/glx/g' /etc/skel/.config/compton.conf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# remove nvidia installer from installed system when not running nvidia gpu
|
# remove nvidia installer from installed system when not running nvidia gpu
|
||||||
[[ $xpath == *"$MNT"* ]] && rm -rf "$MNT/usr/bin/nvidia-installer" "$MNT/var/lib/nvidia-installer"
|
[[ $xpath == *"$MNT"* ]] && rm -rf "$MNT/usr/bin/nvidia-installer" "$MNT/var/lib/nvidia-installer"
|
||||||
}
|
}
|
||||||
@ -1582,19 +1594,6 @@ install_tearfree_conf()
|
|||||||
# these are called based on which DM is chosen after it is installed
|
# these are called based on which DM is chosen after it is installed
|
||||||
# additional config can be handled here, for now only lightdm has one
|
# additional config can be handled here, for now only lightdm has one
|
||||||
|
|
||||||
lightdm_config()
|
|
||||||
{
|
|
||||||
cat > "$MNT/etc/lightdm/lightdm-gtk-greeter.conf" <<- EOF
|
|
||||||
[greeter]
|
|
||||||
default-user-image=/usr/share/icons/ArchLabs-Dark/64x64/places/distributor-logo-archlabs.png
|
|
||||||
background=/usr/share/backgrounds/archlabs/archlabs.jpg
|
|
||||||
theme-name=Adwaita-dark
|
|
||||||
icon-theme-name=Adwaita
|
|
||||||
font-name=DejaVu Sans Mono 11
|
|
||||||
position=30%,end 50%,end
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
ly_config()
|
ly_config()
|
||||||
{
|
{
|
||||||
: #TODO
|
: #TODO
|
||||||
@ -1610,6 +1609,19 @@ sddm_config()
|
|||||||
: #TODO
|
: #TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lightdm_config()
|
||||||
|
{
|
||||||
|
cat > "$MNT/etc/lightdm/lightdm-gtk-greeter.conf" <<- EOF
|
||||||
|
[greeter]
|
||||||
|
default-user-image=/usr/share/icons/ArchLabs-Dark/64x64/places/distributor-logo-archlabs.png
|
||||||
|
background=/usr/share/backgrounds/archlabs/archlabs.jpg
|
||||||
|
theme-name=Adwaita-dark
|
||||||
|
icon-theme-name=Adwaita
|
||||||
|
font-name=DejaVu Sans Mono 11
|
||||||
|
position=30%,end 50%,end
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# bootloader setup
|
# bootloader setup
|
||||||
# prerun_* set up the configs needed before actually running the commands
|
# prerun_* set up the configs needed before actually running the commands
|
||||||
@ -2173,9 +2185,7 @@ die()
|
|||||||
tput cnorm
|
tput cnorm
|
||||||
if [[ -d $MNT ]]; then
|
if [[ -d $MNT ]]; then
|
||||||
umount_dir "$MNT"
|
umount_dir "$MNT"
|
||||||
if (( e == 127 )); then
|
(( e == 127 )) && umount_dir /run/archiso/bootmnt && sleep 0.5 && reboot -f
|
||||||
umount_dir /run/archiso/bootmnt && sleep 0.5 && reboot -f
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
exit $e
|
exit $e
|
||||||
}
|
}
|
||||||
@ -2248,18 +2258,18 @@ live()
|
|||||||
mount /run/archiso/cowspace -o remount,size=2G
|
mount /run/archiso/cowspace -o remount,size=2G
|
||||||
install_mirrorlist "/etc/pacman.d/mirrorlist"
|
install_mirrorlist "/etc/pacman.d/mirrorlist"
|
||||||
pacman -Syyu --noconfirm || die 1
|
pacman -Syyu --noconfirm || die 1
|
||||||
rm -rf "/var/cache/pacman/pkg/"*
|
rm -rf /var/cache/pacman/pkg/*
|
||||||
pacman -S $BASE_PKGS $AL_BASE_PKGS xorg-xinit --needed --noconfirm || die 1
|
pacman -S $BASE_PKGS $AL_BASE_PKGS xorg-xinit --needed --noconfirm || die 1
|
||||||
rm -rf "/var/cache/pacman/pkg/"*
|
rm -rf /var/cache/pacman/pkg/*
|
||||||
case "$ses" in
|
case "$ses" in
|
||||||
i3-gaps|openbox|fluxbox|bspwm|awesome|xfce4) pacman -S "$ses" $WM_BASE_PKGS ${WM_EXT[$ses]} --needed --noconfirm || die 1 ;;
|
i3-gaps|openbox|fluxbox|bspwm|awesome|xfce4|jwm) pacman -S "$ses" $WM_BASE_PKGS ${WM_EXT[$ses]} --needed --noconfirm || die 1 ;;
|
||||||
gnome|plasma|cinnamon) pacman -S "$ses" ${WM_EXT[$ses]} --needed --noconfirm || die 1 ;;
|
gnome|plasma|cinnamon) pacman -S "$ses" ${WM_EXT[$ses]} --needed --noconfirm || die 1 ;;
|
||||||
dwm) { pacman -S git --needed --noconfirm || die 1; }; install_suckless "/root" nochroot ;;
|
dwm) { pacman -S git --needed --noconfirm || die 1; }; install_suckless "/root" nochroot ;;
|
||||||
esac
|
esac
|
||||||
rm -rf "/var/cache/pacman/pkg/"*
|
rm -rf /var/cache/pacman/pkg/*
|
||||||
[[ $VM ]] && dmesg | grep -qi 'vbox' && pacman -S virtualbox-guest-utils virtualbox-guest-modules-arch --needed --noconfirm
|
[[ $VM ]] && dmesg | grep -qi 'vbox' && pacman -S virtualbox-guest-utils virtualbox-guest-modules-arch --needed --noconfirm
|
||||||
pacman -Scc --noconfirm
|
pacman -Scc --noconfirm
|
||||||
rm -rf "/var/cache/pacman/pkg/"*
|
rm -rf /var/cache/pacman/pkg/*
|
||||||
cp -rfT /etc/skel /root
|
cp -rfT /etc/skel /root
|
||||||
install_tearfree_conf "/etc/X11/xorg.conf.d"
|
install_tearfree_conf "/etc/X11/xorg.conf.d"
|
||||||
case "$ses" in
|
case "$ses" in
|
||||||
|
Reference in New Issue
Block a user