#!/usr/bin/env bash set -euo pipefail marker_dir="${HOME}/.config/raveos" marker_file="${marker_dir}/plasma-first-login-done" wallpaper="/usr/share/backgrounds/raveos/raveos-main-bg.jpeg" kickoff_image="/usr/share/raveos/plasma-theme/theme-data/plasma/org.kde.plasma.kickoff.svg" mkdir -p "${marker_dir}" [[ -e "${marker_file}" ]] && exit 0 [[ "${XDG_CURRENT_DESKTOP:-}" == *KDE* || "${DESKTOP_SESSION:-}" == *plasma* ]] || exit 0 until qdbus6 org.kde.plasmashell /PlasmaShell >/dev/null 2>&1 || qdbus org.kde.plasmashell /PlasmaShell >/dev/null 2>&1; do sleep 2 done sleep 5 QDBUS="" if command -v qdbus6 >/dev/null 2>&1; then QDBUS="qdbus6" elif command -v qdbus >/dev/null 2>&1; then QDBUS="qdbus" fi if command -v plasma-apply-lookandfeel >/dev/null 2>&1; then plasma-apply-lookandfeel -a org.kde.breezedark.desktop >/dev/null 2>&1 || true fi if [[ -f "${wallpaper}" ]] && command -v plasma-apply-wallpaperimage >/dev/null 2>&1; then plasma-apply-wallpaperimage "${wallpaper}" >/dev/null 2>&1 || true fi if [[ -n "$QDBUS" ]]; then $QDBUS org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript " if ('${wallpaper}' !== '') { var d = desktops(); for (var i = 0; i < d.length; i++) { d[i].wallpaperPlugin = 'org.kde.image'; d[i].currentConfigGroup = ['Wallpaper', 'org.kde.image', 'General']; d[i].writeConfig('Image', 'file://${wallpaper}'); d[i].writeConfig('FillMode', 2); } } " >/dev/null 2>&1 || true fi if [[ -f "${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" ]] && command -v kwriteconfig6 >/dev/null 2>&1; then while IFS=: read -r containment applet; do [[ -n "${containment}" && -n "${applet}" ]] || continue kwriteconfig6 --file "${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" \ --group Containments --group "${containment}" --group Applets \ --group "${applet}" --group Configuration --group General \ --key useCustomButtonImage true kwriteconfig6 --file "${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" \ --group Containments --group "${containment}" --group Applets \ --group "${applet}" --group Configuration --group General \ --key customButtonImage "file://${kickoff_image}" kwriteconfig6 --file "${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" \ --group Containments --group "${containment}" --group Applets \ --group "${applet}" --group Configuration --group General \ --key icon "${kickoff_image}" done < <( awk ' match($0, /^\[Containments\]\[([0-9]+)\]\[Applets\]\[([0-9]+)\]$/, m) { c=m[1]; a=m[2]; next } /^plugin=org\.kde\.plasma\.(kickoff|kicker|simplemenu|kickoffdashboard)$/ && c != "" && a != "" { print c ":" a } ' "${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" | sort -u ) fi touch "${marker_file}"