SlickBar for SuperKaramba

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:

SlickBar 0.9.2 for SuperKaramba
------------------------------------------------
Copyright 2003 Matthew Kay ([email protected])
Licensed Under GPL
------------------------------------------------
http://www.unrandom.com/Projects/slickbar.php
------------------------------------------------


--------------------------------------------
NEW VERSION 0.9.2!

This version includes a few bug fixes, and some small feature improvements. I haven't actively worked on SlickBar for about 2 months, so I'm "getting back into it" with a small updated release in the 0.9 series. (On that note, anyone who has tried to email me and hasn't gotten a response, it is because of my "hiatus" in SlickBar development -- just drop me another message). Don't worry, 1.x is still coming, it's just a matter of how/when/in what form.

Anyway, this new version makes the config menu more obvious with a tooltip (middle-click on the K-Button), improves on the systray auto-resize and moving, and fixes an XMMSPanel crash that was caused by streaming media.

Also: for everyone who's been asking for it forever, KICKER AUTO-HIDING IS HERE! Simply go into the configurator and turn the "Hide Kicker" option to On. Then, SlickBar will hide the main kicker panel when started and re-show it when closed. Note that this does NOT disable dcop access to kicker functions!

--------------------------------------------

SlickBar is intended to go a little farther than just being a SuperKaramba "theme". It consists of individual "Panel"s, which can be placed independently of one another using the XML configuration file. As of v0.9, SlickBar now includes a config GUI so you no longer have to edit the config file by hand. The config GUI includes a preview display (with drag and drop panels), and the ability to apply changes without restarting SuperKaramba! To take a look at some of the features lined up for future versions, see the TODO section on the slickbar website: http://www.unrandom.com/Projects/slickbar.php#todo.

Features
--------

- each Panel can be placed independently of the others (the last screenshot has an example of a configuration different than the default)
- the NoatunPanel and XMMSPanel allow you to: go back/fwd, stop, play/pause, open/close the playlist, and do a song seek using the progress bar.
- The QuickLaunchPanel creates an auto-sized panel using KDE links in the QuickLaunch directory, and finds the *right* icons using PyKDE!
- The TaskPanel can be set to any size, and each task button sizes itself to fit inside the bar. As well, it automatically finds the appropriate icon for each task (and is pretty successful) as well as grouping related tasks into single buttons (see screenshot #2).
- The PagerPanel automatically detects the number of desktops you are using and sizes itself to fit!
- Fonts and colours are customizable all from one configuration file.

Known Bugs
----------

I am aware of the following bugs, and will work to fix them soon, don't worry :)

1. If the title of an application changes, the TaskPanel will not update it until another task-related change occurs.

2. The Config GUI preview will not update when you change the size of a panel -- you must apply your changes, close the GUI, and start it again for width-related changes to affect the panels in the preview

4. There are no icons for grouped tasks if you don't have the addMenuTaskItem superkaramba patch installed. This isn't really a bug, but an FIY :).

Screenshots
-----------

1. Shows the default configuration with the config GUI alongside
2. Shows use of grouped tasks
3. Shows another configuration I threw together, also demonstrates having a different number of desktops. As well, it shows the configuration panel open.

I welcome people to try their hand at writing SlickBar Panels, however I would suggest waiting for version 1.0 to be released. Version 1.0 will be (or is, if you consider the unstable version on my computer) based on Skoot, and therefore has a number of API changes. There will be complete SlickBar API documentation for version 1.0, along with a useful tutorial.

If you create a nice Panel that could be useful to lots of people, I'd be glad to distribute it with SlickBar (with your permission, of course).

Requirements
------------

SlickBar requires SuperKaramba 0.33, the Python XML libraries, and Tkinter (Tcl/Tk) for the config GUI. Most people probably have the python libs already, most python installations should have them.

The XMMSPanel requires the PyXMMS module. It is available here: http://www.via.ecp.fr/~flo/. Don't worry if you don't have it and you intend to use the NoatunPanel.

NoatunPanel (but not NoatunPanelSlow) requires the PyKDE module. You can get it here: http://www.riverbankcomputing.co.uk/pykde/. Alternatively, you can use NoatunPanelSlow, but the "Slow" means REALLY REALLY SLOW. You have been warned.

QuickLaunchPanel, TaskPanel, and PagerPanel also require PyKDE.

TODO
----

The TODO is now much larger and more extensive. It has moved to the SlickBar website, here:
http://www.unrandom.com/Projects/slickbar.php#todo
Last changelog:

16 years ago

- Jan 08 2004 - 0.9.2
* added a "Hide Kicker" option which will automatically hide the kicker
main panel when SlickBar starts, and re-show kicker when SlickBar
closes. Note that this does NOT disable dcop access to kicker funtions.
* Auto-resizing of the Systray now works better (should not obscure
other panels as much). The Systray will now also move properly if you
move/resize the SystrayPanel without restarting SlickBar. I think there
might still be a subtle bug in the auto-resizing, but I haven't had a
chance to track it down yet.
* Added a tooltip to the K-menu that makes the existence of the config
menu a little more obvious.
* fixed a minor bug introduced in the handling of my TkToggle ("on/off")
widgets and boolean config options in Python 2.3.
* fixed a crash caused by listening to streaming media in XMMS while
using XMMSPanel (thanks to Chu Chu for the fix).
* "Sans" is now the default font for most text instead of "Verdana".
(Hopefully this better-reflects most people's font settings).

- Oct 19 2003 - 0.9.1
* SlickBar should now be able to detect when a previously opened config
GUI has closed abnormally, and will not prevent you from opening
another GUI in this case.
* The TaskPanel now includes an option to disable task grouping.
* QuickLaunchPanel now uses a home-grown kdesktop file parser because
PyKDE's was causing some weird bugs in SuperKaramba. (Note that it
still requires PyKDE for icon discovery)
* SlickBar now includes a mechanism that allows panels to trigger a
reloading of all the panels. This is a quick-n-dirty, *temporary*
solution that will allow panels to resize on-the-fly. A much better
inline resizing solution has already been implemented in the SlickBar
1.0 development code, but unfortunately it isn't in a state to be
released yet :(.
* first version of (buggy) auto-resize code implemented in SysTrayPanel.
This won't work well until superkaramba introduces a way to resize
system trays.
* The PagerPanel now automatically resizes when the number of virtual
desktops changes.
* The PagerPanel display routines have been reorganized to make it more
responsive.
* The TaskBar now uses createTaskIcon() and addMenuTaskItem() to handle
task icons, thus making them much more accurate (and has also improved
the general responsiveness of the taskbar). Task icons for grouped tasks
are only available if you have applied the addMenuTaskItem superkaramba
patch.
* The TaskBar now provides a visual indication of which window is
currently in focus. I am not sure I like how it looks at the moment,
I will think about it more (and hopefully get some feedback from
users..... hint hint :) ), so it might change.
* SlickBar now handles errors/exceptions in panels' updating routines
gracefully -- panels that do not have errors are still able to update
despite other panels having problems.
* SlickBar now handles exceptions in panel display() routines much
more gracefully (ie, all other panels are still displayed; as well,
the offending panel is not allowed to update() anymore)
* All output is now saved in a logfile (slickbar.log) for easy access
(This should help with troubleshooting errors)
* A dialog now pops up to inform you if any of the panels failed to load
successfully. This should help people who aren't running from a
terminal and therefore can't see the error messages right away.
* Minor font tweaks due to the new SuperKaramba pixel-based font sizing.
* All code using KWinModule that can instead use KWin now uses Kwin.


The rest of the changelog (back to v0.2) is available here: http://www.unrandom.com/Projects/slickbar-changelog.php

fotunemunkey

17 years ago

I have installed the slickbar, and it looks as though it should be great, however, when I middle click the 'K' and the panel slides out, it is clipped at what looks like the bounding box for the un-expanded version.

I am running redhat 7.3, with kde-redhat projects kde at 3.1.3.

The weirdest thing about my setup is the X server, which is the latest cygwin Xerver, and I log in through XDCMP.

Can anyone shed any light on this, as I'd love to get it working and get rid of the ugly kicker!

Report

fotunemunkey

17 years ago

I should also have mentioned that I get these messages when I load the theme...


Error: Could Not Load Panel 'TaskPanel': Not A Valid Panel
Error: Could Not Load Panel 'XMMSPanel': Not A Valid Panel
Error: Could Not Load Panel 'QuickLaunchPanel': Not A Valid Panel
Error: Could Not Load Panel 'PagerPanel': Not A Valid Panel

Report

C

optikSmoke

17 years ago

Ahh, that explains it. I unfortunately chose a poor wording for those error messages. XMMSPanel requires PyXMMS and the other three require PyKDE, which is likely why they are not working. SlickBar automatically calculates its length based on the panels you have loaded, which would be why the config panel is cut off (none of the panels can load).

You basically need to have PyKDE to get any use out of this... sorry for any problems you have with it :(

Report

Geoff123

17 years ago

OK. Compiled and installed Superkaramba 0.27,PyQt-3.7,Sip-3.7 and PyKDE-3.7-3. Pyxmms no longer seems to be maintained - bombed out during build with numerous errors. All-in-all around eight hours work on SuSE 8.2 with KDE 3.1.3 and Qt3.1.2-snapshot-20030618 and screen resolution of 800x600 (I can go no higher). Downloaded Slickbar 0.8.9,unpacked it, from a terminal ran superkaramba /path/to/slickbar.theme and a brief glimpse of a white bar at the top of the screen appeared followed by a lovely grey digital clock in the right hand corner of the screen.Messages in the terminal were:
File "/home/geoff/Documents/slickbar-0.8.9/slickbar.py", line 13, in ?
import SlickBar
File "/home/geoff/Documents/slickbar-0.8.9/SlickBar/__init__.py", line 47, in ?
from xml.sax import ContentHandler
ImportError: No module named xml.sax

If anyone can shed any light on this, I would be very grateful.

Report

josath

17 years ago

I had the same problem. You need the python xml libraries. On debian, running the following will solve that:

apt-get install python2.2-xml python2.2-xmlbase

replace 2.2 with your version of python. (2.2 is the most common i think).

But yeah, this is one awesome bar. really slick ;-)
I wish I had something faster than my sad sad 350mhz and i'd run this full time. :-(

Report

Geoff123

17 years ago

Thanks for the reply. I installed the python-xml rpm and now the clock and the 'k' gear appears. Messages in the terminal give me: Error: Could Not Load Panel 'TaskPanel': Not A Valid Panel
Error: Could Not Load Panel 'XMMSPanel': Not A Valid Panel
Error: Could Not Load Panel 'QuickLaunchPanel': Not A Valid Panel
Error: Could Not Load Panel 'PagerPanel': Not A Valid Panel

Of course the XMMSpanel cannot load - Pyxmms isn't installed.

Report

C

optikSmoke

17 years ago

Hmm.... well, those second two require PyKDE/PyQt, and that could be the problem (and likely is, unfortunately).
I will take a look at running it under PyKDE 3.7 (I did not know it was released, I have been running 3.6 for quite some time), likely the problem is due to the newer bindings.

In any case, I will probably be releasing a minor update soon before I finish the config screen (not much time on my hands currently). The minor version will include a debug mode to make these problems easier to solve.

Sorry for all these problems....... :(

Report

Geoff123

17 years ago

Thanks for the reply. There is absolutely no need to apologise. You're doing sterling work. Patience is a virtue and I'm sure this will be worth the wait.

Report

sniggly

17 years ago

I run debian test and had to install a slew of stuff to get it to work:

apt-get install superkaramba
apt-get install python-xmlbase
apt-get install python2.2-sip-dev
apt-get install sip
apt-get install python2.2-qt3c102
apt-get install python-sip-qt3
apt-get install python-qt-dev

NoatunPanelSlow doesnt work - it does show the controls but there's no action on any click. I'm not sure if PyKDE installed correctly - i get warnings about it not being able to find qlist.h from kdeuihuge.cpp:126

Is there a way for this to work with single clicking?

Has anyone done an application launcher for this?

Having said all that I also have to say I can't wait till I can totally get rid of the default KDE panels and replace them with this. It is *gorgeous*, extremely flexible... It's the way forward for KDE itself (or any desktop for that matter). optikSmoke you deserve total props for this, what an awesome job.

Report

C

optikSmoke

17 years ago

NoatunPanelSlow doesnt work - it does show the controls but there's no action on any click. I'm not sure if PyKDE installed correctly - i get warnings about it not being able to find qlist.h from kdeuihuge.cpp:126

Hmm.... Do any of the other panels work? If PyKDE is working, I would try using NoatunPanel instead of NoatunPanelSlow... NoatunPanelSlow doesn't use PyKDE. As well, I haven't tested it in a few versions, since I don't really maintain it much. I'll update/test it for the next version, I promise :)

Is there a way for this to work with single clicking?

Right-click on the panel and make sure that "Toggle locked position" is on. That should work...

Has anyone done an application launcher for this?

I'm not sure what you mean.... there is the QuickLaunchPanel, but if PyKDE isn't working it won't work either :(

optikSmoke you deserve total props for this, what an awesome job.

Thanks.... hearing stuff like that makes it all worthwhile (seriously) :). If you need more help fixing your problems, feel free to email me.

