SKopete

Karamba & Superkaramba

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

0
5.0
Description:

SuperKaramba interface to Kopete. Intended to diplay a subset of your most important contacts on the desktop.
Note: The first time it runs, it will show all online contacts. Once you run the config dialog and click OK, it will only show the contacts you have selected to be monitored.

REQUIREMENTS:
- KDE >= 3.5.0
- SK >= 0.37
- Python >= 2.4
- PyQt >= 3.14
- PyKDE (Optional): Only tested with PyKDE from the kdebindings module. Gentooers please use the (kde-base/pyde-3.5.0 ebuild)
- kttsd (Optional): Enables speaking out of notifications

FEATURES:
- Displays the Kopete contact list on the desktop. Support automatic and configurable positioning/resizing
- Displayed contacts are configurable
- Has the buddy pounce/notification feature. See screenshot of config dialog
- Has basic Kopete controls (Online, Offline, Away and Start Chat)
- Indicates basic presence status (online, offline and away) for all contacts
- Resource (dcop calls) usage is independent of number of contacts
- For theme developers. I have built on the SKoot API to create basic layout management and event dispatching classes. They are independent of SKopete (see skopete_gui.py). If there's interest, I'll post a link to the API docs. Similarly the communication with Kopete is in a independent backend (kopete.py)

USAGE:
- Ensure Kopete is running
- In the config dialog, you can specify which contacts should be monitored, and also whether to display offline contacts
- By default SKopete, automatically resizes and repositions itself as contacts go online/offline. If you want it to stay in place, choose the manual layout policy in the Look&Feell section of the config dialog
- You can select custom photos as well a notifications and pounces for all contacts in the Buddies section of the config dialog.
- If you make any changes to the contact list in Kopete, you should reload SKopete via the right click menu

CAVEATS:
- If you have a non-english KDE desktop and no PyKDE, contact status updates will take O(n) queries
- Uses undocumented/unnamed Kopete DCOP interfaces.
- Resource (dcop calls) usage is O(n) in number of accounts you have
- Only tested with the MSN and Yahoo protocols, feedback on other protocols is welcome.
- Popup menu icons won't show if you don't have PyKDE, this is limitation of SuperKaramba, that I don't care enough to work around. One possible, (untested) workaround is to unzip the .skz file and run the theme using the .theme file

TROUBLESHOOTING
- Ensure you satisy all the REQUIREMENTS from above
- Is Kopete running?
- If you have enabled PyKDE in the config dialog, please try disabling it first, as PyKDE seems to cause a lot of bugs.
- In order to help me debug it, please run superkaramba in a terminal like so:
superkaramba skopete.skz > skopete-log 2>&1
Post the top 20 lines from the file skopete-log
Last changelog:

13 years ago

ver 1.3.1
- Patch to add support for pykde >= 3.16.0

ver 1.3.0
- Added support for away/available messages

ver 1.2.10
- Added support for Gadu-Gadu

ver 1.2.9
- Fixed IRC bug with kopete 0.12

ver 1.2.8
- Fixed (I hope) problems with IRC contacts

ver 1.2.7
- The subprocess.Popen.communicate() method is not signal safe, added a workaround. For those of you that get 'Interrupted system call' errors on running SKopete in a terminal, this release should be of help. If you continue to get them, try installing the latest PyKDE and enabling PYKDE for DCOP calls in the config dialog.
- Patched so that the above error doesn't prevent the config dialog from loading.

ver 1.2.6
- Fixed memory leak caused by incorrect use of PyKDE for DCOP calls. This will only have affected you if you enabled PyKDE for DCOP calls in the config dialog

ver 1.2.5
- Display pics are now centered if they are smaller than the configured picture size
- Added localization support via KLocale. If you have a non-english desktop and a working PyKDE, you should upgrade to this release

ver 1.2.4
- Fixed bug that was causing all contacts to be displayed, not just monitored contacts. Bug was introduced in the last release, by an indentation error of all things.

ver 1.2.3
- Switched to using KDE File chooser dialog
- Squashed a couple of bugs in the custom pic display logic
- Coded an ugly hack to achieve correct online status detection on non-english systems. I would appreciate testing of this.
- Moved to using svn and eric3 for development

