name = "System Setup"

[[data]]
name = "Alpine"

[[data.preconditions]]
matches = true
data = "command_exists"
values = ["apk"]

[[data.entries]]
name = "Alpine Update"
description = "Upgrades Alpine Linux to either latest stable or edge repositories"
script = "alpine/alpine-upgrade.sh"
task_list = "P MP"
multi_select = false

[[data]]
name = "Arch"

[[data.preconditions]]
matches = true
data = "command_exists"
values = ["pacman"]

[[data.entries]]
name = "Arch Server Setup"
description = "This command installs a minimal arch server setup under 5 minutes."
script = "arch/server-setup.sh"
task_list = "SI D"
multi_select = false

[[data.entries]]
name = "DWM-Titus"
description = "DWM is a dynamic window manager for X.\nIt manages windows in tiled, monocle and floating layouts.\nAll of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed.\nThis command installs and configures DWM and a desktop manager.\nThe list of patches applied can be found in CTT's DWM repository\nhttps://github.com/ChrisTitusTech/dwm-titus"
script = "arch/dwmtitus-setup.sh"
task_list = "I PFM SS"

[[data.entries]]
name = "Hyprland JaKooLit"
description = "Install JaKooLit's Hyprland configuration"
script = "arch/hyprland-kool.sh"
task_list = "I MP"
multi_select = false

[[data.entries]]
name = "Install CachyOS Repository and Kernel"
description = "To deliver a performance-optimized distribution, CachyOS recompiles Arch Linux packages specifically for the x86-64-v3, x86-64-v4, and Zen4+ architectures."
script = "arch/cachyos-repos.sh"
task_list = "I"

[[data.entries]]
name = "Install Chaotic-AUR Repository"
description = "Chaotic-AUR provides prebuilt binaries for popular AUR packages, saving compilation time. To know more visit: https://aur.chaotic.cx/"
script = "arch/chaotic-aur-setup.sh"
task_list = "I"

[[data.entries]]
name = "Linux Neptune for SteamDeck"
description = "Valve's fork of Linux Kernel for the SteamDeck"
script = "arch/linux-neptune.sh"
task_list = "I PFM K"

[[data.entries.preconditions]]
matches = true
data = { containing_file = "/sys/devices/virtual/dmi/id/board_vendor" }
values = ["Valve"]

[[data.entries]]
name = "Nvidia Drivers & Hardware Acceleration"
description = "This script installs and configures nvidia drivers with Hardware Acceleration."
script = "arch/nvidia-drivers.sh"
task_list = "I FM SS"

[[data.entries]]
name = "Omarchy Rice by DHH"
description = "Simplified Hyprland configuration by DHH the ruby on rails dude."
script = "arch/omarchy.sh"
task_list = "I MP"
multi_select = false

[[data.entries]]
name = "Paru AUR Helper"
description = "Paru is your standard pacman wrapping AUR helper with lots of features and minimal interaction. To know more about AUR helpers visit: https://wiki.archlinux.org/title/AUR_helpers"
script = "arch/paru-setup.sh"
task_list = "I"

[[data.entries]]
name = "Virtualization"
description = "QEMU, Libvirt, Virt-Manager installation and configuration."
script = "arch/virtualization.sh"
task_list = "FM I SS RP"

[[data.entries]]
name = "Yay AUR Helper"
description = "Yet Another Yogurt - An AUR Helper Written in Go. To know more about AUR helpers visit: https://wiki.archlinux.org/title/AUR_helpers"
script = "arch/yay-setup.sh"
task_list = "I"

[[data]]
name = "Debian"

[[data.preconditions]]
matches = true
data = { containing_file = "/etc/os-release" }
values = ["ID=debian"]

[[data.entries]]
name = "Hyprland JaKooLit"
description = "Install JaKooLit's Hyprland configuration"
script = "debian/hyprland-kool-deb.sh"
task_list = "I MP"

[[data]]
name = "Desktop Environment Setup"

[[data.entries]]
name = "Install Desktop Environment"
description = "This script allows you to install various desktop environments (GNOME, KDE, XFCE, Cinnamon, MATE, Budgie, LXQt, LXDE) and window managers (i3, Sway, DWM, Awesome, BSPWM, Openbox, Fluxbox) using your distro's package manager. The script provides an interactive menu to select your preferred desktop environment or window manager, and handles the installation process automatically."
script = "desktop-environments.sh"
task_list = "I"

