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' [dwm]='dwm'
[i3-gaps]='i3' [i3-gaps]='i3'
[bspwm]='bspwm' [bspwm]='bspwm'
[xfce4]='startxfce4'
[plasma]='startkde' [plasma]='startkde'
[xfce4]='startxfce4'
[gnome]='gnome-session' [gnome]='gnome-session'
[fluxbox]='startfluxbox'
[openbox]='openbox-session' [openbox]='openbox-session'
[cinnamon]='cinnamon-session' [cinnamon]='cinnamon-session'
) )
@ -138,6 +139,7 @@ declare -A WM_SESSIONS=(
# additional packages installed for each wm/de # additional packages installed for each wm/de
declare -A WM_EXT=( declare -A WM_EXT=(
[gnome]="" [gnome]=""
[fluxbox]="menumaker"
[plasma]="kdebase-meta" [plasma]="kdebase-meta"
[bspwm]="sxhkd archlabs-skel-bspwm rofi archlabs-polybar" [bspwm]="sxhkd archlabs-skel-bspwm rofi archlabs-polybar"
[i3-gaps]="i3status perl-anyevent-i3 archlabs-skel-i3-gaps 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" [vlc]="qt4"
[mpd]="mpc" [mpd]="mpc"
[mupdf]="mupdf-tools" [mupdf]="mupdf-tools"
[qutebrowser]="qt5ct qt5-styleplugins"
[qt5ct]="qt5-styleplugins" [qt5ct]="qt5-styleplugins"
[vlc]="qt5ct qt5-styleplugins" [vlc]="qt5ct qt5-styleplugins"
[zathura]="zathura-pdf-poppler" [zathura]="zathura-pdf-poppler"
[noto-fonts]="noto-fonts-emoji" [noto-fonts]="noto-fonts-emoji"
[cairo-dock]="cairo-dock-plug-ins" [cairo-dock]="cairo-dock-plug-ins"
[qutebrowser]="qt5ct qt5-styleplugins"
[qbittorrent]="qt5ct qt5-styleplugins" [qbittorrent]="qt5ct qt5-styleplugins"
[transmission-qt]="qt5ct qt5-styleplugins"
[kdenlive]="kdebase-meta dvdauthor frei0r-plugins breeze breeze-gtk 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 # mkfs command to format a partition as a given file system
declare -A FS_CMDS=( declare -A FS_CMDS=(
[ext2]="mkfs.ext2 -q"
[ext3]="mkfs.ext3 -q"
[ext4]="mkfs.ext4 -q"
[f2fs]="mkfs.f2fs" [f2fs]="mkfs.f2fs"
[jfs]="mkfs.jfs -q" [jfs]="mkfs.jfs -q"
[xfs]="mkfs.xfs -f" [xfs]="mkfs.xfs -f"
[ntfs]="mkfs.ntfs -q"
[ext2]="mkfs.ext2 -q"
[ext3]="mkfs.ext3 -q"
[ext4]="mkfs.ext4 -q"
[vfat]="mkfs.vfat -F32" [vfat]="mkfs.vfat -F32"
[nilfs2]="mkfs.nilfs2 -q" [nilfs2]="mkfs.nilfs2 -q"
[ntfs]="mkfs.ntfs -q"
[reiserfs]="mkfs.reiserfs -q" [reiserfs]="mkfs.reiserfs -q"
) )
@ -251,7 +254,7 @@ main()
5) mnt_menu || SELECTED=$((SELECTED - 1)) ;; 5) mnt_menu || SELECTED=$((SELECTED - 1)) ;;
6) prechecks 0 && { mkuser || SELECTED=$((SELECTED - 1)); } ;; 6) prechecks 0 && { mkuser || SELECTED=$((SELECTED - 1)); } ;;
7) prechecks 1 && { cfg_menu || 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)); } ;; 9) prechecks 2 && { select_packages || SELECTED=$((SELECTED - 1)); } ;;
10) prechecks 2 && show_cfg ;; 10) prechecks 2 && show_cfg ;;
11) prechecks 2 && install ;; 11) prechecks 2 && install ;;
@ -468,7 +471,7 @@ select_timezone()
yesno "$_TimeZTitle" "$_TimeZQ $ZONE/$SUBZONE?\n" || select_timezone yesno "$_TimeZTitle" "$_TimeZQ $ZONE/$SUBZONE?\n" || select_timezone
} }
select_wm_or_de() select_sessions()
{ {
LOGIN_CHOICES="" LOGIN_CHOICES=""
@ -482,7 +485,8 @@ select_wm_or_de()
"gnome" "A desktop environment that aims to be simple and easy to use" off \ "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 \ "cinnamon" "A desktop environment combining traditional desktop with modern effects" off \
"plasma" "A kde software project currently comprising a full desktop environment" 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 return 1
fi fi
@ -538,34 +542,41 @@ select_packages()
SAVED=$SELECTED SAVED=$SELECTED
SELECTED=1 SELECTED=1
CURRENT_MENU="packages" CURRENT_MENU="packages"
elif (( SELECTED < 9 )); then elif (( SELECTED < 13 )); then
((SELECTED++)) # increment the highlighted menu item ((SELECTED++)) # increment the highlighted menu item
fi fi
tput civis tput civis
SELECTED=$(dialog --cr-wrap --no-cancel --stdout \ SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_Packages " \
--backtitle "$BT" --title " $_Packages " \
--default-item $SELECTED --menu "$_PackageMenu" 0 0 0 \ --default-item $SELECTED --menu "$_PackageMenu" 0 0 0 \
1 "Browsers" \ 1 "Web Browsers" \
2 "Editors" \ 2 "Text Editors" \
3 "Terminals" \ 3 "File Management" \
4 "Multimedia" \ 4 "Terminal Emulators" \
5 "Chat/Mail" \ 5 "Music & Video Players" \
6 "Professional" \ 6 "Chat & Mail Clients" \
7 "System" \ 7 "Office & Professional" \
8 "Miscellaneous" \ 8 "Image & PDF Viewers" \
9 "$_Done") 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 case $SELECTED in
1) PACKAGES+=" $(select_browsers)" ;; 1) PACKAGES+=" $(select_browsers)" ;;
2) PACKAGES+=" $(select_editors)" ;; 2) PACKAGES+=" $(select_editors)" ;;
3) PACKAGES+=" $(select_terminals)" ;; 3) PACKAGES+=" $(select_files)" ;;
4) PACKAGES+=" $(select_multimedia)" ;; 4) PACKAGES+=" $(select_terms)" ;;
5) PACKAGES+=" $(select_mailchat)" ;; 5) PACKAGES+=" $(select_media)" ;;
6) PACKAGES+=" $(select_prof)" ;; 6) PACKAGES+=" $(select_mail)" ;;
7) PACKAGES+=" $(select_managment)" ;; 7) PACKAGES+=" $(select_prof)" ;;
8) PACKAGES+=" $(select_extra)" ;; 8) PACKAGES+=" $(select_viewers)" ;;
9) PACKAGES+=" $(select_fonts)" ;;
10) PACKAGES+=" $(select_torrent)" ;;
11) PACKAGES+=" $(select_sys)" ;;
12) PACKAGES+=" $(select_extra)" ;;
esac esac
select_packages select_packages
fi fi
@ -686,7 +697,20 @@ select_editors()
printf "%s" "$pkgs" 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="" local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \ pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -702,7 +726,7 @@ select_terminals()
printf "%s" "$pkgs" printf "%s" "$pkgs"
} }
select_multimedia() select_media()
{ {
local pkgs="" local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \ pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -720,7 +744,7 @@ select_multimedia()
printf "%s" "$pkgs" printf "%s" "$pkgs"
} }
select_mailchat() select_mail()
{ {
local pkgs="" local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \ pkgs="$(checkbox "$_Packages" "$_PackageBody" \
@ -746,26 +770,18 @@ select_prof()
"inkscape" "Professional vector graphics editor" off \ "inkscape" "Professional vector graphics editor" off \
"krita" "Edit and paint images" off \ "krita" "Edit and paint images" off \
"obs-studio" "Free opensource streaming/recording software" 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 \ "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 \ "audacity" "A program that lets you manipulate digital audio waveforms" off \
"guvcview" "Capture video from camera devices" off \ "guvcview" "Capture video from camera devices" off \
"simplescreenrecorder" "A feature-rich screen recorder" off)" "simplescreenrecorder" "A feature-rich screen recorder" off)"
printf "%s" "$pkgs" printf "%s" "$pkgs"
} }
select_managment() select_fonts()
{ {
local pkgs="" local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \ 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-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-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 \ "ttf-font-awesome" "Iconic font designed for Bootstrap" off \
@ -775,19 +791,45 @@ select_managment()
printf "%s" "$pkgs" 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() select_extra()
{ {
local pkgs="" local pkgs=""
pkgs="$(checkbox "$_Packages" "$_PackageBody" \ pkgs="$(checkbox "$_Packages" "$_PackageBody" \
"steam" "A popular game distribution platform by Valve" off \ "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 \ "gpick" "Advanced color picker using GTK+ toolkit" off \
"gcolor2" "A simple GTK+2 color selector" off \ "gcolor2" "A simple GTK+2 color selector" off \
"plank" "An elegant, simple, and clean dock" off \ "plank" "An elegant, simple, and clean dock" off \