Report

floyd

17 years ago

I am getting errors (in the shell) about integer divide by zeros and what not (doesnt kill it though) when I change desktops in the pager, and the taskbar panel fails to update properly.

Also, was wondering if adding "pressable" buttons to the taskbar and quicklaunch is on the to-do list? (By pressable I mean they look as if they are being pressed when you click them ,like in Kicker).

Otherwise awesome Karamba theme, one of the best!

Report

C

optikSmoke

17 years ago

Thanks!

Pressable buttons sounds good.... Actually, I will probably write some abstraction code to make that easy on myself, and then most everything will get three states: up, mouseover, and down.

Not too soon though....... this will probably come along in the version after next -- at the moment I am working on a full GUI configuration system in my spare time which will be the major change for the next version, along with some other small improvements.

Report

redbaks

17 years ago

hi! i love this theme. but is there a way to disable the default panel? i am using a M9.1 KDE3.1
thanks!

Report

floyd

17 years ago

I think he means to disable kicker... If he doesnt, I would still like to know how =]

Report

josath

17 years ago

well, you could always hit the tab on the sides of the kicker to hide it, or set it to auto hide, but i don't know exactly how to permanently turn it off.

Something missing from all the karamba bars so far is a status dock for programs that dock in it, for example, gaim has a plugin to put it's icon in there, when you click on it you get a menu of stuff related to the program (access accounts, go away, etc).
And i also like my kcpuload which puts a little graph of the cpu, though that can be done through karamba itself.

