54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#=============================================================================
|
|
# SDDM Installation and Configuration Script
|
|
#=============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/lib.sh"
|
|
|
|
init_installer
|
|
|
|
print_header "SDDM Display Manager"
|
|
|
|
# Check for conflicting display managers
|
|
active_dm=$(detect_dm)
|
|
if [[ "$active_dm" != "none" && "$active_dm" != "sddm" ]]; then
|
|
echo -e "${WARN} Active display manager detected: $active_dm"
|
|
echo -e "${NOTE} Please disable it before installing SDDM:"
|
|
echo -e " sudo systemctl disable $active_dm.service"
|
|
exit 1
|
|
fi
|
|
|
|
# Install SDDM and dependencies
|
|
sddm_pkgs=(
|
|
sddm
|
|
qt5-graphicaleffects
|
|
qt5-quickcontrols2
|
|
qt5-svg
|
|
)
|
|
|
|
echo -e "${NOTE} Installing SDDM packages..."
|
|
install_packages_sequential "${sddm_pkgs[@]}"
|
|
|
|
# Enable SDDM service
|
|
echo -e "\n${NOTE} Enabling SDDM service..."
|
|
sudo systemctl enable sddm.service
|
|
|
|
# Create SDDM configuration directory
|
|
sudo mkdir -p /etc/sddm.conf.d
|
|
|
|
# Configure SDDM for Wayland session
|
|
cat << 'EOF' | sudo tee /etc/sddm.conf.d/wayland.conf > /dev/null
|
|
[General]
|
|
DisplayServer=wayland
|
|
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
|
|
|
|
[Wayland]
|
|
SessionDir=/usr/share/wayland-sessions
|
|
EOF
|
|
|
|
echo -e "${OK} SDDM installation complete!"
|
|
echo -e "${NOTE} SDDM will start on next reboot."
|