ver 1.2.2
- Fixed bug where contacts status was not being correctly detected on a non-english KDE installation. Unfortunately, this makes PyKDE a requirement.
- Coded workaround to have display pictures scaled smoothly.

ver 1.2.1
- Added preliminary unicode support. This really needs testing as I don't have any contacts with non ascii characters in their display names, and I can test only so many cases by manual modification

ver 1.2.0
- Added a config option to allow manual positioning, by popular demand. Since I don't use this feature, it hasn't been tested extensively. Bug reports are welcome
- Added the ability to set a custom display picture for a contact. Again bug reports are welcome.
- Also changed the config dialog to display scaled instead of cropped pictures

ver 1.1.2
- Added a config option to toggle the use of PyKDE for DCOP calls, as people seem to be having trouble with it. It is disabled by default. Enable it for a speed-up.

ver 1.1.1
- Changed pidof kopete to ps -C kopete -o pid= as some distros (fedora) don't have pidof in the users PATH

ver 1.1.0
- Implemented the DCOP calls in PyKDE (if available). This will make the loading of the contact list much faster.
- Fixed a bug that was causing one contact (the last in the list not to be loaded)

ver 1.0.4
- Fixed addressbook contacts not displaying bug. Also changed logic for detection of self contact.

ver 1.0.3
- Code cleanups/bug fixes

ver 1.0.2
- Fixed to be compatible with PyQt versions >= 3.14

ver 1.0.1
- Added code to handle (I hope) contacts whose display names have special characters

ver 1.0.0
- Version bump to stable, since I've received no bug reports

maxxik

14 years ago

Mandriva 2007.0 linux with :

kde 3.5.4
superkaramba 0.40
python 2.4.3
pykde 3.5.4 too

Report

maxxik

14 years ago

pls take a look there :
http://www.vulkan-pravex.com/snapshot1.png

why is it so ugly ? cutted bottom and username over buddy pic ? could you fix the view for "username is opposite buddie" and fix the height to correct ?

Report

C

kovidgoyal

14 years ago

Please follow the troubleshooting instructions from above. Does this problem happen only with v1.3.1?

Report

C

kovidgoyal

14 years ago

TROUBLESHOOTING
- Ensure you satisy all the REQUIREMENTS from above
- Is Kopete running?
- If you have enabled PyKDE in the config dialog, please try disabling it first, as PyKDE seems to cause a lot of bugs.
- In order to help me debug it, please run superkaramba in a terminal like so:
superkaramba skopete.skz > skopete-log 2>&1
Post the top 20 lines from the file skopete-log

Report

maxxik

14 years ago

hm ... is seems to be a bit better with pykde but anyway cutted bottom ...

there is log file :

sys.path.insert(0, '/home/maxx/.kde/share/apps/superkaramba/themes/32677-skopete-1/32677-skopete-1.3.1.skz')
X Error: BadWindow (invalid Window parameter) 3
Major opcode: 20
Minor opcode: 0
Resource id: 0x3e000a8

and there is pic with pykde :

www.vulkan-pravex.com/snapshot2.png

any idea ?

Report

C

kovidgoyal

14 years ago

Hmm strange do your contact names have newlines in them? Are they in some language other than english?

About the bottom cut-off. Is it only the icon being cut-off or are some contacts missing as well?

Report

maxxik

14 years ago

which instruction ?

about version - I dont know ... I'm trying to use latest version ... waht can you say ?

Report

searayman

14 years ago

first i want to say this is great, and by far the best kopete karamba theme there is. I just have one request. In preferences let us pick a default away message for it to use when we click away. At the mometn when we click to put ourselves away on the theme it puts us away with no away message.

Report

C

kovidgoyal

14 years ago

thanks it's good to be appreciated. Away messages support has been added to 1.3.0

Report

searayman

14 years ago

i know you can clik to go away, but it just puts up a blank away message, I want to be able to pick an away message when i go away.

Report

searayman

14 years ago