[[data.entries]]
name = "Uninstall Desktop Environment"
description = "This script allows you to uninstall desktop environments and window managers that were previously installed. It provides an interactive menu to select which desktop environment or window manager to remove, and handles the uninstallation process automatically."
script = "desktop-environments-uninstall.sh"
task_list = "RP"

[[data]]
name = "Fedora"

[[data.preconditions]]
matches = true
data = "command_exists"
values = ["dnf"]

[[data.entries]]
name = "Btrfs Assistant, Snapper Config, grub-btrfs"
description = "Installs Btrfs Assistant, Snapper, dnf snapper plugin and takes the first root(/) and /home snapshots. Enables snapper-timeline and snapper-cleanup services. Installs Grub-Btrfs. Notice: To perform a system recovery via grub-btrfs, perform a restore operation with Btrfs Assistant GUI after booting into the snapshot. Notice: If you used the default Fedora disk partitioning during OS installation, the /boot configured as an separate EXT4 partition. Therefore, it cannot be included in root snapshots. Backup separately."
script = "fedora/fedora-btrfs-assistant.sh"
task_list = "I PFM SS"

[[data.entries]]
name = "Configure DNF"
description = "Optimizes DNF for parallel downloads"
script = "fedora/configure-dnf.sh"
task_list = "PFM"

[[data.entries]]
name = "Hyprland JaKooLit"
description = "Install JaKooLit's Hyprland configuration"
script = "fedora/hyprland-kool-fed.sh"
task_list = "I MP"

[[data.entries]]
name = "Multimedia Codecs"
description = "This script is designed to install multimedia codecs, and to ensure RPM Fusion repositories are installed."
script = "fedora/multimedia-codecs.sh"
task_list = "I"

[[data.entries]]
name = "Nvidia Proprietary Drivers"
description = "This script is designed to download the proprietary NVIDIA drivers in Fedora."
script = "fedora/nvidia-proprietary-driver-setup.sh"
task_list = "I"

[[data.entries]]
name = "RPM Fusion"
description = "RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. That software is provided as precompiled RPMs for all current Fedora versions and current Red Hat Enterprise Linux or clones versions; you can use the RPM Fusion repositories with tools like yum and PackageKit. For more information visit: https://rpmfusion.org/"
script = "fedora/rpm-fusion-setup.sh"
task_list = "MP"

[[data.entries]]
name = "Upgrade to a New Fedora Release"
description = "Upgrades system to the next Fedora release"
script = "fedora/fedora-upgrade.sh"
task_list = "MP"

[[data.entries]]
name = "Virtualization"
description = "Enables Virtualization through dnf"
script = "fedora/virtualization.sh"
task_list = "I"

[[data.preconditions]]
matches = true
data = "command_exists"
values = ["btrfs"]

[[data]]
name = "Ubuntu"

[[data.preconditions]]
matches = true
data = { containing_file = "/etc/os-release" }
values = ["ID=ubuntu"]

[[data.entries]]
name = "Hyprland JaKooLit"
description = "Install JaKooLit's Hyprland configuration"
script = "ubuntu/hyprland-kool-ubuntu24.sh"
task_list = "I MP"

[[data.preconditions]]
matches = true
data = { containing_file = "/etc/os-release" }
values = ['VERSION_ID="24.04"']

[[data]]
name = "Build Prerequisites"
description = "This script is designed to handle the installation of various software dependencies across different Linux distributions"
script = "compile-setup.sh"
task_list = "I"

[[data]]
name = "Full System Cleanup"
description = "This script is designed to remove unnecessary packages, clean old cache files, remove temporary files, and to empty the trash."
script = "system-cleanup.sh"
task_list = "RP PFM"
multi_select = false

[[data]]
name = "Full System Update"
description = "This command updates your system to the latest packages available for your distro"
script = "system-update.sh"
task_list = "PFM"
multi_select = false

[[data]]
name = "Full System Update (Topgrade)"
description = "This command uses topgrade to update your system packages, configs, and more from various sources"
script = "system-update-topgrade.sh"
task_list = "PFM"
multi_select = false

[[data]]
name = "Global Theme"
description = "This script is designed to handle the installation and configuration of global theming"
script = "global-theme.sh"
task_list = "I PFM"

[[data]]
name = "Remove Snaps"
description = "This script is designed to remove snap"
script = "remove-snaps.sh"
task_list = "RP"

[[data]]
name = "TTY Fonts"
description = "This Script will set the default TTY font to Terminus size 32 Bold"
script = "terminus-tty.sh"
task_list = "I PFM"
