#!/bin/bash # Copyright 2026 Logan Fick # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # profiles.conf - Profile and desktop environment package definitions # # Defines KDE packages and installation profiles. Adding a new profile # requires only adding entries here - no code changes needed. #=============================================================================== # DESKTOP ENVIRONMENT PACKAGES #=============================================================================== # KDE Plasma base packages KDE_PACKAGES=( # Display manager sddm # Core Plasma plasma-desktop plasma-workspace plasma-pa powerdevil kscreen # Multimedia backend phonon-qt6-vlc vlc-plugin-ffmpeg ffmpeg # System settings systemsettings kinfocenter sddm-kcm kde-gtk-config breeze-gtk # Essential applications konsole dolphin kate ark spectacle gwenview kcalc # Browser and media chromium haruna elisa okular # File management filelight kfind # Text and diff tools kompare # Security plasma-vault kleopatra kwalletmanager # Accessibility kmousetool # Network analysis wireshark-qt # Utilities kcolorchooser kcharselect kalarm sweeper kdialog # Thumbnails and previews kdegraphics-thumbnailers ffmpegthumbs markdownpart svgpart # Audio pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber # Fonts noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ) #=============================================================================== # PROFILE DEFINITIONS #=============================================================================== # Profile registry - order determines menu numbering PROFILES=(minimal server basic office) # Each profile defines: # PROFILE__NAME - Display name # PROFILE__DESC - Description shown in menu # PROFILE__KDE - Whether to install KDE (true/false) # PROFILE__PACKAGES - Package array # PROFILE__SERVICES - Services to enable array #--------------------------------------------------------------------------- # Profile: Minimal #--------------------------------------------------------------------------- PROFILE_minimal_NAME="Minimal" PROFILE_minimal_DESC="Base Arch Linux system, no additional packages." PROFILE_minimal_KDE=false PROFILE_minimal_PACKAGES=() PROFILE_minimal_SERVICES=() #--------------------------------------------------------------------------- # Profile: Server #--------------------------------------------------------------------------- PROFILE_server_NAME="Server" PROFILE_server_DESC="Adds Restic, Docker, and Docker Compose." PROFILE_server_KDE=false PROFILE_server_PACKAGES=( restic docker docker-compose ) PROFILE_server_SERVICES=(docker.service) #--------------------------------------------------------------------------- # Profile: Basic Desktop #--------------------------------------------------------------------------- PROFILE_basic_NAME="Basic Desktop" PROFILE_basic_DESC="KDE Plasma with Chromium and multimedia applications." PROFILE_basic_KDE=true PROFILE_basic_PACKAGES=() PROFILE_basic_SERVICES=() #--------------------------------------------------------------------------- # Profile: Office Workstation #--------------------------------------------------------------------------- PROFILE_office_NAME="Office Workstation" PROFILE_office_DESC="KDE Plasma with office and productivity applications." PROFILE_office_KDE=true PROFILE_office_PACKAGES=( # Office and documents libreoffice-fresh hunspell-en_us ghostwriter marknote # Graphics and multimedia gimp kdenlive kid3 tenacity # Communication neochat tokodon akregator # Utilities keepassxc syncthing gnucash git ) PROFILE_office_SERVICES=()