193 lines
5.6 KiB
Bash
193 lines
5.6 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 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_<key>_NAME - Display name
|
|
# PROFILE_<key>_DESC - Description shown in menu
|
|
# PROFILE_<key>_XFCE - Whether to install XFCE (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_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)
|