diff options
Diffstat (limited to 'raveos-plasma-theme/raveos-plasma-first-login.sh')
| -rwxr-xr-x[-rw-r--r--] | raveos-plasma-theme/raveos-plasma-first-login.sh | 86 |
1 files changed, 39 insertions, 47 deletions
diff --git a/raveos-plasma-theme/raveos-plasma-first-login.sh b/raveos-plasma-theme/raveos-plasma-first-login.sh index a1a3720..f16f43d 100644..100755 --- a/raveos-plasma-theme/raveos-plasma-first-login.sh +++ b/raveos-plasma-theme/raveos-plasma-first-login.sh @@ -1,11 +1,10 @@ #!/usr/bin/env bash set -euo pipefail -marker_dir="${HOME}/.config/raveos-kde-theme" -marker_file="${marker_dir}/.first-login-done" +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" -applet_config="${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc" mkdir -p "${marker_dir}" [[ -e "${marker_file}" ]] && exit 0 @@ -15,25 +14,17 @@ until qdbus6 org.kde.plasmashell /PlasmaShell >/dev/null 2>&1 || qdbus org.kde.p sleep 2 done -sleep 10 +sleep 5 QDBUS="" if command -v qdbus6 >/dev/null 2>&1; then - QDBUS="qdbus6" + QDBUS="qdbus6" elif command -v qdbus >/dev/null 2>&1; then - QDBUS="qdbus" + 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 command -v kwriteconfig6 >/dev/null 2>&1; then - kwriteconfig6 --file "${HOME}/.config/ksplashrc" --group KSplash --key Engine KSplashQML - kwriteconfig6 --file "${HOME}/.config/ksplashrc" --group KSplash --key Theme org.kde.raveos.desktop - kwriteconfig6 --file "${HOME}/.config/kdeglobals" --group KDE --key widgetStyle Breeze - kwriteconfig6 --file "${HOME}/.config/kdeglobals" --group General --key ColorScheme BreezeDark - kwriteconfig6 --file "${HOME}/.config/kdeglobals" --group Icons --key Theme breeze-dark + 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 @@ -41,39 +32,40 @@ if [[ -f "${wallpaper}" ]] && command -v plasma-apply-wallpaperimage >/dev/null fi if [[ -n "$QDBUS" ]]; then - $QDBUS org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript " - if ('${wallpaper}' !== '') { - var desktops = desktops(); - for (var i = 0; i < desktops.length; i++) { - desktops[i].wallpaperPlugin = 'org.kde.image'; - desktops[i].currentConfigGroup = ['Wallpaper', 'org.kde.image', 'General']; - desktops[i].writeConfig('Image', 'file://${wallpaper}'); - desktops[i].writeConfig('FillMode', 2); - } - } - - if ('${kickoff_image}' !== '') { - function setKickoffIcon(applet, iconPath) { - var groups = [['Configuration', 'General'], ['General']]; - for (var i = 0; i < groups.length; i++) { - applet.currentConfigGroup = groups[i]; - applet.writeConfig('useCustomButtonImage', 'true'); - applet.writeConfig('customButtonImage', 'file://' + iconPath); - applet.writeConfig('icon', iconPath); + $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); + } } - } - var panels = panels(); - for (var i = 0; i < panels.length; i++) { - var applets = panels[i].applets; - for (var j = 0; j < applets.length; j++) { - var plugin = applets[j].pluginName; - if (plugin === 'org.kde.plasma.kickoff' || plugin === 'org.kde.plasma.kicker' || plugin === 'org.kde.plasma.simplemenu' || plugin === 'org.kde.plasma.kickoffdashboard') { - setKickoffIcon(applets[j], '${kickoff_image}'); - } - } - } - } - " >/dev/null 2>&1 || true + " >/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}" |