#!/bin/sh
#
# plasma-workspace-gernot.SlackBuild
# 2024-05-12
#

PRGNAM=plasma-workspace-gernot
VERSION=2024.05.12
ARCH=noarch
BUILD=${BUILD:-1}
TAG=${TAG:-scr}
PKGTYPE=${PKGTYPE:-txz}

HOMEPAGE="https://gernot-walzl.at/"

REQUIRES="plasma-workspace"

MAINTAINER="Gernot Walzl"
EMAIL="gernot.walzl@gmx.at"

DESC="KDE Plasma - Look and Feel - Gernot's Breeze

Breeze Twilight adapted by Gernot Walzl

${HOMEPAGE}"

DOCS="$(pwd)/$0"

# EOF info


# set initial variables
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

# exit on error
set -e

# install everything into the package directory
rm -rf $PKG
mkdir -p $PKG/install

ORIGIN_DESKTOP="/usr/share/plasma/look-and-feel/org.kde.breezetwilight.desktop"
ORIGIN_PANEL="/usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js"

PKG_DESKTOP="$PKG/usr/share/plasma/look-and-feel/at.gernot-walzl.desktop"
mkdir -p "$PKG_DESKTOP"
cat > "$PKG_DESKTOP/metadata.json" <<EOF
{
    "KPlugin": {
        "Authors": [
            {
                "Email": "$EMAIL",
                "Name": "$MAINTAINER"
            }
        ],
        "Category": "",
        "Description": "Breeze Twilight adapted by Gernot Walzl",
        "Id": "at.gernot-walzl.desktop",
        "License": "GPLv2+",
        "Name": "Gernot's Breeze",
        "ServiceTypes": [
            "Plasma/LookAndFeel"
        ],
        "Version": "2.0",
        "Website": "$HOMEPAGE"
    },
    "X-Plasma-MainScript": "defaults"
}
EOF

mkdir -p "$PKG_DESKTOP/contents"
sed 's/^ColorScheme=BreezeLight$/ColorScheme=Breeze/' \
  "$ORIGIN_DESKTOP/contents/defaults" \
  > "$PKG_DESKTOP/contents/defaults"
cp -r "$ORIGIN_DESKTOP/contents/previews" "$PKG_DESKTOP/contents"

mkdir -p "$PKG_DESKTOP/contents/layouts"
sed 's/org.kde.plasma.icontasks/org.kde.plasma.taskmanager/' "$ORIGIN_PANEL" \
  > "$PKG_DESKTOP/contents/layouts/org.kde.plasma.desktop-layout.js"
cat >> "$PKG_DESKTOP/contents/layouts/org.kde.plasma.desktop-layout.js" <<EOF
var widgets = panel.widgets();
for (var idx = 0; idx < widgets.length; idx++) {
    var widget = widgets[idx];
    if (widget.type == "org.kde.plasma.digitalclock") {
        widget.currentConfigGroup = ["Appearance"];
        widget.writeConfig("dateFormat", "isoDate");
    } else if (widget.type == "org.kde.plasma.taskmanager") {
        widget.currentConfigGroup = ["General"];
        widget.writeConfig("maxStripes", 1);
    }
}

var desktops = desktops();
for (var idx = 0; idx < desktops.length; idx++) {
    var desktop = desktops[idx];
    desktop.wallpaperPlugin = "org.kde.slideshow";
    desktop.currentConfigGroup = ["Wallpaper", "org.kde.slideshow", "General"];
    desktop.writeConfig("SlideInterval", 3600);
    desktop.writeConfig("SlidePaths", "/usr/share/wallpapers/");
    if (idx == 0) {
        var weather = desktop.addWidget("org.kde.plasma.weather");
        weather.writeConfig("updateInterval", 60);
        weather.writeConfig("weatherServiceProviders", "wettercom");
        weather.writeConfig("source", "wettercom|weather|Graz, Steiermark, AT|ATAT20125;Graz");
    }
}
EOF

# add documentation
if [ "$DOCS" != "" ]; then
  mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
  cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
  find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
fi

# add some description to the package
if [ "$DESC" != "" ]; then
  echo "$DESC" | sed 's/^/'$PRGNAM': /g' > $PKG/install/slack-desc
fi

# append dependency information to the package
if [ "$REQUIRES" != "" ]; then
  for REQ in $REQUIRES; do
    echo "$REQ" >> $PKG/install/slack-required
  done
fi

# build the package
cd $PKG
PKGVERSION=$(echo $VERSION | sed 's/-/./g')
makepkg -l y -c n \
  $OUTPUT/$PRGNAM-$PKGVERSION-$ARCH-$BUILD$TAG.$PKGTYPE \
  || exit 1

# make everything clean
cd $CWD
rm -rf $PKG
