#!/bin/bash set -uo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=../../lib/common.sh source "$HERE/../../lib/common.sh" # shellcheck source=../../lib/session.sh source "$HERE/../../lib/session.sh" if is_debug; then set +e; else set -e; fi step "Desktop environment: XFCE" rule if pkg_installed xfce4-session; then ok "XFCE already installed." else info "Installing the XFCE desktop..." install_group_any xfce-desktop xfce-desktop-environment install_optional "@xfce-extra-plugins" fi # XFCE is X11. It needs an X server present even when it is only the session # provider for chadwm. install_packages xorg-x11-server-Xorg xorg-x11-xinit # XFCE's native greeter is lightdm if ! pkg_installed lightdm; then install_packages lightdm fi switch_display_manager lightdm install_nerd_font JetBrainsMono install_packages alacritty dconf # Point XFCE's terminal preference at alacritty, seeding the config directly so # it applies on first login rather than needing a session restart. XFCONF_DIR="$HOME/.config/xfce4/xfconf/xfce-perchannel-xml" mkdir -p "$XFCONF_DIR" info "Seeding XFCE session defaults..." cat > "$XFCONF_DIR/xfce4-session.xml" <<'EOF' EOF ok "XFCE setup complete."