Report

C

optikSmoke

17 years ago

Which panel do you mean? The date/time panel?

It would take some code modification, but if you really want it I can cook up some instructions (or include an option in the next version). Do you want the K gone too?

If you mean any of the other panels, open up the config file (middle click on K -> click "Configure SlickBar") and then remove the corresponding xml tag for the panel you don't want.

Report

C

optikSmoke

17 years ago

Sorry about the lateness of this, I forgot about it until recently.

For everyone having troubles getting PyKDE to work on Mandrake 9.1, go to this site: http://mechanicalcat.net/tech/qt-NKR/
Download and install the qt rpms there.

Then, go here: http://www.riverbankcomputing.co.uk/pykde/download.php
And follow the instructions to download/install PyQt and PyKDE.

PyQt/PyKDE won't work properly when compiled against the standard Mandrake qt libraries because they mispackaged them.

Report

austinjreid

17 years ago

Just as a 'confirm'. I had weeks of brain-ache trying to get qt3/SIP/PyQT/PyKDE compiled and installed, all due to the fact I loved the look of this theme. I even bodged up my qt libraries I had to re-install mdk, luckily I wasn't far from fresh stage anyway.
However, with pointers from NRowe (and his patch in the above link) I rebuilt qt3 (without the library stripping) from source, moved that over to my /usr/lib/qt3 and then SIP/PyQT/PyKDE all installed without _any_ hitches at all!
Be prepared for a few coffees during the make(s)! Well worth the effort tho - crackin theme!

