#!/usr/bin/env bash # SPDX-License-Identifier: GPL-2.0-only # created by Tobias Powalowski . /etc/archboot/defaults . /usr/lib/archboot/common.sh . /usr/lib/archboot/container.sh #shellcheck disable=SC1094 . /usr/lib/archboot/update/update.sh . /usr/lib/archboot/update/manage.sh . /usr/lib/archboot/update/desktop.sh . /usr/lib/archboot/update/xfce.sh . /usr/lib/archboot/update/gnome.sh . /usr/lib/archboot/update/gnome-wayland.sh . /usr/lib/archboot/update/plasma.sh . /usr/lib/archboot/update/plasma-wayland.sh . /usr/lib/archboot/update/sway.sh [[ -z "${1}" ]] && usage while [ $# -gt 0 ]; do case ${1} in -u|--u|-update|--update) _D_SCRIPTS="1" ;; -latest|--latest) _L_COMPLETE="1" ;; -latest-install|--latest-install) _L_INSTALL_COMPLETE="1";; -latest-image|--latest-image) _G_RELEASE="1" _L_INSTALL_COMPLETE="1";; -xfce|--xfce) _L_XFCE="1" ;; -sway|--sway) _L_SWAY="1" ;; -gnome|--gnome) _L_GNOME="1";; -gnome-wayland|--gnome-wayland) _L_GNOME_WAYLAND="1";; -plasma|--plasma) _L_PLASMA="1" ;; -plasma-wayland|--plasma-wayland) _L_PLASMA_WAYLAND="1" ;; -custom-xorg|--custom-xorg) _CUSTOM_X="1" ;; -custom-wayland|--custom-wayland) _CUSTOM_WAYLAND="1" ;; -full-system|--full-system) _FULL_SYSTEM="1" ;; -h|--h|-help|--help|?) usage ;; *) usage ;; esac shift done _archboot_check if [[ -n "${_D_SCRIPTS}" ]]; then _update_installer_check _network_check touch /.update _TITLE="Archboot $(uname -m) | Basic Setup | GIT Master Scripts" _download_latest | _dialog --title " Archboot GIT Master " --gauge "Downloading latest config..." 6 75 0 clear fi # Generate new environment and launch it with kexec if [[ -n "${_L_COMPLETE}" || -n "${_L_INSTALL_COMPLETE}" ]] && [[ -z "${_G_RELEASE}" ]]; then _update_installer_check touch /.update _TITLE="Archboot $(uname -m) | Basic Setup | New Environment" _new_environment | _dialog --title "${_MENU_TITLE}" --gauge "Waiting for pacman keyring..." 6 75 0 clear fi # Generate new images if [[ -n "${_G_RELEASE}" ]]; then _update_installer_check touch /.update _TITLE="Archboot $(uname -m) | Basic Setup | New Images" _new_image | _dialog --title "${_MENU_TITLE}" --gauge "Removing not necessary files from /..." 6 75 0 clear fi # install custom xorg or wayland if [[ -n "${_CUSTOM_X}" || -n "${_CUSTOM_WAYLAND}" ]]; then _custom_wayland_xorg fi # Gnome, KDE/PLASMA or XFCE launch if [[ -n "${_L_XFCE}" || -n "${_L_SWAY}" || -n "${_L_PLASMA}" || -n "${_L_GNOME}" || -n "${_L_GNOME_WAYLAND}" || -n "${_L_PLASMA_WAYLAND}" ]]; then if [[ -e "/.graphic_installed" && "$(grep -w MemTotal /proc/meminfo | cut -d ':' -f2 | sed -e 's# ##g' -e 's#kB$##g')" -lt 4413000 ]]; then _hint_graphic_installed else _TITLE="Archboot $(uname -m) | Basic Setup | Desktop Environment" [[ -e /var/cache/pacman/pkg/archboot.db ]] && touch /.graphic_installed [[ -n "${_L_XFCE}" ]] && _install_xfce | _dialog --title "${_MENU_TITLE}" --gauge "Initializing Xfce..." 6 75 0 [[ -n "${_L_GNOME}" ]] && _install_gnome [[ -n "${_L_GNOME_WAYLAND}" ]] && _install_gnome_wayland [[ -n "${_L_PLASMA}" ]] && _install_plasma [[ -n "${_L_PLASMA_WAYLAND}" ]] && _install_plasma_wayland [[ -n "${_L_SWAY}" ]] && _install_sway # only start vnc on xorg environment _progress "93" "Setting up VNC and browser..." [[ -n "${_L_XFCE}" || -n "${_L_PLASMA}" || -n "${_L_GNOME}" ]] && _autostart_vnc command -v firefox &>"${_NO_LOG}" && _firefox_flags command -v chromium &>"${_NO_LOG}" && _chromium_flags [[ -n "${_L_XFCE}" ]] && _start_xfce | _dialog --title "${_MENU_TITLE}" --gauge "Starting Xfce..." 6 75 94 [[ -n "${_L_GNOME}" ]] && _start_gnome [[ -n "${_L_GNOME_WAYLAND}" ]] && _start_gnome_wayland [[ -n "${_L_PLASMA}" ]] && _start_plasma [[ -n "${_L_PLASMA_WAYLAND}" ]] && _start_plasma_wayland [[ -n "${_L_SWAY}" ]] && _start_sway touch /.update fi fi # Switch to full Arch Linux system if [[ -n "${_FULL_SYSTEM}" ]]; then _full_system_check _update_installer_check touch /.update _TITLE="Archboot $(uname -m) | Basic Setup | Full System" _full_system | _dialog --title "${_MENU_TITLE}" --gauge "Refreshing pacman package database..." 6 75 0 clear fi rm /.update # vim: set ft=sh ts=4 sw=4 et: