#!/bin/bash # Configure Stormux # A script to configure the system for new users. # # Copyright 2020, Storm Dragon, # # This is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free # Software Foundation; either version 3, or (at your option) any later # version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this package; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # #--code-- # For audible sudo prompts: if [[ -x /etc/audibleprompt.sh ]]; then export SUDO_ASKPASS=/etc/audibleprompt.sh fi # Include functions common to all operations source .includes/functions.sh # Include the dialog based UI source .includes/ui.sh # Get architecture architecture="$(uname -m)" # Make sure basic xdg directory structure is in place: if [[ ! -d ~/Desktop ]]; then xdg-user-dirs-update fi # Set up logging echo -e "\n\n-----> Logging started at $(date '+%A, %B %d, %Y at %I:%M%p')\n" >> "${XDG_CACHE_HOME:-$HOME/.cache}/configure-stormux.log" exec &> >(/usr/bin/tee -a "${XDG_CACHE_HOME:-$HOME/.cache}/configure-stormux.log") # Check for possible resize diskSource="$(df --output='source' / | tail -1)" diskSize="$(df -h --output='size' / | tail -1 | tr -cd '[:digit:].')" diskSize=${diskSize%.*} if [[ $diskSize -le 5 ]]; then if [[ "$(yesno "$diskSource is only $diskSize gigs, which means it probably needs to be resized. Would you like to do this now?")" == "Yes" ]]; then sudo growpartfs $diskSource fi fi while [[ "$choice" != "Exit" ]]; do case "$choice" in "Change username") ./.includes/chuser.sh $(inputbox "Please enter the new username, letters, dashes, and underscores only.") restart ;; "Configure internet") /usr/bin/nmtui-connect ;; "Enable Bluetooth") sudo sed -i 's/^#AutoEnable=false$/AutoEnable=true/' /etc/bluetooth/main.conf sudo systemctl enable bluetooth --now ;; "Install Lxqt Desktop") source .includes/gui.sh lxqt ;; "Install Mate Desktop") source .includes/gui.sh mate ;; "Install i3 Windowmanager") source .includes/gui.sh i3 ;; "Screen reader") source .includes/screenreader.sh ;; "Set up gaming") source .includes/gaming.sh ;; "Set timezone") source .includes/timezone.sh ;; "Get help on IRC") source .includes/irc.sh ;; "Update configure-stormux") sudo git pull exit $? ;; esac options=( "Change username" "Configure internet" ) if [[ "$(systemctl is-active bluetooth)" == "inactive" ]] && [[ "${architecture}" == "aarch64" ]]; then options+=("Enable Bluetooth") fi options+=("Install Lxqt Desktop" "Install Mate Desktop" "Install i3 Windowmanager" "Screen reader" ) if [[ "${architecture}" == "armv7l" ]]; then options+=("Set up gaming") fi options+=("Set timezone" "Get help on IRC" "Update configure-stormux" ) choice="$(menulist "${options[@]}")" || break done exit 0