Report

C

optikSmoke

17 years ago

Be prepared for a few coffees during the make(s)! Well worth the effort tho - crackin theme!

Thanks! Wait until the next version -- I'm writing a configuration GUI, plus more configurability/features, plus more speed improvements...... It'll be good :)

Report

dittohead

17 years ago

far too many dependencies to even take this thing seriously.

pykde fails on make, so does pyxmms. on top of this, there is about 6 rpms to get to have just enough stuff to even begin compiling pykde.

it looked so cool too!!

Report

catch22

17 years ago

I second that. I now have it completely working....now some 2-3 hours after downloading it. Had i been more of a newbie i would have given up long ago. Work has to be made to make things work without all those packages.

Other than that, it looks great.

Report

ards

17 years ago

When I run it (I have superkaramba 0.27 installed), i get:

Error: Could Not Load Panel 'TaskPanel': Not A Valid Panel
Error: Could Not Load Panel 'QuickLaunchPanel': Not A Valid Panel
Error: Could Not Load Panel 'PagerPanel': Not A Valid Panel

The XMMS Panel works fine however and appears.

Any ideas how to fix this?

Report

noop

17 years ago

you need PyKDE installed for these panels to work. I'm getting the same thing, and I'm currently trying to install PyKDE (w/o much success I might add)

