#!/usr/bin/env bash set -e if [ "$EUID" -eq 0 ]; then echo "Please run this script as your normal user, not with sudo." exit 1 fi echo "==> Updating system..." sudo xbps-install -Syu echo "==> Installing KDE and desktop essentials..." sudo xbps-install -y \ kde-plasma \ kde-baseapps \ NetworkManager \ sddm \ xorg-minimal \ xorg-server-xwayland \ mesa-dri \ qt6-wayland \ kwayland \ elogind \ pipewire \ alsa-pipewire \ libspa-bluetooth \ bluez \ xdg-desktop-portal \ xdg-desktop-portal-kde \ git \ curl \ neovim echo "==> Disabling conflicting DHCP service..." if [ -e /var/service/dhcpcd ]; then sudo sv down dhcpcd || true sudo rm -f /var/service/dhcpcd fi echo "==> Enabling system services..." enable_service() { service="$1" if [ ! -e "/var/service/$service" ]; then sudo ln -s "/etc/sv/$service" "/var/service/$service" fi } enable_service dbus enable_service NetworkManager enable_service sddm enable_service bluetoothd echo "==> Adding user to required groups..." sudo usermod -aG network,audio,video,bluetooth "$USER" echo "==> Configuring ALSA for PipeWire..." sudo mkdir -p /etc/alsa/conf.d sudo ln -sf \ /usr/share/alsa/alsa.conf.d/50-pipewire.conf \ /etc/alsa/conf.d/50-pipewire.conf sudo ln -sf \ /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf \ /etc/alsa/conf.d/99-pipewire-default.conf echo "==> Configuring PipeWire PulseAudio compatibility..." sudo mkdir -p /etc/pipewire/pipewire.conf.d sudo ln -sf \ /usr/share/examples/pipewire/20-pipewire-pulse.conf \ /etc/pipewire/pipewire.conf.d/20-pipewire-pulse.conf echo "==> Enabling PipeWire desktop autostart..." mkdir -p "$HOME/.config/autostart" ln -sf \ /usr/share/applications/pipewire.desktop \ "$HOME/.config/autostart/pipewire.desktop" echo "==> Reconfiguring packages..." sudo xbps-reconfigure -fa echo echo "========================================" echo " Void KDE bootstrap complete" echo "========================================" echo echo "Installed:" echo " KDE Plasma" echo " SDDM" echo " Plasma Wayland" echo " NetworkManager" echo " PipeWire + WirePlumber" echo " Bluetooth" echo " XWayland" echo " Neovim" echo echo "Enabled services:" sudo sv status dbus NetworkManager bluetoothd sddm echo echo "NOTE: elogind is installed but intentionally" echo "not enabled as a runit service." echo echo "Reboot, then select 'Plasma (Wayland)' in SDDM." echo echo " sudo reboot" echo