ignore my above posyt i didnt know you just released a new version.

Report

KNT

14 years ago

When I have finaly run skopete my terminal is constantly flooded with this:

Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 505, in widgetUpdated
__skopete.update()
AttributeError: 'NoneType' object has no attribute 'update'
Call to widgetUpdated failed
Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 507, in widgetUpdated
handleError("Update")
File "/home/knt/.superkaramba/skopete/skopete.py", line 505, in widgetUpdated
__skopete.update()
AttributeError: 'NoneType' object has no attribute 'update'

And when I try to configure the theme I only get:

Exception in thread Thread-12:
Traceback (most recent call last):
File "threading.py", line 442, in __bootstrap
self.run()
File "threading.py", line 607, in run
self.function(*self.args, **self.kwargs)
File "/home/knt/.superkaramba/skopete/skopete.py", line 570, in loadConfigDialog
if __skopete.kopete == None: __skopete.contactView.loadTimer.join()
AttributeError: 'NoneType' object has no attribute 'kopete'

Report

C

kovidgoyal

14 years ago

You need to send me the topmost error message, that's the meaningful one, scroll up in the teminal to see it.

Report

KNT

14 years ago

superkaramba: addThemeToList() file: /home/knt/.superkaramba/skopete/skopete.theme
superkaramba: Starting theme: SKopete pretty name: SKopete - 1
superkaramba: /home/knt/.superkaramba/skopete.rc
superkaramba: Loading python module: skopete
Loaded Skopete
sys.path.insert(0, '/home/knt/.superkaramba/skopete/')
SKopete: You have chosen not to use PyKDE
Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 496, in initWidget
__skopete = SKopete(widget)
File "/home/knt/.superkaramba/skopete/skopete.py", line 400, in __init__
self.titleBar = TitleBar(self.top, 0, 0, self.top.width(), 25, self.icons, conf, self.kopete, locale=klocale)
File "/home/knt/.superkaramba/skopete/skopete.py", line 84, in __init__
self.am = AccountManager(icons, kopete)
File "/home/knt/.superkaramba/skopete/kopete.py", line 449, in __init__
account["icon"] = icons[account["type"]]
KeyError: 'Gadu'
Call to initWidget failed
Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 498, in initWidget
handleError("Initialization")
File "/home/knt/.superkaramba/skopete/skopete.py", line 496, in initWidget
__skopete = SKopete(widget)
File "/home/knt/.superkaramba/skopete/skopete.py", line 400, in __init__
self.titleBar = TitleBar(self.top, 0, 0, self.top.width(), 25, self.icons, conf, self.kopete, locale=klocale)
File "/home/knt/.superkaramba/skopete/skopete.py", line 84, in __init__
self.am = AccountManager(icons, kopete)
File "/home/knt/.superkaramba/skopete/kopete.py", line 449, in __init__
account["icon"] = icons[account["type"]]
KeyError: 'Gadu'
Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 505, in widgetUpdated
__skopete.update()
AttributeError: 'NoneType' object has no attribute 'update'
Call to widgetUpdated failed
Traceback (most recent call last):
File "/home/knt/.superkaramba/skopete/skopete.py", line 507, in widgetUpdated
handleError("Update")
File "/home/knt/.superkaramba/skopete/skopete.py", line 505, in widgetUpdated
__skopete.update()
AttributeError: 'NoneType' object has no attribute 'update'

(and the errors for lines 505 and 507 repeat)

"Gadu" in 99% comes from Gadu-Gadu, a closed IM protocol used widely in Poland. Kopete supports it.

Report

C

kovidgoyal

14 years ago

Should be fixed in 1.2.10

Report

KNT

14 years ago

While running on Debian (testing/unstable, all requirements met) the theme does not work properly. Only the space on my desktop is used by a transparent SK rectangle. From the console I'm getting this:

knt@main:~$ superkaramba Desktop/32677-skopete-1.2.9.skz
sys.path.insert(0,'/home/knt/Desktop/32677-skopete-1.2.9.skz')
Traceback (most recent call last):
File "/home/knt/Desktop/32677-skopete-1.2.9.skz/skopete.py", line 12, in ?
ImportError: No module named subprocess
------------------------------------------------------
What does ImportError mean?

