
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.sabayonlinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.sabayonlinux.org/index.php?title=HOWTO:_Get_RSS-glx(Really_Slick_Screensavers)_to_work_on_KDE4_and_also_add_all_xscreensavers&amp;feed=atom&amp;action=history</id>
		<title>HOWTO: Get RSS-glx(Really Slick Screensavers) to work on KDE4 and also add all xscreensavers - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.sabayonlinux.org/index.php?title=HOWTO:_Get_RSS-glx(Really_Slick_Screensavers)_to_work_on_KDE4_and_also_add_all_xscreensavers&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://wiki.sabayonlinux.org/index.php?title=HOWTO:_Get_RSS-glx(Really_Slick_Screensavers)_to_work_on_KDE4_and_also_add_all_xscreensavers&amp;action=history"/>
		<updated>2013-05-19T08:29:05Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.4</generator>

	<entry>
		<id>http://wiki.sabayonlinux.org/index.php?title=HOWTO:_Get_RSS-glx(Really_Slick_Screensavers)_to_work_on_KDE4_and_also_add_all_xscreensavers&amp;diff=7620&amp;oldid=prev</id>
		<title>Mikey0000: /* packages you need to emerge: */</title>
		<link rel="alternate" type="text/html" href="http://wiki.sabayonlinux.org/index.php?title=HOWTO:_Get_RSS-glx(Really_Slick_Screensavers)_to_work_on_KDE4_and_also_add_all_xscreensavers&amp;diff=7620&amp;oldid=prev"/>
				<updated>2009-09-22T12:34:04Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;packages you need to emerge:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== '''Guide to get RSS screensavers working and configurable on ether 32bit or 64bit Sabayon Linux:''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unfortunately the kdeartwork package doesn't detect that we've installed xscreensaver so we have to edit a couple of files to get around that&lt;br /&gt;
if later on it does work then congrats!!&lt;br /&gt;
&lt;br /&gt;
'''what we are going to do:'''&lt;br /&gt;
  Rebuild kdeartwork-kscreensaver so it builds kxsconfig &amp;amp; kxsrun needed for xscreensaver and RSS&lt;br /&gt;
  install rss-glx&lt;br /&gt;
  run my python script to fix the .desktop files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== packages you need to emerge:  ==&lt;br /&gt;
  we may as well emerge everything now and have it over and done with&lt;br /&gt;
&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;emerge --fetchonly =kdeartwork-kscreensaver-4.3.1 rss-glx xscreensaver&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
{{Note| Up to you if you want to install all these packages as we will need to do that at least to rss-glx and xscreensaver for the script later on}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  we need to copy our kdeartwork file to our home dir and extract for editing&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;cp /usr/portage/distfiles/kdeartwork-4.3.1.tar.bz2 ~/&lt;br /&gt;
tar -xjf kdeartwork-4.3.1.tar.bz2 kdeartwork-4.3.1&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  and then edit three files: &lt;br /&gt;
{{File|kdeartwork-4.3.1/kscreensaver/kxsconfig &amp;amp; kxsrun| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;bool KXSConfigDialog::create()&lt;br /&gt;
{&lt;br /&gt;
    QWidget *main = new QWidget(this);&lt;br /&gt;
    setMainWidget(main);&lt;br /&gt;
    QVBoxLayout *topLayout = new QVBoxLayout(main);&lt;br /&gt;
    topLayout-&amp;gt;setSpacing(spacingHint());&lt;br /&gt;
    QHBoxLayout *layout = new QHBoxLayout();&lt;br /&gt;
    topLayout-&amp;gt;addLayout(layout);&lt;br /&gt;
    layout-&amp;gt;setSpacing(spacingHint());&lt;br /&gt;
    KVBox *controlLayout = new KVBox(main);&lt;br /&gt;
    controlLayout-&amp;gt;setSpacing(spacingHint());&lt;br /&gt;
    layout-&amp;gt;addWidget(controlLayout);&lt;br /&gt;
    ((QBoxLayout*)controlLayout-&amp;gt;layout())-&amp;gt;addStrut(120);&lt;br /&gt;
&lt;br /&gt;
    KConfig config(mConfigFile);&lt;br /&gt;
&lt;br /&gt;
    QString xmlFile = &amp;quot;/doesntexist&amp;quot;;&lt;br /&gt;
#ifdef XSCREENSAVER_CONFIG_DIR&lt;br /&gt;
    xmlFile = &amp;quot;XSCREENSAVER_CONFIG_DIR&amp;quot;; -------!! CHANGE THIS FOR BOTH KXSCONFIG AND KXSRUN&lt;br /&gt;
#endif &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note| This fixes kxsconfig and tells it where to find our configuration files /usr/share/xscreensaver/config change the file location of the last xmlpath to the one here and make sure not to put an ending slash }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Remove the check for xscreensavers and remove the if statement around kxsconfig and xsavers:&lt;br /&gt;
{{File| kdeartwork-4.3.1/kscreensaver/CMakeLists.txt| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;find_package(KDE4Workspace)&lt;br /&gt;
&lt;br /&gt;
if(KDE4WORKSPACE_FOUND)&lt;br /&gt;
	macro_optional_find_package(OpenGL)&lt;br /&gt;
	macro_log_feature(OPENGL_FOUND &amp;quot;OpenGL&amp;quot; &amp;quot;API for developing portable, interactive 2D and 3D graphics applications&amp;quot; &amp;quot;http://mesa3d.sourceforge.net&amp;quot; FALSE &amp;quot;&amp;quot; &amp;quot;Provides 3D screensavers.&amp;quot;)&lt;br /&gt;
	add_subdirectory( kdesavers ) &lt;br /&gt;
	add_subdirectory( kpartsaver ) &lt;br /&gt;
	add_subdirectory(kxsconfig)&lt;br /&gt;
	add_subdirectory(xsavers)&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
elseif(KDE4WORKSPACE_FOUND)&lt;br /&gt;
	message(STATUS &amp;quot;kscreensaver can't be compiled. Please install kdebase/workspace before to compile it (need kscreensaver.h)&amp;quot;)&lt;br /&gt;
endif(KDE4WORKSPACE_FOUND) &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  Now to compress and replace the original kdeartwork with our edited one&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;mv /usr/portage/distfiles/kdeartwork-4.3.1.tar.bz2 kdeartwork-4.3.1.bak&lt;br /&gt;
tar -cjf ~/kdeartwork-4.3.1.tar.bz2 ~/kdeartwork-4.3.1&lt;br /&gt;
cp ~/kdeartwork-4.3.1.tar.bz2 /usr/portage/distfiles/ &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
  We have to trick portage and create a new digital signature for our file&lt;br /&gt;
{{Warning| You MUST do this otherwise it will see your file as corrupted and create a checksum failure}}&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt; rm /usr/portage/kde-base/kdeartwork-kscreensaver/Manifest &lt;br /&gt;
cd /usr/portage/kde-base/kdeartwork-kscreensaver/&lt;br /&gt;
ebuild kdeartwork-kscreensaver-4.3.1.ebuild digest &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
{{Note|this may emerge some packages, let it as long as it is not kdeartwork-yourversion&lt;br /&gt;
and if it is you've done something wrong}}&lt;br /&gt;
&lt;br /&gt;
now emerge kdeartwork like normal&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;emerge kdeartwork-kscreensaver&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
{{Note| It will say it can't find any xscreensavers don't worry it doesn't matter}}&lt;br /&gt;
&lt;br /&gt;
So now we should be ready to install RSS-GLX and/or xscreensaver&lt;br /&gt;
{{Console| &amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;emerge rss-glx xscreensaver&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
  '''and for the finishing touch save as foo.py run this script as root # python foo.py'''&lt;br /&gt;
{{Code|Python|&amp;lt;pre class=&amp;quot;clear&amp;quot;&amp;gt;&lt;br /&gt;
#Author Michael Arthur&lt;br /&gt;
#creates new .desktop files to replace rss-glx's and adds the rest of the screensavers too&lt;br /&gt;
import os, glob&lt;br /&gt;
import fnmatch&lt;br /&gt;
import platform&lt;br /&gt;
&lt;br /&gt;
#directories /usr/share/xscreensaver/config *.xml&lt;br /&gt;
# /usr/lib64/misc/xscreensaver screensavers&lt;br /&gt;
# /usr/share/kde4/services/ScreenSavers&lt;br /&gt;
#read in a list of xscreensavers and check for .desktop files&lt;br /&gt;
#remove the xscreensaver and rss-glx files&lt;br /&gt;
#and create replacement .desktop files&lt;br /&gt;
&lt;br /&gt;
if(platform.machine() == 'x86_64'):&lt;br /&gt;
    Screensavers = os.listdir('/usr/lib64/misc/xscreensaver/')&lt;br /&gt;
   # xmlpath = os.listdir('/usr/share/xscreensaver/config/')&lt;br /&gt;
    serviceFiles = os.listdir('/usr/share/kde4/services/ScreenSavers/')&lt;br /&gt;
    &lt;br /&gt;
else:&lt;br /&gt;
#im not actually sure this file dir is correct for 32bit please edit accordingly&lt;br /&gt;
    path = os.listdir('/usr/lib/misc/xscreensaver/')&lt;br /&gt;
   # xmlpath = os.listdir('/usr/share/xscreensaver/config/')&lt;br /&gt;
    serviceFiles = os.listdir('/usr/share/kde4/services/ScreenSavers/')&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
if ((os.access('/usr/share/kde4/services/ScreenSavers/', os.W_OK))== False):&lt;br /&gt;
    print &amp;quot;ERR: File access failed! run as root&amp;quot;&lt;br /&gt;
else:&lt;br /&gt;
    desktopPath = '/usr/share/kde4/services/ScreenSavers/'&lt;br /&gt;
    &lt;br /&gt;
    for infile in Screensavers:&lt;br /&gt;
        if infile != 'rss-glx_install.pl':&lt;br /&gt;
            try:&lt;br /&gt;
                os.remove(desktopPath + infile +'.desktop')&lt;br /&gt;
            except OSError:&lt;br /&gt;
                pass&lt;br /&gt;
&lt;br /&gt;
    for infile in Screensavers:&lt;br /&gt;
        set = 0&lt;br /&gt;
        if infile != 'rss-glx_install.pl':&lt;br /&gt;
            try:              &lt;br /&gt;
                i = serviceFiles.index(infile+'.desktop')&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                set = 1               &lt;br /&gt;
                if set == 1:&lt;br /&gt;
           #write new .desktop file&lt;br /&gt;
        #WARNING comment out this line when testing&lt;br /&gt;
                    os.chdir(desktopPath)&lt;br /&gt;
                    desktopfile = open(infile + '.desktop', 'w')&lt;br /&gt;
                    desktopfile.write('[Desktop Entry]\nEncoding=UTF-8\nExec=/usr/lib64/misc/xscreensaver/'+ infile +' -- -window-id %w\nIcon=preferences-desktop-screensaver\nType=Service\nX-KDE-ServiceTypes=ScreenSaver\nActions=Setup;InWindow;Root;\nX-KDE-Category=OpenGL Screen Savers\nX-KDE-Type=OpenGL\nName='+ infile +' (GL)\n\n[Desktop Action Setup]\nExec=kxsconfig /usr/lib64/misc/xscreensaver/'+ infile +'\nName=Setup...\n\n[Desktop Action InWindow]\nExec=kxsrun /usr/lib64/misc/xscreensaver/'+ infile +' -- -window-id %w\nName=Display in specified window\nNoDisplay=true\n\n[Desktop Action Root]\nExec=kxsrun /usr/lib64/misc/xscreensaver/'+ infile +' -- -root\nName=Display in root window\nNoDisplay=true\n')&lt;br /&gt;
                    desktopfile.close()&lt;br /&gt;
      &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
'''Now open up your screensavers and under opengl you have them all!'''&lt;/div&gt;</summary>
		<author><name>Mikey0000</name></author>	</entry>

	</feed>