diff --git a/src/archlabs-installer b/src/archlabs-installer index 4b62524..04f55ff 100755 --- a/src/archlabs-installer +++ b/src/archlabs-installer @@ -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)" ;; + 1) PACKAGES+=" $(select_browsers)" ;; + 2) PACKAGES+=" $(select_editors)" ;; + 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,32 +770,58 @@ 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" \ + "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 \ + "ttf-fira-code" "Monospaced font with programming ligatures" off \ + "noto-fonts" "Google Noto fonts" off \ + "noto-fonts-cjk" "Google Noto CJK fonts (Chinese, Japanese, Korean)" off)" + 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" \ - "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 \ - "ttf-fira-code" "Monospaced font with programming ligatures" off \ - "noto-fonts" "Google Noto fonts" off \ - "noto-fonts-cjk" "Google Noto CJK fonts (Chinese, Japanese, Korean)" off)" + "qt5ct" "GUI for managing Qt based application themes, icons, and fonts" off)" printf "%s" "$pkgs" } @@ -779,20 +829,12 @@ 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 \ - "docky" "Full fledged dock for opening applications and managing windows" off \ - "cairo-dock" "Light eye-candy fully themable animated dock" off)" + "steam" "A popular game distribution platform by Valve" 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 \ + "docky" "Full fledged dock for opening applications and managing windows" off \ + "cairo-dock" "Light eye-candy fully themable animated dock" off)" printf "%s" "$pkgs" }