It means that I couldn't load a python add-on skopete.py
If this is a regular theme and doesn't use python
extensions, then nothing is wrong.
------------------------------------------------------

Report

C

kovidgoyal

14 years ago

That's because your superkaramba is linked against python 2.3. You will have to compile it from source against python 2.4

Report

KNT

14 years ago

and getting this:

knt@main:~$ superkaramba Desktop/32677-skopete-1.2.9.skz
sys.path.insert(0, '/home/knt/Desktop/32677-skopete-1.2.9.skz')
Traceback (most recent call last):
File "/home/knt/Desktop/32677-skopete-1.2.9.skz/skopete.py", line 12, in ?
ImportError: No module named subprocess
------------------------------------------------------
What does ImportError mean?

It means that I couldn't load a python add-on skopete.py
If this is a regular theme and doesn't use python
extensions, then nothing is wrong.
------------------------------------------------------

(Debian testing/unstable, all requirements met)

Report

jayenell

14 years ago

Hi,

I really like this theme, although I think it's a bit to slow (I have PyKDE on).

Anyway I've found one bug and this that it duplicates the contacts in the "Monitored Contacts". Not right away, but agter a while, while it runs. I now have some contacts more than 30 times in the list. Half with their alias and half with their e-mailadress. Off course it is no big problem, because it only shows one in the main Skopete-contact-list, but I was wondering if this is not eating resources!?

Report

C

kovidgoyal

14 years ago

Hmm...what aspect of it do you find slow? It is a little slow to respond to changes in kopete status, but that is because of kopete's limited DCOP interface...I had to resort to polling at a configurable interval. Not the best of solutions. You can adjust the polling interval via the config dialog. Though making it smaller will raise CPU utilization for DCOP calls

As for the Monitored Contacts problem, it's going to need a little debugging. Can you unzip the .skz archive and run the theme with superkaramba skopete.theme. The edit the file configure.py and near the end put
print "contacts: ", len(contacts)

just after the line
contacts = config_backend.loadMCL()

Then post the output when you start the config dialog.

Thanks

Report

jayenell

14 years ago

Strange, but the bug does not occur anymore. Anyhow I'm using Kopete DeskList now, not because I don't like SKopete, but because I can use the context-menu now and for me it is faster.

Report

rokkford

15 years ago

thank you again for the good work!
skopete works fine now with irc-buddies.
the only thing is, that i can't compile PyKDE against python2.4, because python2.3 is on my system as well.
any ideas?

Report

psycosm

15 years ago

good job, i like it a lot!
would be great to have something like this also for amsn!
be to all
psy

Report

C

kovidgoyal

15 years ago

Thanks...

Report

rokkford

15 years ago

works fine as long as i add irc-buddies

Traceback (most recent call last):
File "/home/rokkford/tmp/skopete/skopete.py", line 503, in widgetUpdated
__skopete.update()
File "/home/rokkford/tmp/skopete/skopete.py", line 473, in update
ClickableWidget.update(self) # Pass on update events to children
File "skopete_gui.py", line 156, in update
if self.top: self.top.update()
File "skopete_gui.py", line 131, in update
if "update" in dir(child): upd = child.update()
File "/home/rokkford/tmp/skopete/skopete.py", line 369, in update
self.sync(True)
File "/home/rokkford/tmp/skopete/skopete.py", line 337, in sync
nv = ContactViewItem(self, 0, 0, self.width(), self.icons, self.conf, contact, self.pluginClicked)
File "/home/rokkford/tmp/skopete/skopete.py", line 219, in __init__
p = PluginIndicator(self.pluginsPane, icons[contact.plugin], icons, contact.Id, hJustification=align)
KeyError: 'IRCUser'
Call to widgetUpdated failed
Traceback (most recent call last):
File "/home/rokkford/tmp/skopete/skopete.py", line 505, in widgetUpdated
handleError("Update")
File "/home/rokkford/tmp/skopete/skopete.py", line 503, in widgetUpdated
__skopete.update()
File "/home/rokkford/tmp/skopete/skopete.py", line 473, in update
ClickableWidget.update(self) # Pass on update events to children
File "skopete_gui.py", line 156, in update
if self.top: self.top.update()
File "skopete_gui.py", line 131, in update
if "update" in dir(child): upd = child.update()
File "/home/rokkford/tmp/skopete/skopete.py", line 369, in update
self.sync(True)
File "/home/rokkford/tmp/skopete/skopete.py", line 337, in sync
nv = ContactViewItem(self, 0, 0, self.width(), self.icons, self.conf, contact, self.pluginClicked)
File "/home/rokkford/tmp/skopete/skopete.py", line 219, in __init__
p = PluginIndicator(self.pluginsPane, icons[contact.plugin], icons, contact.Id, hJustification=align)
KeyError: 'IRCUser'

