diff --git a/Makefile b/Makefile index a484592..39d56b7 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,7 @@ LIBS = \ lib/util.sh \ lib/util-advanced.sh \ lib/util-base.sh \ + lib/util-config.sh \ lib/util-desktop.sh \ lib/util-disk.sh \ lib/util-menu.sh diff --git a/bin/manjaro-architect.in b/bin/manjaro-architect.in index 17818dd..bf2db3a 100644 --- a/bin/manjaro-architect.in +++ b/bin/manjaro-architect.in @@ -17,11 +17,11 @@ DATADIR='@datadir@' [[ -r ${LIBDIR}/util.sh ]] && source ${LIBDIR}/util.sh -import ${LIBDIR}/util-menu.sh +import ${LIBDIR}/ini_val.sh import ${LIBDIR}/util-base.sh import ${LIBDIR}/util-desktop.sh import ${LIBDIR}/util-disk.sh -import ${LIBDIR}/ini_val.sh +import ${LIBDIR}/util-menu.sh import ${DATADIR}/translations/english.trans if [[ -e /run/miso/bootmnt ]]; then diff --git a/lib/util-config.sh b/lib/util-config.sh new file mode 100644 index 0000000..eeb6f20 --- /dev/null +++ b/lib/util-config.sh @@ -0,0 +1,138 @@ +edit_mkinitcpio(){ + nano "${MOUNTPOINT}/etc/mkinitcpio.conf" + dialog --backtitle "$VERSION - $SYSTEM ($ARCHI)" --yesno "${_MMRunMkinit}?" 0 0 && { + run_mkinitcpio 2>$ERR + check_for_error "run_mkinitcpio" "$?" + } +} + +edit_configs() { + local PARENT="$FUNCNAME" + # Clear the file variables + local options=() functions=("-") i=0 f='' choice=0 fn='' + + for f in ${MOUNTPOINT}/home/*/.extend.xinitrc; do + ((i++)) + options+=( $i ".extend.xinitrc ($(echo "$f"|cut -d'/' -f4 ))" ) + functions+=( "nano ${f}" ) + done + for f in ${MOUNTPOINT}/home/*/.xinitrc; do + ((i++)) + options+=( $i ".xinitrc ($(echo "$f"|cut -d'/' -f4 ))" ) + functions+=( "nano ${f}" ) + done + for f in ${MOUNTPOINT}/home/*/.extend.Xresources; do + ((i++)) + options+=( $i ".extend.Xresources ($(echo "$f"|cut -d'/' -f4 ))" ) + functions+=( "nano ${f}" ) + done + for f in ${MOUNTPOINT}/home/*/.Xresources; do + ((i++)) + options+=( $i ".Xresources ($(echo "$f"|cut -d'/' -f4 ))" ) + functions+=( "nano ${f}" ) + done + if [[ -e ${MOUNTPOINT}/etc/crypttab ]]; then + ((i++)) + options+=( $i "crypttab" ) + functions+=( "nano ${MOUNTPOINT}/etc/crypttab" ) + fi + if [[ -e ${MOUNTPOINT}/etc/fstab ]]; then + ((i++)) + options+=( $i "fstab" ) + functions+=( "nano ${MOUNTPOINT}/etc/fstab" ) + fi + if [[ -e ${MOUNTPOINT}/etc/hostname ]]; then + ((i++)) + options+=( $i "hostname" ) + functions+=( "nano ${MOUNTPOINT}/etc/hostname" ) + fi + if [[ -e ${MOUNTPOINT}/etc/hosts ]]; then + ((i++)) + options+=( $i "hosts" ) + functions+=( "nano ${MOUNTPOINT}/etc/hosts" ) + fi + if [[ -e ${MOUNTPOINT}/etc/systemd/journald.conf ]]; then + ((i++)) + options+=( $i "journald" ) + functions+=( "nano ${MOUNTPOINT}/etc/systemd/journald.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/conf.d/keymaps ]]; then + ((i++)) + options+=( $i "keymaps" ) + functions+=( "nano ${MOUNTPOINT}/etc/conf.d/keymaps" ) + fi + if [[ -e ${MOUNTPOINT}/etc/locale.conf ]]; then + ((i++)) + f=$(grep -o "=.*$" ${MOUNTPOINT}/etc/locale.conf -m 1) + options+=( $i "locales (${f:1})" ) + functions+=( "nano ${MOUNTPOINT}/etc/locale.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/lightdm/lightdm.conf ]]; then + ((i++)) + options+=( $i "lightdm" ) + functions+=( "nano ${MOUNTPOINT}/etc/lightdm/lightdm.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/lxdm/lxdm.conf ]]; then + ((i++)) + options+=( $i "lxdm" ) + functions+=( "nano ${MOUNTPOINT}/etc/lxdm/lxdm.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/mkinitcpio.conf ]]; then + ((i++)) + options+=( $i "mkinitcpio" ) + functions+=( "edit_mkinitcpio" ) + fi + if [[ -e ${MOUNTPOINT}/etc/rc.conf ]]; then + ((i++)) + options+=( $i "openrc" ) + functions+=( "nano ${MOUNTPOINT}/etc/rc.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/pacman.conf ]]; then + ((i++)) + options+=( $i "pacman" ) + functions+=( "nano ${MOUNTPOINT}/etc/pacman.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/sddm.conf ]]; then + ((i++)) + options+=( $i "sddm" ) + functions+=( "nano ${MOUNTPOINT}/etc/sddm.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/sudoers.conf ]]; then + ((i++)) + options+=( $i "sudoers" ) + functions+=( "nano ${MOUNTPOINT}/etc/sudoers.conf" ) + fi + if [[ -e ${MOUNTPOINT}/etc/default/grub ]]; then + ((i++)) + options+=( $i "grub" ) + functions+=( "nano ${MOUNTPOINT}/etc/default/grub" ) + fi + if [[ -e ${MOUNTPOINT}/boot/syslinux/syslinux.cfg ]]; then + ((i++)) + options+=( $i "syslinux" ) + functions+=( "nano ${MOUNTPOINT}/boot/syslinux/syslinux.cfg" ) + fi + if [[ -e ${MOUNTPOINT}/etc/vconsole.conf ]]; then + ((i++)) + options+=( $i "vconsole" ) + functions+=( "nano ${MOUNTPOINT}/etc/vconsole.conf" ) + fi + ((i++)) + options+=( $i "$_Back" ) + functions+=( "return 0" ) + + while ((1)); do + submenu 13 + DIALOG " $_SeeConfOptTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_SeeConfOptBody" 0 0 $i \ + "${options[@]}" 2>${ANSWER} + HIGHLIGHT_SUB=$(<${ANSWER}) + choice="${HIGHLIGHT_SUB:-0}" + + case "$choice" in + 0) break ;; # btn cancel + *) + fn="${functions[$choice]}" # find attach working function in array + [ -n "$fn" ] && $fn + esac + done +} diff --git a/lib/util-menu.sh b/lib/util-menu.sh index 9ca404d..23bd674 100644 --- a/lib/util-menu.sh +++ b/lib/util-menu.sh @@ -34,7 +34,10 @@ main_menu() { ;; "3") check_base && config_base_menu ;; - "4") check_base && edit_configs + "4") check_base && { + import ${LIBDIR}/util-config.sh + edit_configs + } ;; "5") check_base && { import ${LIBDIR}/util-advanced.sh @@ -211,88 +214,6 @@ install_graphics_menu() { esac } -edit_configs() { - 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 "\n$_SeeConfOptBody\n " 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" \ - "9" "grub/syslinux" \ - "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" - done - ;; - *) loopmenu=0 - return 0 - ;; - esac - - if [[ $FILE != "" ]]; then - nano $FILE - if [[ $FILE == "${MOUNTPOINT}/etc/mkinitcpio.conf" ]]; then - dialog --backtitle "$VERSION - $SYSTEM ($ARCHI)" --yesno "\n${_MMRunMkinit}?\n " 0 0 && { - run_mkinitcpio 2>$ERR - check_for_error "run_mkinitcpio" "$?" - } - fi - else - DIALOG " $_ErrTitle " --msgbox "\n$_SeeConfErrBody\n " 0 0 - fi - done -} - advanced_menu() { declare -i loopmenu=1 while ((loopmenu)); do