Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,7 @@ RUN --mount=type=cache,dst=/var/cache \
krdp \
steamdeck-kde-presets-desktop \
wallpaper-engine-kde-plugin \
plasma-wallpapers-dynamic \
kdeconnectd \
kdeplasma-addons \
rom-properties-kf6 \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Unit]
Description=Update Bluefin Wallpaper of the Month
After=graphical-session.target

[Service]
Type=oneshot
ExecStart=/usr/libexec/ublue-bluefin-plasma-wallpaper %i
RemainAfterExit=true

[Install]
WantedBy=default.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
set -oux pipefail

HEMI="${1:-north}"
if [[ "$HEMI" != "north" && "$HEMI" != "south" ]]; then
echo "Error: Invalid hemisphere '$HEMI'. Must be 'north' or 'south'."
exit 1
fi

mkdir -p ~/.local/share/wallpapers/Bluefin
cd ~/.local/share/wallpapers/Bluefin

curl -Lo ${HEMI}.md5 https://github.com/grandpares/plasma-bluefin-wallpaper/releases/latest/download/${HEMI}.md5
md5sum --status -c ${HEMI}.md5 || curl -Lo ${HEMI}.avif https://github.com/grandpares/plasma-bluefin-wallpaper/releases/latest/download/${HEMI}.avif
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,60 @@ configure-snapshots ACTION="":
/usr/libexec/bazzite-snapper-config wipe
fi

# Automatically download Bluefin's monthly dinosaur wallpapers
[group("system")]
toggle-dinosaurs hemisphere="north":
#!/bin/bash
source /usr/lib/ujust/ujust.sh

if [[ "{{ hemisphere }}" != "north" && "{{ hemisphere }}" != "south" ]]; then
echo "Error: Invalid hemisphere '{{ hemisphere }}'. Must be 'north' or 'south'."
exit 1
fi

DINOSAUR_STATUS="$(systemctl --user is-enabled bluefin-wallpaper@{{ hemisphere }}.service 2>/dev/null || echo 'disabled')"

echo "Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) are currently: $DINOSAUR_STATUS"

if [ "$DINOSAUR_STATUS" == "enabled" ]; then
echo "Disable Bluefin dinosaur wallpapers?"
OPTION=$(Choose Disable Cancel)
if [ "$OPTION" = "Disable" ]; then
systemctl --user disable --now bluefin-wallpaper@{{ hemisphere }}.service
echo "${b}${red}Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) disabled.${n}"
echo "Wallpaper files remain in ~/.local/share/wallpapers/Bluefin/"
fi
else
echo "Enable Bluefin dinosaur wallpapers for the {{ hemisphere }}ern hemisphere?"
OPTION=$(Choose Enable Cancel)
if [ "$OPTION" = "Enable" ]; then
mkdir -p ~/.local/share/wallpapers/Bluefin
systemctl --user enable --now bluefin-wallpaper@{{ hemisphere }}.service

sleep 1
if systemctl --user is-active --quiet bluefin-wallpaper@{{ hemisphere }}.service; then
echo "${b}${green}Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) enabled!${n}"
echo "Wallpapers will be downloaded to ~/.local/share/wallpapers/Bluefin/"
echo "The wallpaper will update automatically each month."
filename="$HOME/.local/share/wallpapers/Bluefin/{{ hemisphere }}.avif"

qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "
var allDesktops = desktops();
for (var i = 0; i < allDesktops.length; i++) {
var d = allDesktops[i];
d.wallpaperPlugin = \"com.github.zzag.dynamic\";
d.currentConfigGroup = Array(\"Wallpaper\", \"com.github.zzag.dynamic\", \"General\");
d.writeConfig(\"Image\", \"file:///${filename}\");
}
"
else
echo "${b}${red}Failed to start bluefin-wallpaper service.${n}"
echo "Check the service status with:"
echo " systemctl --user status bluefin-wallpaper@{{ hemisphere }}.service"
fi
fi
fi

# Enable a Bluefin-style CLI experience
[group("development")]
bazzite-cli:
Expand Down