diff options
author | Francois Andriot <francois.andriot@free.fr> | 2013-08-18 07:54:09 -0500 |
---|---|---|
committer | Darrell Anderson <humanreadable@yahoo.com> | 2013-08-18 07:54:09 -0500 |
commit | 92b8071dc368d0b6897d68c46336b76d52e4c312 (patch) | |
tree | 2512b146aaeedfdb6612afbbe4baa746237c0a45 /tdescreensaver | |
parent | b2cd3d553982a56fa4673f3106448fc3ee456cf0 (diff) | |
download | tdeartwork-92b8071dc368d0b6897d68c46336b76d52e4c312.tar.gz tdeartwork-92b8071dc368d0b6897d68c46336b76d52e4c312.zip |
Fix xscreensaver integration missing files.
This resolves bug report 141.
Diffstat (limited to 'tdescreensaver')
-rw-r--r--[-rwxr-xr-x] | tdescreensaver/kxsconfig/update_hacks.sh | 40 |
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 + |