Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

13
Become a Fan
7.1

Description:
KCometen4 is an OpenGL KDE screensaver. Inside a box is a nifty light show that features lightning and exploding comets. It lets you configure various effects like comet behavior, camera movement, box face images, etc.
Last changelog:

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

yankee495

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!

yankee495

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.

yankee495

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!

yankee495

I forgot. You can double click the script to test it or copy it to the desktop to use as a screen lock!

gldickens3

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

jstamp

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.

gldickens3

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

gldickens3

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

digigold

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!

binyo66

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.

binyo66

sorry for so many, i was refreshing opera, didn't know result so many like this.

jstamp

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?

binyo66

when i tried to deinstall kde3: [root@freebsd /usr/ports/x11/kde3]# make deinstall ===> Deinstalling for x11/kde3 ===> kde not installed, skipping

jstamp

That's odd. It looks like a kde3 version of libkscreensaver.

binyo66

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?

jstamp

In ports it looks like it's in x11/kdebase4-workspace.

binyo66

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 :)

binyo66

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.

binyo66

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.

mfillpot

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=

jstamp

No problem. I have a thinkpad, so I was suffering too. Thanks for the slackbuild.

ThAnderson

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. :)

jstamp

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.

avoulk

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!!

avoulk

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

Pling
0 Affiliates
Details
license
version 1.0.8
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 1

Other Screensavers:

My new desktop.-Modified
compileit
last update date: 19 years ago

Score 5.0

SlideShow (GL) mdk 9.1 rpm
illogic-al
last update date: 22 years ago

Score 5.0

My composition with Sailors
Kamuiu
last update date: 22 years ago

Score 5.0

KarambaSaver
BOSSoNe
last update date: 22 years ago

Score 5.0

Fleas
eisfuchs
last update date: 21 years ago

Score 5.0

fluid psychedelic Screensaver
schorsch
last update date: 21 years ago

Score 5.0