96 lines
2.5 KiB
Bash
Executable File
96 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Configure Stormux
|
|
# A script to configure the system for new users.
|
|
#
|
|
# Copyright 2020, Storm Dragon, <storm_dragon@linux-a11y.org>
|
|
#
|
|
# 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--
|
|
|
|
# UI code starts here.
|
|
|
|
# Settings to improve accessibility of dialog.
|
|
export DIALOGOPTS='--insecure --no-lines --visit-items'
|
|
|
|
inputbox() {
|
|
# Returns: text entered by the user
|
|
# Args 1, Instructions for box.
|
|
# args: 2 initial text (optional)
|
|
dialog --backtitle "Stormux" \
|
|
--clear \
|
|
--inputbox "$1" 0 0 "$2" --stdout
|
|
}
|
|
|
|
passwordbox() {
|
|
# Returns: text entered by the user
|
|
# Args 1, Instructions for box.
|
|
# args: 2 initial text (optional)
|
|
dialog --backtitle "Stormux" \
|
|
--clear \
|
|
--passwordbox "$1" 0 0 "$2" --stdout
|
|
}
|
|
|
|
msgbox() {
|
|
# Returns: None
|
|
# Shows the provided message on the screen with an ok button.
|
|
dialog --clear --msgbox "$*" 10 72
|
|
}
|
|
|
|
infobox() {
|
|
# Returns: None
|
|
# Shows the provided message on the screen with no buttons.
|
|
local timeout=3
|
|
dialog --infobox "$*" 0 0
|
|
read -n1 -t $timeout continue
|
|
# Clear any keypresses from the buffer
|
|
read -t 0.01 continue
|
|
}
|
|
|
|
yesno() {
|
|
# Returns: Yes or No
|
|
# Args: Question to user.
|
|
# Called in if $(yesno) == "Yes"
|
|
# Or variable=$(yesno)
|
|
dialog --clear --backtitle "Stormux" --yesno "$*" 10 80 --stdout
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Yes"
|
|
else
|
|
echo "No"
|
|
fi
|
|
}
|
|
|
|
menulist() {
|
|
# Args: List of items for menu.
|
|
# returns: selected tag
|
|
local menuList
|
|
for i in "${@}" ; do
|
|
menuList+=("$i" "$i")
|
|
done
|
|
dialog --backtitle "Stormux" \
|
|
--clear \
|
|
--no-tags \
|
|
--menu "Please select an option" 0 0 0 "${menuList[@]}" --stdout
|
|
return $?
|
|
}
|
|
|
|
show_doc() {
|
|
# Displays file in w3m using pager mode
|
|
# Args: path to file.
|
|
# Returns: none.
|
|
fold -sw $cols "$1" | w3m -o keymap_file=~/.w3m/pager
|
|
}
|