fix: dynamic containment IDs for wallpaper, disable IA upload for testing
This commit is contained in:
@@ -66,7 +66,7 @@ jobs:
|
|||||||
path: ${{ github.workspace }}/iso/
|
path: ${{ github.workspace }}/iso/
|
||||||
|
|
||||||
- name: Upload to Internet Archive
|
- name: Upload to Internet Archive
|
||||||
if: true # ISO stable — uploads to archive.org on every master push
|
if: false # My NVMe tried to unalive itself, 1536 unsafe shutdowns, ext4 cooked medium-rare, so I'm raw-dogging my own distro now. Set to true when I stop being my own QA team.
|
||||||
env:
|
env:
|
||||||
IA_ACCESS_KEY: ${{ secrets.IA_ACCESS_KEY }}
|
IA_ACCESS_KEY: ${{ secrets.IA_ACCESS_KEY }}
|
||||||
IA_SECRET_KEY: ${{ secrets.IA_SECRET_KEY }}
|
IA_SECRET_KEY: ${{ secrets.IA_SECRET_KEY }}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# One-shot wallpaper setter for Antergos NeXT
|
# One-shot wallpaper setter for Antergos NeXT
|
||||||
# Runs at first login via autostart, then disables itself
|
# Runs at first login via autostart, then disables itself
|
||||||
# Uses multiple fallback methods for Plasma 6 + Wayland compatibility
|
# Configures Smart Video Wallpaper Reborn plugin
|
||||||
|
|
||||||
LOG="/tmp/antergos-wallpaper.log"
|
LOG="/tmp/antergos-wallpaper.log"
|
||||||
MARKER="$HOME/.config/antergos-wallpaper-set"
|
MARKER="$HOME/.config/antergos-wallpaper-set"
|
||||||
WALLPAPER="/usr/share/wallpapers/antergos-wallpaper/contents/images/antergos-wallpaper.png"
|
CONFIG="$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc"
|
||||||
|
VIDEO="/usr/share/backgrounds/antergos/antergos-wallpaper.mp4"
|
||||||
|
PLUGIN="luisbocanegra.smart.video.wallpaper.reborn"
|
||||||
|
|
||||||
echo "[$(date)] Starting" > "$LOG"
|
echo "[$(date)] Starting" > "$LOG"
|
||||||
|
|
||||||
@@ -14,56 +16,49 @@ if [[ -f "$MARKER" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "$WALLPAPER" ]]; then
|
if [[ ! -f "$VIDEO" ]]; then
|
||||||
echo "[$(date)] Wallpaper not found: $WALLPAPER" >> "$LOG"
|
echo "[$(date)] Video not found: $VIDEO" >> "$LOG"
|
||||||
ls -la /usr/share/wallpapers/antergos-wallpaper/contents/images/ >> "$LOG" 2>&1
|
|
||||||
touch "$MARKER"
|
touch "$MARKER"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[$(date)] Wallpaper found, applying..." >> "$LOG"
|
echo "[$(date)] Getting desktop containment IDs..." >> "$LOG"
|
||||||
|
|
||||||
# Method 1: plasma-apply-wallpaperimage (primary, works on Plasma 6)
|
IDS=$(qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript \
|
||||||
echo "[$(date)] Method 1: plasma-apply-wallpaperimage..." >> "$LOG"
|
"desktops().map(function(d) { return d.id; }).join(' ');" 2>/dev/null)
|
||||||
/usr/bin/plasma-apply-wallpaperimage "$WALLPAPER" >> "$LOG" 2>&1
|
|
||||||
RC=$?
|
|
||||||
echo "[$(date)] Method 1 exit code: $RC" >> "$LOG"
|
|
||||||
|
|
||||||
if [[ $RC -ne 0 ]]; then
|
if [[ -z "$IDS" ]]; then
|
||||||
# Method 2: kwriteconfig6 + qdbus6 config reload
|
echo "[$(date)] Failed to get containment IDs" >> "$LOG"
|
||||||
echo "[$(date)] Method 2: kwriteconfig6 + qdbus6..." >> "$LOG"
|
touch "$MARKER"
|
||||||
CONFIG="$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc"
|
exit 1
|
||||||
if [[ -f "$CONFIG" ]]; then
|
|
||||||
kwriteconfig6 --file "$CONFIG" \
|
|
||||||
--group "Containments" --group "1" \
|
|
||||||
--group "Wallpaper" --group "org.kde.image" --group "General" \
|
|
||||||
--key "Image" "file://${WALLPAPER}" >> "$LOG" 2>&1
|
|
||||||
kwriteconfig6 --file "$CONFIG" \
|
|
||||||
--group "Containments" --group "1" \
|
|
||||||
--group "Wallpaper" --group "org.kde.image" --group "General" \
|
|
||||||
--key "FillMode" "2" >> "$LOG" 2>&1
|
|
||||||
qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.refreshCurrentShell >> "$LOG" 2>&1
|
|
||||||
RC2=$?
|
|
||||||
echo "[$(date)] Method 2 exit code: $RC2" >> "$LOG"
|
|
||||||
else
|
|
||||||
echo "[$(date)] Config not found at $CONFIG, skipping method 2" >> "$LOG"
|
|
||||||
RC2=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $RC2 -ne 0 ]]; then
|
|
||||||
# Method 3: qdbus6 evaluateScript (legacy API fallback)
|
|
||||||
echo "[$(date)] Method 3: qdbus6 evaluateScript..." >> "$LOG"
|
|
||||||
qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "
|
|
||||||
desktops().forEach(function(d) {
|
|
||||||
d.currentConfigGroup = ['Wallpaper', 'org.kde.image', 'General'];
|
|
||||||
d.writeConfig('Image', 'file://${WALLPAPER}');
|
|
||||||
d.reloadConfig();
|
|
||||||
});
|
|
||||||
" >> "$LOG" 2>&1
|
|
||||||
RC3=$?
|
|
||||||
echo "[$(date)] Method 3 exit code: $RC3" >> "$LOG"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "[$(date)] Containment IDs: $IDS" >> "$LOG"
|
||||||
|
|
||||||
|
for ID in $IDS; do
|
||||||
|
echo "[$(date)] Configuring containment $ID..." >> "$LOG"
|
||||||
|
|
||||||
|
kwriteconfig6 --file "$CONFIG" \
|
||||||
|
--group "Containments" --group "$ID" \
|
||||||
|
--key "wallpaperplugin" "$PLUGIN" >> "$LOG" 2>&1
|
||||||
|
|
||||||
|
kwriteconfig6 --file "$CONFIG" \
|
||||||
|
--group "Containments" --group "$ID" \
|
||||||
|
--group "Wallpaper" --group "$PLUGIN" --group "General" \
|
||||||
|
--key "VideoUrls" '[{"filename": "/usr/share/backgrounds/antergos/antergos-wallpaper.mp4", "enabled": true}]' >> "$LOG" 2>&1
|
||||||
|
|
||||||
|
kwriteconfig6 --file "$CONFIG" \
|
||||||
|
--group "Containments" --group "$ID" \
|
||||||
|
--group "Wallpaper" --group "$PLUGIN" --group "General" \
|
||||||
|
--key "Volume" "0" >> "$LOG" 2>&1
|
||||||
|
|
||||||
|
kwriteconfig6 --file "$CONFIG" \
|
||||||
|
--group "Containments" --group "$ID" \
|
||||||
|
--group "Wallpaper" --group "$PLUGIN" --group "General" \
|
||||||
|
--key "MuteMode" "5" >> "$LOG" 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.refreshCurrentShell >> "$LOG" 2>&1
|
||||||
|
|
||||||
touch "$MARKER"
|
touch "$MARKER"
|
||||||
echo "[$(date)] Done" >> "$LOG"
|
echo "[$(date)] Done" >> "$LOG"
|
||||||
|
|||||||
Reference in New Issue
Block a user