My new desktop.-Modified
compileit
Source (link to git-repo or to original if based on someone elses unmodified work):
Version 1.0.8
* Remove legacy configure script.
* Fix a few compiler warnings and an error that prevented compilation with clang.
Ratings & Comments
116 Comments
Hello, I posted a fix which did work but doesn't anymore. I like this screensaver so much I have not only figured out how to fix it but it's much easier. First: 1. Install scrot (it takes screenshots) 2. Create this simple script and put it wherever you want. Name it whatever you want. #!/bin/sh scrot /tmp/ss-kcometen4.png 3. Run that script and make sure the screen shot has been created, you'll need it in the next step. You can put the screen shot in any directory, I used /tmp. 4. Go to the setup for Kcometen4 and click the Background tab. Select file and browse to the screen shot png, not the script. Typing in the path doesn't work here, it just doesn't save it. You must browse to it. 5. Go to System Settings and then Application and System Notifications > Manage Notifications. In the drop down Event Source box select Screen saver. 6. Click on The screen has been locked and check Run Command and browse to your scrot script. That is it. When the screen locker kicks in it will take a screen shot then Kcometen4 will load that screen shot and use it for the background. Kcometen4 will run with a blank screen without this which for many may be fine, but if you want it to look like it was intended then this works!
Note: This should not be over written by updates like the old way that doesn't work anymore. I'm using KDE 4.14 and do not know if it works in Plasma 5. Please reply here if you test that. KDE decided that having a screen shot displayed was a security risk. Around here I don't leave bank accounts displayed, ever, so all it can display is junk I'm looking at or doing. Keep that in mind if you often leave your computer with private information on the screen.
Hello all, This is a hack and will be over written by an update to KDE but it is easy and it works so you can just fix it again after an update. 1. Install scrot (it takes screenshots) 2. Make a text file called kscreenlocker_greet and put this in it: #!/bin/sh scrot /tmp/ss-kcometen4.png /usr/lib64/kde4/libexec/kscreenlocker_greet.bin& Right click it and do properties and check mark executable etc. 3. Go to /lib64/kde4/libexec and rename kscreenlocker_greet to kscreenlocker_greet.bin This is for a 64 bit system. On 32 bit I think it will be in /lib/kde4/libexec . Whatever the case it will be where ever you find the original kscreenlocker_greet file. 4. Copy your new kscreenlocker_greet script file to /lib64/kde4/libexec or where ever you found the original. 5. Goto Kcometen4 settings and on the background tab select image source "File", and select the file /tmp/ss-kcometen4.png I had trouble because this file didn't exist and typing it in didn't work, it wouldn't keep the setting. If you let the computer cycle the screenlocker one time the file will exist and then you can change the setting. I use a Ramdisk for my tmp foler so it is empty at boot. You can use any folder you want to store the screenshot like your home folder. You change that in this part of the script Like this, where the script says "scrot /tmp/ss-kcometen4.png", you can make it /where ever you want/anywhere/ss-kcometen4.png and just set Kcomenten4 to use the image path /where ever you want/anywhere/ss-kcometen4.png Information: It takes a screenshot, and then KDE does its thing and blanks the display, displays the login on your screen saver etc. But then Kcometen4 grabs and displays the screenshot that was just taken, before KDE wiped the screen and displayed the login!!! You end up with your desktop as your screen saver as intended but you have to hit ESC to exit, and unlock the screen. KDE 4.10.2 does this no matter what. I don't know how higher versions of KDE do this. I admit it is a nasty little hack but it works. Until someone comes up with something better it will do for me. It still displays the mouse pointer too as that is in the KDE code. If an update kills it, rename the original again and put your script back. They don't update very often. My cat walks on my keyboard and deletes stuff so locking the screen is a good deal for me!!! If you don't use a password to login, you just hit ESC, and then click Unlock. My cat can't do that! By the way, I've been using Kcometen for my screen saver since 2006 or 2007...way back. Love it!
I forgot. You can double click the script to test it or copy it to the desktop to use as a screen lock!
This is my favorite screensaver as well. Great job and thanks! I have the kcometen4 screensaver configured to use the desktop for a cubed background display. However, the screen lock password dialog was changed in KDE 4.10 such that the screenlock default wallpaper (which is plain black) is now erroneously used by Kcometen4 instead of the cubed background. See these bug reports: https://bugs.kde.org/show_bug.cgi?id=310871 https://bugs.kde.org/show_bug.cgi?id=315442 https://bugs.kde.org/show_bug.cgi?id=316296 It is not clear if the KDE developers are going to fix this or leave it as is. So, is there anyway to modify Kcometen4 so that it works with the cubed screen background for KDE 4.10.x as it did in KDE versions prior to 4.10? Thanks, Gordon
Thanks for the info. From what I read, it's designed to blank the screen before a screensaver starts. I don't see a way around it. The option to use the desktop as a background will probably have to go away.
Hi jstamp, Thanks for the reply! That's too bad! I really like the desktop background. I hope that you can find a way around this so that users can continue to use the cubed desktop background. Gordon
Hi jstamp, Thanks for the reply! That's too bad! I really like the desktop background. I hope that you can find a way around this so that users can continue to use the cubed desktop background. Gordon
Verified working in KDE 4.9. Only issue I had was it installed to /usr/local instead of /usr. Solved easiely by creating a symbolic link. Nice work here!
Hi, i got the following error root@freebsd /tmp/kcometen4-1.0.7/build]# make [ 0%] Built target kcometen4.kss_automoc Linking CXX executable kcometen4.kss /usr/bin/ld: warning: libkio.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkio.so.7 /usr/bin/ld: warning: libkdeui.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdeui.so.7 /usr/bin/ld: warning: libkdecore.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdecore.so.7 CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1412): In function `main': : undefined reference to `kScreenSaverMain(int, char**, KScreenSaverInterface&)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1423): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x15fa): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0xd5): In function `KCometen4::qt_metacall(QMetaObject::Call, int, void**)': : undefined reference to `KScreenSaver::qt_metacall(QMetaObject::Call, int, void**)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x132): In function `KCometen4::qt_metacast(char const*)': : undefined reference to `KScreenSaver::qt_metacast(char const*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD0Ev+0x14): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD1Ev+0xe): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.rodata+0x2c): undefined reference to `KScreenSaver::staticMetaObject' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTV9KCometen4+0x1c): undefined reference to `KScreenSaver::event(QEvent*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTI18KCometen4Interface+0x8): undefined reference to `typeinfo for KScreenSaverInterface' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_applicationName' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_description' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_create' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_version' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_setup' *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build.
sorry for so many, i was refreshing opera, didn't know result so many like this.
I didn't have any problems building with FreeBSD 8.2, but I only have the precompiled binaries installed. It looks like you've installed multiple versions of KDE, and it's causing problems for the linker. Is that the case?
when i tried to deinstall kde3: [root@freebsd /usr/ports/x11/kde3]# make deinstall ===> Deinstalling for x11/kde3 ===> kde not installed, skipping
That's odd. It looks like a kde3 version of libkscreensaver.
well I found there are some ports related only to kde3, so I deinstalled them, but now I am missing libkscreensaver.so, where can i get it?
In ports it looks like it's in x11/kdebase4-workspace.
OK, I successfully compiled and installed kcometen4. Now, the problem is I can't see the screen saver in the list, even if I put in .xinitrc: export KDEDIRS=/usrlocal:/usr:/usr/local/kde4 Any clue how to show it in the screensaver list :)
Hi, i got the following error root@freebsd /tmp/kcometen4-1.0.7/build]# make [ 0%] Built target kcometen4.kss_automoc Linking CXX executable kcometen4.kss /usr/bin/ld: warning: libkio.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkio.so.7 /usr/bin/ld: warning: libkdeui.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdeui.so.7 /usr/bin/ld: warning: libkdecore.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdecore.so.7 CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1412): In function `main': : undefined reference to `kScreenSaverMain(int, char**, KScreenSaverInterface&)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1423): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x15fa): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0xd5): In function `KCometen4::qt_metacall(QMetaObject::Call, int, void**)': : undefined reference to `KScreenSaver::qt_metacall(QMetaObject::Call, int, void**)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x132): In function `KCometen4::qt_metacast(char const*)': : undefined reference to `KScreenSaver::qt_metacast(char const*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD0Ev+0x14): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD1Ev+0xe): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.rodata+0x2c): undefined reference to `KScreenSaver::staticMetaObject' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTV9KCometen4+0x1c): undefined reference to `KScreenSaver::event(QEvent*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTI18KCometen4Interface+0x8): undefined reference to `typeinfo for KScreenSaverInterface' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_applicationName' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_description' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_create' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_version' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_setup' *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build.
Hi, i got the following error root@freebsd /tmp/kcometen4-1.0.7/build]# make [ 0%] Built target kcometen4.kss_automoc Linking CXX executable kcometen4.kss /usr/bin/ld: warning: libkio.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkio.so.7 /usr/bin/ld: warning: libkdeui.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdeui.so.7 /usr/bin/ld: warning: libkdecore.so.6, needed by /usr/local/lib/libkscreensaver.so, may conflict with libkdecore.so.7 CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1412): In function `main': : undefined reference to `kScreenSaverMain(int, char**, KScreenSaverInterface&)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x1423): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x15fa): In function `main': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0xd5): In function `KCometen4::qt_metacall(QMetaObject::Call, int, void**)': : undefined reference to `KScreenSaver::qt_metacall(QMetaObject::Call, int, void**)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.text+0x132): In function `KCometen4::qt_metacast(char const*)': : undefined reference to `KScreenSaver::qt_metacast(char const*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD0Ev+0x14): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.t._ZN18KCometen4InterfaceD1Ev+0xe): In function `KCometen4Interface::~KCometen4Interface()': : undefined reference to `KScreenSaverInterface::~KScreenSaverInterface()' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.rodata+0x2c): undefined reference to `KScreenSaver::staticMetaObject' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTV9KCometen4+0x1c): undefined reference to `KScreenSaver::event(QEvent*)' CMakeFiles/kcometen4.kss.dir/kcometen4.o(.gnu.linkonce.r._ZTI18KCometen4Interface+0x8): undefined reference to `typeinfo for KScreenSaverInterface' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_applicationName' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_description' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_create' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_version' /usr/local/lib/libkscreensaver.so: undefined reference to `kss_setup' *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build. *** Error code 1 Stop in /tmp/kcometen4-1.0.7/build.
thank you for building kcometen4, this is my favorite screensaver and the recent update to fix the intel chipset issue really helped. As a note, if you wish to install this screensaver on slackware checkout http://slackbuilds.org/result/?search=kcometen4&sv=
No problem. I have a thinkpad, so I was suffering too. Thanks for the slackbuild.
I have an Intel card and I am currently using version 1.0.6. However, I do not see any problems. What is the problem that is worked around in 1.0.7? A workaround is helpful, but if it is a bug in the Intel drivers, it should be fixed there. :)
The screensaver uses a lot of point sprites. I noticed a while back that it would take up more and more memory if the point sprites were given non-integer sizes, but this only happened with the Intel driver. So I just rounded to the nearest integer. I think the Intel driver--or maybe it was mesa--has been fixed since then, but I kept that workaround in kcometen4 in case people were still using whichever version was causing the problem. It didn't affect the appearance anyway. I'm not sure what problem mfillpot was dealing with. I used to see other problems with the Intel driver but they've since been fixed.
I face a problem with this (otherwise awesome) screensaver, one that's already been mentioned actually. While in test mode everything is ok, in real the actual background shown is just black. In a previous question you supposed a change in line 135 in kglcometen4.cpp would do the job but it did not. After a bit of network research, it seems that the problem actually lies in line 83 when you grab the desktop screenshot (it mainly has to do with desktop effects and transparency i think, that QPixmap::grabWindow returns a black image). Sadly I am not sure of how fix this (and provide you with a proper patch) but i hope you can :) Hope i helped you with this "bug report"! Many many thanks for the porting and all your effort!!
Actually using these steps, the problem is solved (i am not aware of any other problems caused by these though): https://bugs.kde.org/show_bug.cgi?id=177495#c2