summaryrefslogtreecommitdiffstats
path: root/tdescreensaver/kxsconfig
diff options
context:
space:
mode:
authorFrancois Andriot <francois.andriot@free.fr>2013-08-18 07:54:09 -0500
committerDarrell Anderson <humanreadable@yahoo.com>2013-08-18 07:54:09 -0500
commit92b8071dc368d0b6897d68c46336b76d52e4c312 (patch)
tree2512b146aaeedfdb6612afbbe4baa746237c0a45 /tdescreensaver/kxsconfig
parentb2cd3d553982a56fa4673f3106448fc3ee456cf0 (diff)
downloadtdeartwork-92b8071dc368d0b6897d68c46336b76d52e4c312.tar.gz
tdeartwork-92b8071dc368d0b6897d68c46336b76d52e4c312.zip
Fix xscreensaver integration missing files.
This resolves bug report 141.
Diffstat (limited to 'tdescreensaver/kxsconfig')
-rw-r--r--[-rwxr-xr-x]tdescreensaver/kxsconfig/update_hacks.sh40
1 files changed, 36 insertions, 4 deletions
diff --git a/tdescreensaver/kxsconfig/update_hacks.sh b/tdescreensaver/kxsconfig/update_hacks.sh
index 2f88d1f2..7d4deca7 100755..100644
--- a/tdescreensaver/kxsconfig/update_hacks.sh
+++ b/tdescreensaver/kxsconfig/update_hacks.sh
@@ -1,18 +1,50 @@
#!/bin/sh
-scsvs=`cd /usr/lib/xscreensaver/ && ls -1 | grep -v config`
+
+# Checks for Xscreensaver directory (may vary on different distributions)
+if [ -d /usr/libexec/xscreensaver ]; then
+ XSDIR=/usr/libexec/xscreensaver
+elif [ -d /usr/lib64/xscreensaver ]; then
+ XSDIR=/usr/lib64/xscreensaver
+else
+ XSDIR=/usr/lib/xscreensaver
+fi
+
+# Gets list of screensavers. Exclude 'config'.
+scsvs=""
+pushd "${XSDIR}" >/dev/null
+for i in *; do
+ if [ "${i}" != "config" ]; then
+ scsvs="${scsvs} ${i}"
+ fi
+done
+popd >/dev/null
+
echo $scsvs
+
+# Removes useless .desktop files, if any
+for f in ScreenSavers/*.desktop; do
+ # Gets the command line for this screensaver
+ Exec="$(sed -n '/^Exec=kxsconfig / s/.* \(.*\)/\1/' $f)"
+ if [ ! -x "${XSDIR}/${Exec}" ]; then
+ echo "Removing ${f}"
+ rm -f "${f}"
+ fi
+done
+
+# Creates missing screensavers .desktop files
for name in $scsvs; do
- if test -f /usr/lib/xscreensaver/$name && test -f /usr/share/xscreensaver/config/$name.xml && test ! -f ScreenSavers/$name.desktop; then
+ if test -f "${XSDIR}/$name" && test -f "/usr/share/xscreensaver/config/$name.xml" && test ! -f "ScreenSavers/$name.desktop"; then
echo "name: $name"
label=`grep '<screensaver.*_label' /usr/share/xscreensaver/config/$name.xml | sed -e 's#^.*_label=\"\(.*\)\".*$#\1#'`
echo "label: $label"
f=ScreenSavers/$name.desktop
sed -e "s#@NAME@#$name#; s#@LABEL@#$label#" ScreenSavers/xscreensaver.template > $f
- if ldd /usr/lib/xscreensaver/$name 2>&1 | grep libGL; then
+ if ldd "${XSDIR}/$name" 2>&1 | grep libGL; then
sed -e "s,@GL1@,X-TDE-Category=OpenGL Screen Savers,; s,@GL2@,X-TDE-Type=OpenGL," $f > $f.new
else
grep -v @GL $f > $f.new
fi
mv $f.new $f
fi
-done
+done
+