#!/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 XFCE packages and installation profiles. Adding a new profile # requires only adding entries here - no code changes needed. #=============================================================================== # DESKTOP ENVIRONMENT PACKAGES #=============================================================================== # XFCE base packages XFCE_PACKAGES=( lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings thunar thunar-archive-plugin gvfs xfce4-panel xfce4-power-manager xfce4-session xfce4-settings xfce4-terminal xfdesktop xfwm4 papirus-icon-theme xfce4-battery-plugin xfce4-notifyd xfce4-whiskermenu-plugin xfce4-screensaver xfce4-screenshooter mousepad noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber pavucontrol xfce4-pulseaudio-plugin ristretto webp-pixbuf-loader libopenraw xarchiver 7zip xreader ) #=============================================================================== # PROFILE DEFINITIONS #=============================================================================== # Profile registry - order determines menu numbering PROFILES=(minimal server minimal_desktop htpc htpc_gaming office dev) # Each profile defines: # PROFILE__NAME - Display name # PROFILE__DESC - Description shown in menu # PROFILE__XFCE - Whether to install XFCE (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_XFCE=false PROFILE_minimal_PACKAGES=() PROFILE_minimal_SERVICES=() #--------------------------------------------------------------------------- # Profile: Server #--------------------------------------------------------------------------- PROFILE_server_NAME="Server" PROFILE_server_DESC="Adds Restic, Docker, and Docker Compose." PROFILE_server_XFCE=false PROFILE_server_PACKAGES=( restic docker docker-compose ) PROFILE_server_SERVICES=(docker.service) #--------------------------------------------------------------------------- # Profile: Minimal Desktop #--------------------------------------------------------------------------- PROFILE_minimal_desktop_NAME="Minimal Desktop" PROFILE_minimal_desktop_DESC="XFCE 4 with no additional applications." PROFILE_minimal_desktop_XFCE=true PROFILE_minimal_desktop_PACKAGES=() PROFILE_minimal_desktop_SERVICES=() #--------------------------------------------------------------------------- # Profile: Home Theater PC #--------------------------------------------------------------------------- PROFILE_htpc_NAME="Home Theater PC" PROFILE_htpc_DESC="XFCE 4 with Chromium and VLC media player." PROFILE_htpc_XFCE=true PROFILE_htpc_PACKAGES=( chromium vlc vlc-plugin-ffmpeg ) PROFILE_htpc_SERVICES=() #--------------------------------------------------------------------------- # Profile: Home Theater PC with Gaming #--------------------------------------------------------------------------- PROFILE_htpc_gaming_NAME="Home Theater PC with Gaming" PROFILE_htpc_gaming_DESC="XFCE 4 with Chromium, VLC media player, and Dolphin." PROFILE_htpc_gaming_XFCE=true PROFILE_htpc_gaming_PACKAGES=( dolphin-emu chromium vlc vlc-plugin-ffmpeg ) PROFILE_htpc_gaming_SERVICES=() #--------------------------------------------------------------------------- # Profile: Office Workstation #--------------------------------------------------------------------------- PROFILE_office_NAME="Office Workstation" PROFILE_office_DESC="XFCE 4 with a full suite of desktop applications aimed at general office work." PROFILE_office_XFCE=true PROFILE_office_PACKAGES=( chromium vlc vlc-plugin-ffmpeg hunspell-en_us libreoffice-fresh keepassxc qalculate-gtk ffmpeg gimp syncthing tenacity git gnucash ) PROFILE_office_SERVICES=() #--------------------------------------------------------------------------- # Profile: Software Development Workstation #--------------------------------------------------------------------------- PROFILE_dev_NAME="Software Development Workstation" PROFILE_dev_DESC="XFCE 4 with a suite of software development applications." PROFILE_dev_XFCE=true PROFILE_dev_PACKAGES=( chromium vlc vlc-plugin-ffmpeg hunspell-en_us libreoffice-fresh keepassxc qalculate-gtk ffmpeg gimp syncthing tenacity git docker docker-compose python python-virtualenv pycharm-community-edition jdk-openjdk intellij-idea-community-edition go code wireshark-qt ) PROFILE_dev_SERVICES=(docker.service)