Split package selection up to be more granular, more minor reordering

This commit is contained in:
natemaia 2019-01-18 01:16:47 -08:00
parent 98c56c9334
commit 94054f9ada

View File

@ -128,9 +128,10 @@ declare -A WM_SESSIONS=(
[dwm]='dwm'
[i3-gaps]='i3'
[bspwm]='bspwm'
[xfce4]='startxfce4'
[plasma]='startkde'
[xfce4]='startxfce4'
[gnome]='gnome-session'
[fluxbox]='startfluxbox'
[openbox]='openbox-session'
[cinnamon]='cinnamon-session'
)
@ -138,6 +139,7 @@ declare -A WM_SESSIONS=(
# additional packages installed for each wm/de
declare -A WM_EXT=(
[gnome]=""
[fluxbox]="menumaker"
[plasma]="kdebase-meta"
[bspwm]="sxhkd archlabs-skel-bspwm rofi archlabs-polybar"
[i3-gaps]="i3status perl-anyevent-i3 archlabs-skel-i3-gaps rofi archlabs-polybar"
@ -168,27 +170,28 @@ declare -A PKG_EXT=(
[vlc]="qt4"
[mpd]="mpc"
[mupdf]="mupdf-tools"
[qutebrowser]="qt5ct qt5-styleplugins"
[qt5ct]="qt5-styleplugins"
[vlc]="qt5ct qt5-styleplugins"
[zathura]="zathura-pdf-poppler"
[noto-fonts]="noto-fonts-emoji"
[cairo-dock]="cairo-dock-plug-ins"
[qutebrowser]="qt5ct qt5-styleplugins"
[qbittorrent]="qt5ct qt5-styleplugins"
[transmission-qt]="qt5ct qt5-styleplugins"
[kdenlive]="kdebase-meta dvdauthor frei0r-plugins breeze breeze-gtk qt5ct qt5-styleplugins"
)
# mkfs command to format a partition as a given file system
declare -A FS_CMDS=(
[ext2]="mkfs.ext2 -q"
[ext3]="mkfs.ext3 -q"
[ext4]="mkfs.ext4 -q"
[f2fs]="mkfs.f2fs"
[jfs]="mkfs.jfs -q"
[xfs]="mkfs.xfs -f"
[ntfs]="mkfs.ntfs -q"
[ext2]="mkfs.ext2 -q"
[ext3]="mkfs.ext3 -q"
[ext4]="mkfs.ext4 -q"
[vfat]="mkfs.vfat -F32"
[nilfs2]="mkfs.nilfs2 -q"
[ntfs]="mkfs.ntfs -q"
[reiserfs]="mkfs.reiserfs -q"
)
@ -251,7 +254,7 @@ main()
5) mnt_menu || SELECTED=$((SELECTED - 1)) ;;
6) prechecks 0 && { mkuser || SELECTED=$((SELECTED - 1)); } ;;
7) prechecks 1 && { cfg_menu || SELECTED=$((SELECTED - 1)); } ;;
8) prechecks 2 && { select_wm_or_de || SELECTED=$((SELECTED - 1)); } ;;
8) prechecks 2 && { select_sessions || SELECTED=$((SELECTED - 1)); } ;;
9) prechecks 2 && { select_packages || SELECTED=$((SELECTED - 1)); } ;;
10) prechecks 2 && show_cfg ;;
11) prechecks 2 && install ;;
@ -468,7 +471,7 @@ select_timezone()
yesno "$_TimeZTitle" "$_TimeZQ $ZONE/$SUBZONE?\n" || select_timezone
}
select_wm_or_de()
select_sessions()
{
LOGIN_CHOICES=""
@ -482,7 +485,8 @@ select_wm_or_de()
"gnome" "A desktop environment that aims to be simple and easy to use" off \
"cinnamon" "A desktop environment combining traditional desktop with modern effects" off \
"plasma" "A kde software project currently comprising a full desktop environment" off \
"xfce4" "A lightweight and modular desktop environment based on gtk+2/3" off)"; then
"xfce4" "A lightweight and modular desktop environment based on gtk+2/3" off \
"fluxbox" "A lightweight and highly-configurable window manager" off)"; then
return 1
fi
@ -538,34 +542,41 @@ select_packages()
SAVED=$SELECTED
SELECTED=1
CURRENT_MENU="packages"
elif (( SELECTED < 9 )); then
elif (( SELECTED < 13 )); then
((SELECTED++)) # increment the highlighted menu item
fi
tput civis
SELECTED=$(dialog --cr-wrap --no-cancel --stdout \
--backtitle "$BT" --title " $_Packages " \
SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_Packages " \
--default-item $SELECTED --menu "$_PackageMenu" 0 0 0 \
1 "Browsers" \
2 "Editors" \
3 "Terminals" \
4 "Multimedia" \
5 "Chat/Mail" \
6 "Professional" \
7 "System" \
8 "Miscellaneous" \
9 "$_Done")
1 "Web Browsers" \
2 "Text Editors" \
3 "File Management" \
4 "Terminal Emulators" \
5 "Music & Video Players" \
6 "Chat & Mail Clients" \
7 "Office & Professional" \
8 "Image & PDF Viewers" \
9 "Additional Fonts" \
10 "Torrent Clients" \
11 "System Management" \
12 "Miscellaneous" \
13 "$_Done")
if [[ $SELECTED -lt 9 ]]; then
if [[ $SELECTED -lt 13 ]]; then
case $SELECTED in
1) PACKAGES+=" $(select_browsers)" ;;
2) PACKAGES+=" $(select_editors)" ;;
3) PACKAGES+=" $(select_terminals)" ;;
4) PACKAGES+=" $(select_multimedia)" ;;
5) PACKAGES+=" $(select_mailchat)" ;;
6) PACKAGES+=" $(select_prof)" ;;
7) PACKAGES+=" $(select_managment)" ;;
8) PACKAGES+=" $(select_extra)" ;;
3) PACKAGES+=" $(select_files)" ;;
4) PACKAGES+=" $(select_terms)" ;;
5) PACKAGES+=" $(select_media)" ;;
6) PACKAGES+=" $(select_mail)" ;;
7) PACKAGES+=" $(select_prof)" ;;
8) PACKAGES+=" $(select_viewers)" ;;
9) PACKAGES+=" $(select_fonts)" ;;
10) PACKAGES+=" $(select_torrent)" ;;
11) PACKAGES+=" $(select_sys)" ;;
12) PACKAGES+=" $(select_extra)" ;;
esac
select_packages
fi
@ -686,7 +697,20 @@ select_editors()
printf "%s" "$pkgs"
}
select_terminals()
select_files()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"thunar" "A modern file manager for the Xfce Desktop Environment" off \
"pcmanfm" "A fast and lightweight file manager based in Lxde" off \
"nautilus" "The default file manager for Gnome" off \
"gparted" "A GUI frontend for creating and manipulating partition tables" off \
"file-roller" "Create and modify archives" off \
"xarchiver" "A GTK+ frontend to various command line archivers" off)"
printf "%s" "$pkgs"
}
select_terms()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -702,7 +726,7 @@ select_terminals()
printf "%s" "$pkgs"
}
select_multimedia()
select_media()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -720,7 +744,7 @@ select_multimedia()
printf "%s" "$pkgs"
}
select_mailchat()
select_mail()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -746,26 +770,18 @@ select_prof()
"inkscape" "Professional vector graphics editor" off \
"krita" "Edit and paint images" off \
"obs-studio" "Free opensource streaming/recording software" off \
"openshot" "An open-source, non-linear video editor for Linux based on MLT framework" off \
"kdenlive" "A non-linear video editor for Linux using the MLT video framework" off \
"openshot" "An open-source, non-linear video editor for Linux based on MLT framework" off \
"audacity" "A program that lets you manipulate digital audio waveforms" off \
"guvcview" "Capture video from camera devices" off \
"simplescreenrecorder" "A feature-rich screen recorder" off)"
printf "%s" "$pkgs"
}
select_managment()
select_fonts()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"thunar" "A modern file manager for the Xfce Desktop Environment" off \
"pcmanfm" "A fast and lightweight file manager based in Lxde" off \
"gparted" "A GUI frontend for creating and manipulating partition tables" off \
"gnome-disk-utility" "Disk Management Utility" off \
"gnome-system-monitor" "View current processes and monitor system state" off \
"qt5ct" "GUI for managing Qt based application themes, icons, and fonts" off \
"file-roller" "Create and modify archives" off \
"xarchiver" "A GTK+ frontend to various command line archivers" off \
"ttf-hack" "A hand groomed and optically balanced typeface based on Bitstream Vera Mono" off \
"ttf-anonymous-pro" "A family of four fixed-width fonts designed especially with coding in mind" off \
"ttf-font-awesome" "Iconic font designed for Bootstrap" off \
@ -775,19 +791,45 @@ select_managment()
printf "%s" "$pkgs"
}
select_viewers()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"evince" "A document viewer" off \
"zathura" "Minimalistic document viewer" off \
"qpdfview" "A tabbed PDF viewer" off \
"mupdf" "Lightweight PDF and XPS viewer" off \
"gpicview" "Lightweight image viewer" off)"
printf "%s" "$pkgs"
}
select_torrent()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"deluge" "A BitTorrent client written in python" off \
"qbittorrent" "An advanced BitTorrent client" off \
"transmission-gtk" "Free BitTorrent client GTK+ GUI" off \
"transmission-qt" "Free BitTorrent client Qt GUI" off \
"transmission-cli" "Free BitTorrent client CLI" off)"
printf "%s" "$pkgs"
}
select_sys()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"gnome-disk-utility" "Disk Management Utility" off \
"gnome-system-monitor" "View current processes and monitor system state" off \
"qt5ct" "GUI for managing Qt based application themes, icons, and fonts" off)"
printf "%s" "$pkgs"
}
select_extra()
{
local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"steam" "A popular game distribution platform by Valve" off \
"deluge" "A BitTorrent client written in python" off \
"transmission-gtk" "Free BitTorrent client GTK+ GUI" off \
"qbittorrent" "An advanced BitTorrent client" off \
"evince" "A document viewer" off \
"zathura" "Minimalistic document viewer" off \
"qpdfview" "A tabbed PDF viewer" off \
"mupdf" "Lightweight PDF and XPS viewer" off \
"gpicview" "Lightweight image viewer" off \
"gpick" "Advanced color picker using GTK+ toolkit" off \
"gcolor2" "A simple GTK+2 color selector" off \
"plank" "An elegant, simple, and clean dock" off \