Report

13 years ago

ver 1.3.1
- Patch to add support for pykde >= 3.16.0

ver 1.3.0
- Added support for away/available messages

ver 1.2.10
- Added support for Gadu-Gadu

ver 1.2.9
- Fixed IRC bug with kopete 0.12

ver 1.2.8
- Fixed (I hope) problems with IRC contacts

ver 1.2.7
- The subprocess.Popen.communicate() method is not signal safe, added a workaround. For those of you that get 'Interrupted system call' errors on running SKopete in a terminal, this release should be of help. If you continue to get them, try installing the latest PyKDE and enabling PYKDE for DCOP calls in the config dialog.
- Patched so that the above error doesn't prevent the config dialog from loading.

ver 1.2.6
- Fixed memory leak caused by incorrect use of PyKDE for DCOP calls. This will only have affected you if you enabled PyKDE for DCOP calls in the config dialog

ver 1.2.5
- Display pics are now centered if they are smaller than the configured picture size
- Added localization support via KLocale. If you have a non-english desktop and a working PyKDE, you should upgrade to this release

ver 1.2.4
- Fixed bug that was causing all contacts to be displayed, not just monitored contacts. Bug was introduced in the last release, by an indentation error of all things.

ver 1.2.3
- Switched to using KDE File chooser dialog
- Squashed a couple of bugs in the custom pic display logic
- Coded an ugly hack to achieve correct online status detection on non-english systems. I would appreciate testing of this.
- Moved to using svn and eric3 for development

ver 1.2.2
- Fixed bug where contacts status was not being correctly detected on a non-english KDE installation. Unfortunately, this makes PyKDE a requirement.
- Coded workaround to have display pictures scaled smoothly.

ver 1.2.1
- Added preliminary unicode support. This really needs testing as I don't have any contacts with non ascii characters in their display names, and I can test only so many cases by manual modification

ver 1.2.0
- Added a config option to allow manual positioning, by popular demand. Since I don't use this feature, it hasn't been tested extensively. Bug reports are welcome
- Added the ability to set a custom display picture for a contact. Again bug reports are welcome.
- Also changed the config dialog to display scaled instead of cropped pictures

ver 1.1.2
- Added a config option to toggle the use of PyKDE for DCOP calls, as people seem to be having trouble with it. It is disabled by default. Enable it for a speed-up.

ver 1.1.1
- Changed pidof kopete to ps -C kopete -o pid= as some distros (fedora) don't have pidof in the users PATH

ver 1.1.0
- Implemented the DCOP calls in PyKDE (if available). This will make the loading of the contact list much faster.
- Fixed a bug that was causing one contact (the last in the list not to be loaded)

ver 1.0.4
- Fixed addressbook contacts not displaying bug. Also changed logic for detection of self contact.

ver 1.0.3
- Code cleanups/bug fixes

ver 1.0.2
- Fixed to be compatible with PyQt versions >= 3.14

ver 1.0.1
- Added code to handle (I hope) contacts whose display names have special characters

ver 1.0.0
- Version bump to stable, since I've received no bug reports

12345678910
Be the first to comment
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
1.3.1
updated Jun 10 2007
added Dec 18 2005
downloads 24h
0
mediaviews 24h 0
pageviews 24h 1