- Replaced XFCE with KDE Plasma and SDDM display manager. - Reduced profiles from seven to four (minimal, server, basic, office). - Split home skeleton files into home-skel and home-skel-desktop directories. - Added display name prompt during user setup. - Added 7zip and fwupd to base packages.
186 lines
4.4 KiB
Bash
186 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-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_<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
|
|
)
|
|
PROFILE_office_SERVICES=()
|