2017-03-02 03:04:01 +00:00
|
|
|
# !/bin/bash
|
|
|
|
#
|
|
|
|
# Architect Installation Framework (2016-2017)
|
|
|
|
#
|
|
|
|
# Written by Carl Duff and @mandog for Archlinux
|
|
|
|
# Heavily modified and re-written by @Chrysostomus to install Manjaro instead
|
|
|
|
# Contributors: @papajoker, @oberon and the Manjaro-Community.
|
|
|
|
#
|
|
|
|
# This program is free software, provided under the GNU General Public License
|
|
|
|
# as published by the Free Software Foundation. So feel free to copy, distribute,
|
|
|
|
# or modify it as you wish.
|
|
|
|
|
|
|
|
main_menu() {
|
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
2017-03-04 19:55:57 +00:00
|
|
|
if [[ $HIGHLIGHT != 7 ]]; then
|
2017-03-02 03:04:01 +00:00
|
|
|
HIGHLIGHT=$(( HIGHLIGHT + 1 ))
|
|
|
|
fi
|
2017-02-17 21:10:40 +00:00
|
|
|
|
2017-03-02 03:04:01 +00:00
|
|
|
DIALOG " $_MMTitle " --default-item ${HIGHLIGHT} \
|
2017-03-04 19:55:57 +00:00
|
|
|
--menu "$_MMBody" 0 0 7 \
|
2017-03-02 03:04:01 +00:00
|
|
|
"1" "$_PrepMenuTitle|>" \
|
|
|
|
"2" "$_InstBsMenuTitle|>" \
|
2017-03-04 19:55:57 +00:00
|
|
|
"3" "$_ConfBseMenuTitle|>" \
|
2017-03-08 03:30:13 +00:00
|
|
|
"4" "$_SeeConfOptTitle" \
|
|
|
|
"5" "$_InstAdvBase|>" \
|
|
|
|
"6" "$_Done" 2>${ANSWER}
|
2017-03-02 03:04:01 +00:00
|
|
|
HIGHLIGHT=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") prep_menu
|
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"2") install_base_menu
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"3") config_base_menu
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"4") edit_configs
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"5") check_base && {
|
2017-03-04 22:06:57 +00:00
|
|
|
import ${LIBDIR}/util-advanced.sh
|
|
|
|
advanced_menu
|
|
|
|
}
|
2017-03-04 19:55:57 +00:00
|
|
|
;;
|
2017-03-02 03:04:01 +00:00
|
|
|
*) loopmenu=0
|
|
|
|
exit_done
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
2017-02-17 21:10:40 +00:00
|
|
|
}
|
|
|
|
|
2017-03-04 19:55:57 +00:00
|
|
|
## 2nd level menus
|
|
|
|
|
2017-02-17 04:19:17 +00:00
|
|
|
# Preparation
|
|
|
|
prep_menu() {
|
|
|
|
local PARENT="$FUNCNAME"
|
2017-03-02 03:04:01 +00:00
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
2017-03-04 20:05:38 +00:00
|
|
|
submenu 7
|
|
|
|
DIALOG " $_PrepMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_PrepMenuBody" 0 0 7 \
|
|
|
|
"1" "$_VCKeymapTitle" \
|
|
|
|
"2" "$_DevShowOpt" \
|
|
|
|
"3" "$_PrepPartDisk" \
|
|
|
|
"4" "$_PrepLUKS" \
|
|
|
|
"5" "$_PrepLVM $_PrepLVM2" \
|
|
|
|
"6" "$_PrepMntPart" \
|
|
|
|
"7" "$_Back" 2>${ANSWER}
|
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
2017-03-02 03:04:01 +00:00
|
|
|
|
2017-03-04 20:05:38 +00:00
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") set_keymap
|
|
|
|
;;
|
|
|
|
"2") show_devices
|
|
|
|
;;
|
|
|
|
"3") umount_partitions
|
2017-03-06 00:05:51 +00:00
|
|
|
select_device && create_partitions
|
2017-03-04 20:05:38 +00:00
|
|
|
;;
|
|
|
|
"4") luks_menu
|
|
|
|
;;
|
|
|
|
"5") lvm_menu
|
|
|
|
;;
|
|
|
|
"6") mount_partitions
|
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
2017-03-02 03:04:01 +00:00
|
|
|
done
|
2017-02-17 04:19:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Base Installation
|
|
|
|
install_base_menu() {
|
2017-03-10 13:55:06 +00:00
|
|
|
check_mount
|
2017-02-17 04:19:17 +00:00
|
|
|
local PARENT="$FUNCNAME"
|
2017-03-02 03:04:01 +00:00
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
2017-03-08 17:20:43 +00:00
|
|
|
submenu 7
|
2017-03-08 03:30:13 +00:00
|
|
|
DIALOG " $_InstBsMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_InstBseMenuBody" 0 0 7 \
|
2017-03-06 03:03:35 +00:00
|
|
|
"1" "$_PrepMirror|>" \
|
2017-03-04 20:05:38 +00:00
|
|
|
"2" "$_PrepPacKey" \
|
|
|
|
"3" "$_InstBse" \
|
2017-03-08 03:30:13 +00:00
|
|
|
"4" "$_InstDEStable|>" \
|
2017-03-08 17:20:43 +00:00
|
|
|
"5" "$_InstDrvTitle|>" \
|
2017-03-08 03:30:13 +00:00
|
|
|
"6" "$_InstBootldr" \
|
|
|
|
"7" "$_Back" 2>${ANSWER}
|
2017-03-04 20:05:38 +00:00
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
2017-03-02 03:04:01 +00:00
|
|
|
|
2017-03-04 20:05:38 +00:00
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") configure_mirrorlist
|
|
|
|
;;
|
|
|
|
"2") clear
|
2017-03-06 04:37:41 +00:00
|
|
|
(
|
2017-03-06 08:22:01 +00:00
|
|
|
ctrlc(){
|
2017-03-06 04:37:41 +00:00
|
|
|
return 0
|
|
|
|
}
|
|
|
|
trap ctrlc SIGINT
|
|
|
|
trap ctrlc SIGTERM
|
|
|
|
pacman-key --init;pacman-key --populate archlinux manjaro;pacman-key --refresh-keys;
|
|
|
|
check_for_error 'refresh pacman-keys'
|
|
|
|
)
|
2017-03-04 20:05:38 +00:00
|
|
|
;;
|
|
|
|
"3") install_base
|
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"4") install_manjaro_de_wm_pkg
|
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"5") install_drivers_menu
|
2017-03-07 19:10:48 +00:00
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"6") install_bootloader
|
2017-03-04 20:05:38 +00:00
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
2017-03-02 03:04:01 +00:00
|
|
|
done
|
2017-02-17 04:19:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Base Configuration
|
|
|
|
config_base_menu() {
|
2017-03-10 13:55:06 +00:00
|
|
|
check_base
|
2017-02-17 04:19:17 +00:00
|
|
|
local PARENT="$FUNCNAME"
|
2017-03-02 03:04:01 +00:00
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
|
|
|
submenu 8
|
2017-03-04 19:58:20 +00:00
|
|
|
DIALOG " $_ConfBseMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu " $_ConfBseBody " 0 0 8 \
|
2017-03-02 03:04:01 +00:00
|
|
|
"1" "$_ConfBseFstab" \
|
|
|
|
"2" "$_ConfBseHost" \
|
|
|
|
"3" "$_ConfBseSysLoc" \
|
2017-03-08 03:30:13 +00:00
|
|
|
"4" "$_PrepKBLayout" \
|
|
|
|
"5" "$_ConfBseTimeHC" \
|
|
|
|
"6" "$_ConfUsrRoot" \
|
|
|
|
"7" "$_ConfUsrNew" \
|
2017-03-02 03:04:01 +00:00
|
|
|
"8" "$_Back" 2>${ANSWER}
|
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") generate_fstab
|
|
|
|
;;
|
|
|
|
"2") set_hostname
|
|
|
|
;;
|
|
|
|
"3") set_locale
|
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"4") set_xkbmap
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"5") set_timezone && set_hw_clock
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"6") set_root_password
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-08 03:30:13 +00:00
|
|
|
"7") create_new_user
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
2017-02-17 04:19:17 +00:00
|
|
|
}
|
|
|
|
|
2017-03-02 03:04:01 +00:00
|
|
|
install_graphics_menu() {
|
2017-02-17 04:19:17 +00:00
|
|
|
local PARENT="$FUNCNAME"
|
2017-03-02 03:04:01 +00:00
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
|
|
|
submenu 4
|
2017-03-04 19:55:57 +00:00
|
|
|
DIALOG " $_InstGrMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_InstGrMenuBody" 0 0 4 \
|
2017-03-02 03:04:01 +00:00
|
|
|
"1" "$_InstGrMenuDD" \
|
2017-03-04 19:55:57 +00:00
|
|
|
"2" "$_PrepKBLayout" \
|
2017-03-05 21:51:15 +00:00
|
|
|
"3" "$_InstDEStable|>" \
|
2017-03-02 03:04:01 +00:00
|
|
|
"4" "$_Back" 2>${ANSWER}
|
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") setup_graphics_card
|
|
|
|
;;
|
2017-03-04 19:55:57 +00:00
|
|
|
"2") set_xkbmap
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-04 19:55:57 +00:00
|
|
|
"3") install_manjaro_de_wm_pkg
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
2017-02-17 04:19:17 +00:00
|
|
|
}
|
|
|
|
|
2017-03-07 19:10:48 +00:00
|
|
|
install_drivers_menu() {
|
2017-03-10 13:55:06 +00:00
|
|
|
check_base
|
2017-03-07 19:10:48 +00:00
|
|
|
local PARENT="$FUNCNAME"
|
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
2017-03-08 02:29:33 +00:00
|
|
|
submenu 5
|
2017-03-10 17:24:11 +00:00
|
|
|
DIALOG " $_InstDrvTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_InstDrvBody" 0 0 5 \
|
2017-03-08 02:29:33 +00:00
|
|
|
"1" "$_InstFree" \
|
|
|
|
"2" "$_InstProp" \
|
2017-03-07 19:10:48 +00:00
|
|
|
"3" "$_InstGrMenuDD|>" \
|
2017-03-08 02:29:33 +00:00
|
|
|
"4" "$_InstNWDrv|>" \
|
2017-03-07 19:10:48 +00:00
|
|
|
"5" "$_Back" 2>${ANSWER}
|
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
2017-03-10 17:13:39 +00:00
|
|
|
"1") clear
|
|
|
|
arch_chroot "mhwd -a pci free 0300" 2>$ERR
|
2017-03-10 13:13:30 +00:00
|
|
|
check_for_error "$_InstFree" $?
|
2017-03-07 19:10:48 +00:00
|
|
|
;;
|
2017-03-10 17:13:39 +00:00
|
|
|
"2") clear
|
|
|
|
arch_chroot "mhwd -a pci nonfree 0300" 2>$ERR
|
2017-03-10 13:13:30 +00:00
|
|
|
check_for_error "$_InstProp" $?
|
2017-03-07 19:10:48 +00:00
|
|
|
;;
|
|
|
|
"3") setup_graphics_card
|
|
|
|
;;
|
|
|
|
"4") setup_network_drivers
|
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
2017-03-10 17:24:11 +00:00
|
|
|
|
2017-02-17 04:19:17 +00:00
|
|
|
edit_configs() {
|
2017-03-10 13:55:06 +00:00
|
|
|
check_base
|
2017-03-02 03:04:01 +00:00
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
|
|
|
local PARENT="$FUNCNAME"
|
|
|
|
|
|
|
|
# Clear the file variables
|
|
|
|
FILE=""
|
|
|
|
user_list=""
|
|
|
|
|
|
|
|
submenu 13
|
|
|
|
DIALOG " $_SeeConfOptTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_SeeConfOptBody" 0 0 13 \
|
|
|
|
"1" "/etc/vconsole.conf" \
|
|
|
|
"2" "/etc/locale.conf" \
|
|
|
|
"3" "/etc/hostname" \
|
|
|
|
"4" "/etc/hosts" \
|
|
|
|
"5" "/etc/sudoers" \
|
|
|
|
"6" "/etc/mkinitcpio.conf" \
|
|
|
|
"7" "/etc/fstab" \
|
|
|
|
"8" "/etc/crypttab" \
|
2017-03-04 19:55:57 +00:00
|
|
|
"9" "grub/syslinux" \
|
2017-03-02 03:04:01 +00:00
|
|
|
"10" "lxdm/lightdm/sddm" \
|
|
|
|
"11" "/etc/pacman.conf" \
|
|
|
|
"12" "~/.xinitrc" \
|
|
|
|
"13" "$_Back" 2>${ANSWER}
|
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
|
|
|
"1") [[ -e ${MOUNTPOINT}/etc/vconsole.conf ]] && FILE="${MOUNTPOINT}/etc/vconsole.conf"
|
|
|
|
;;
|
|
|
|
"2") [[ -e ${MOUNTPOINT}/etc/locale.conf ]] && FILE="${MOUNTPOINT}/etc/locale.conf"
|
|
|
|
;;
|
|
|
|
"3") [[ -e ${MOUNTPOINT}/etc/hostname ]] && FILE="${MOUNTPOINT}/etc/hostname"
|
|
|
|
;;
|
|
|
|
"4") [[ -e ${MOUNTPOINT}/etc/hosts ]] && FILE="${MOUNTPOINT}/etc/hosts"
|
|
|
|
;;
|
|
|
|
"5") [[ -e ${MOUNTPOINT}/etc/sudoers ]] && FILE="${MOUNTPOINT}/etc/sudoers"
|
|
|
|
;;
|
|
|
|
"6") [[ -e ${MOUNTPOINT}/etc/mkinitcpio.conf ]] && FILE="${MOUNTPOINT}/etc/mkinitcpio.conf"
|
|
|
|
;;
|
|
|
|
"7") [[ -e ${MOUNTPOINT}/etc/fstab ]] && FILE="${MOUNTPOINT}/etc/fstab"
|
|
|
|
;;
|
|
|
|
"8") [[ -e ${MOUNTPOINT}/etc/crypttab ]] && FILE="${MOUNTPOINT}/etc/crypttab"
|
|
|
|
;;
|
|
|
|
"9") [[ -e ${MOUNTPOINT}/etc/default/grub ]] && FILE="${MOUNTPOINT}/etc/default/grub"
|
|
|
|
[[ -e ${MOUNTPOINT}/boot/syslinux/syslinux.cfg ]] && FILE="$FILE ${MOUNTPOINT}/boot/syslinux/syslinux.cfg"
|
|
|
|
if [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/loader/loader.conf ]]; then
|
|
|
|
files=$(ls ${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/*.conf)
|
|
|
|
for i in ${files}; do
|
|
|
|
FILE="$FILE ${i}"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
"10") [[ -e ${MOUNTPOINT}/etc/lxdm/lxdm.conf ]] && FILE="${MOUNTPOINT}/etc/lxdm/lxdm.conf"
|
|
|
|
[[ -e ${MOUNTPOINT}/etc/lightdm/lightdm.conf ]] && FILE="${MOUNTPOINT}/etc/lightdm/lightdm.conf"
|
|
|
|
[[ -e ${MOUNTPOINT}/etc/sddm.conf ]] && FILE="${MOUNTPOINT}/etc/sddm.conf"
|
|
|
|
;;
|
|
|
|
"11") [[ -e ${MOUNTPOINT}/etc/pacman.conf ]] && FILE="${MOUNTPOINT}/etc/pacman.conf"
|
|
|
|
;;
|
|
|
|
"12") user_list=$(ls ${MOUNTPOINT}/home/ | sed "s/lost+found//")
|
|
|
|
for i in ${user_list}; do
|
|
|
|
[[ -e ${MOUNTPOINT}/home/$i/.xinitrc ]] && FILE="$FILE ${MOUNTPOINT}/home/$i/.xinitrc"
|
2017-02-17 04:19:17 +00:00
|
|
|
done
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
2017-03-02 03:24:13 +00:00
|
|
|
*) loopmenu=0
|
2017-03-05 21:30:32 +00:00
|
|
|
return 0
|
2017-03-02 03:04:01 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
if [[ $FILE != "" ]]; then
|
|
|
|
nano $FILE
|
|
|
|
if [[ $FILE == "${MOUNTPOINT}/etc/mkinitcpio.conf" ]]; then
|
|
|
|
dialog --backtitle "$VERSION - $SYSTEM ($ARCHI)" --yesno "${_MMRunMkinit}?" 0 0 && {
|
|
|
|
run_mkinitcpio 2>$ERR
|
2017-03-02 03:13:48 +00:00
|
|
|
check_for_error "run_mkinitcpio" "$?"
|
2017-03-02 03:04:01 +00:00
|
|
|
}
|
2017-02-17 04:19:17 +00:00
|
|
|
fi
|
2017-03-02 03:04:01 +00:00
|
|
|
else
|
|
|
|
DIALOG " $_ErrTitle " --msgbox "$_SeeConfErrBody" 0 0
|
2017-02-28 00:23:06 +00:00
|
|
|
fi
|
2017-03-02 03:04:01 +00:00
|
|
|
done
|
2017-03-04 19:55:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
advanced_menu() {
|
|
|
|
declare -i loopmenu=1
|
|
|
|
while ((loopmenu)); do
|
|
|
|
submenu 4
|
|
|
|
DIALOG " $_InstAdvBase " --default-item ${HIGHLIGHT_SUB} \
|
2017-03-06 04:37:41 +00:00
|
|
|
--menu "\n" 0 0 4 \
|
2017-03-04 19:55:57 +00:00
|
|
|
"1" "$_InstDEGit" \
|
|
|
|
"2" "$_InstDE|>" \
|
|
|
|
"3" "$_SecMenuTitle|>" \
|
2017-03-06 04:39:54 +00:00
|
|
|
"4" "$_Back" 2>${ANSWER} || return 0
|
2017-03-04 19:55:57 +00:00
|
|
|
HIGHLIGHT_SUB=$(cat ${ANSWER})
|
|
|
|
|
|
|
|
case $(cat ${ANSWER}) in
|
2017-03-10 13:55:06 +00:00
|
|
|
"1") install_manjaro_de_wm_git
|
2017-03-04 19:55:57 +00:00
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"2") install_vanilla_de_wm
|
2017-03-04 19:55:57 +00:00
|
|
|
;;
|
2017-03-10 13:55:06 +00:00
|
|
|
"3") security_menu
|
2017-03-04 19:55:57 +00:00
|
|
|
;;
|
|
|
|
*) loopmenu=0
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|