Files
Arch-Linux-Installer/config/profiles.conf

185 lines
4.4 KiB
Bash

#!/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-pa
kscreen
# Multimedia backend
phonon-qt6-vlc
vlc-plugin-ffmpeg
ffmpeg
# System settings
kinfocenter
sddm-kcm
kde-gtk-config
breeze-gtk
power-profiles-daemon
# 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
kwallet-pam
# Accessibility
kmousetool
# 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_<key>_NAME - Display name
# PROFILE_<key>_DESC - Description shown in menu
# PROFILE_<key>_KDE - Whether to install KDE (true/false)
# PROFILE_<key>_PACKAGES - Package array
# PROFILE_<key>_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
# Network analysis
wireshark-qt
)
PROFILE_office_SERVICES=()