#!/bin/sh PKG_KDE_APPS="kcalc dolphin-plugins elisa vlc-qt" PKG_OFFICE="libreoffice-calc libreoffice-writer libreoffice-draw libreoffice-kf6" PKG_NET="thunderbird net-tools remmina" PKG_FLATPAK="discover-backend-flatpak flatpak" #### Functions check_root() { if [ "$(id -u)" -ne 0 ]; then echo "Must be root to run $0" exit fi } choice() { local prompt="$1" local default="${2:-Y}" # Default to Y if not specified local response while true; do # Loop until valid input read -rp "$prompt [Y/n/c] " -n 1 response echo # New line after input # Use default if input is empty response=${response:-$default} case "$response" in [Yy]* ) return 0;; # Yes: return 0 [Nn]* ) return 1;; # No: return 1 [Cc]* ) return 2;; # Cancel: return 2 * ) echo "Invalid input. Please enter Y (Yes), n (No), or c (Cancel)." >&2;; esac done } #### Main check_root echo -ne "\nInstall of KDE minimal (setup eudev, D-Bus, Elogind, Meta KDE Plasma)? " if choice 2>/dev/null; then setup-apkrepos -c -1 setup-devd udev setup-xorg-base apk update apk add dbus polkit-elogind elogind rc-update add dbus rc-update add polkit rc-update add elogind setup-desktop plasma sed -i "s#^DisplayServer=wayland\$#DisplayServer=x11#" /etc/sddm.conf.d/plasma-wayland.conf # Bug https://gitlab.alpinelinux.org/alpine/aports/-/issues/16802 fi echo -ne "\nYou want to install KDE apps ($PKG_KDE_APPS)? " if choice 2>/dev/null; then apk add $PKG_KDE_APPS fi echo -ne "\nYou want to install office packages ($PKG_OFFICE)? " if choice 2>/dev/null; then apk add $PKG_OFFICE fi echo -ne "\nYou want to install internet programs ($PKG_NET)? " if choice 2>/dev/null; then apk add $PKG_NET fi echo -ne "\nYou want to install support for Flatpak ($PKG_FLATPAK)? " if choice 2>/dev/null; then apk add $PKG_FLATPAK flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo fi