Report

CtrlAltDel

17 years ago

I've got problems with PyKDE as well... I left it compiling all night and it seem like it would not go further...

Report

C

optikSmoke

17 years ago

Yeah, I actually had similar problems trying to get PyKDE installed (on Mandrake 9.1)
If anyone running MDK needs help, just ask. I might write a tutorial on it... I'll have to dig in my memory to remember what I did. If you look on the PyKDE forums, there was some discussion of the problems, including updated qt RPMs that you need in order to get it to work.

Report

16 years ago

- Jan 08 2004 - 0.9.2
* added a "Hide Kicker" option which will automatically hide the kicker
main panel when SlickBar starts, and re-show kicker when SlickBar
closes. Note that this does NOT disable dcop access to kicker funtions.
* Auto-resizing of the Systray now works better (should not obscure
other panels as much). The Systray will now also move properly if you
move/resize the SystrayPanel without restarting SlickBar. I think there
might still be a subtle bug in the auto-resizing, but I haven't had a
chance to track it down yet.
* Added a tooltip to the K-menu that makes the existence of the config
menu a little more obvious.
* fixed a minor bug introduced in the handling of my TkToggle ("on/off")
widgets and boolean config options in Python 2.3.
* fixed a crash caused by listening to streaming media in XMMS while
using XMMSPanel (thanks to Chu Chu for the fix).
* "Sans" is now the default font for most text instead of "Verdana".
(Hopefully this better-reflects most people's font settings).

- Oct 19 2003 - 0.9.1
* SlickBar should now be able to detect when a previously opened config
GUI has closed abnormally, and will not prevent you from opening
another GUI in this case.
* The TaskPanel now includes an option to disable task grouping.
* QuickLaunchPanel now uses a home-grown kdesktop file parser because
PyKDE's was causing some weird bugs in SuperKaramba. (Note that it
still requires PyKDE for icon discovery)
* SlickBar now includes a mechanism that allows panels to trigger a
reloading of all the panels. This is a quick-n-dirty, *temporary*
solution that will allow panels to resize on-the-fly. A much better
inline resizing solution has already been implemented in the SlickBar
1.0 development code, but unfortunately it isn't in a state to be
released yet :(.
* first version of (buggy) auto-resize code implemented in SysTrayPanel.
This won't work well until superkaramba introduces a way to resize
system trays.
* The PagerPanel now automatically resizes when the number of virtual
desktops changes.
* The PagerPanel display routines have been reorganized to make it more
responsive.
* The TaskBar now uses createTaskIcon() and addMenuTaskItem() to handle
task icons, thus making them much more accurate (and has also improved
the general responsiveness of the taskbar). Task icons for grouped tasks
are only available if you have applied the addMenuTaskItem superkaramba
patch.
* The TaskBar now provides a visual indication of which window is
currently in focus. I am not sure I like how it looks at the moment,
I will think about it more (and hopefully get some feedback from
users..... hint hint :) ), so it might change.
* SlickBar now handles errors/exceptions in panels' updating routines
gracefully -- panels that do not have errors are still able to update
despite other panels having problems.
* SlickBar now handles exceptions in panel display() routines much
more gracefully (ie, all other panels are still displayed; as well,
the offending panel is not allowed to update() anymore)
* All output is now saved in a logfile (slickbar.log) for easy access
(This should help with troubleshooting errors)
* A dialog now pops up to inform you if any of the panels failed to load
successfully. This should help people who aren't running from a
terminal and therefore can't see the error messages right away.
* Minor font tweaks due to the new SuperKaramba pixel-based font sizing.
* All code using KWinModule that can instead use KWin now uses Kwin.


The rest of the changelog (back to v0.2) is available here: http://www.unrandom.com/Projects/slickbar-changelog.php

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
0.9.2
updated Jan 08 2004
added Apr 09 2003
downloads 24h
0
mediaviews 24h 0
pageviews 24h 9