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

C

optikSmoke

17 years ago

Mandrake's QT libraries are the culprit -- they are broken. Install the rpms available here: http://mechanicalcat.net/tech/qt-NKR/ and then compiling PyQt/PyKDE should work.

Report

ltcmdrdata

17 years ago

oh a b

Report

C

optikSmoke

16 years ago

That error is a missing symbol in the libraries. You should compile PyQt and PyKDE using the sources instead of installing from RPM.

Report

soulrebel

17 years ago

well after a couple of months i actually got slickbar fully functional...:O
i REALLY like it!
getting it to run on suse 9.0 was more than time consuming, but i wrote a little how-to and opened a thread on how to get pyKDE and pyXMMS working in suse.
it is available at http://www.linuxforum.com/forums/index.php?showtopic=5361

hope this can help some people.

btw did you realise wizzard made a slickbar mod (whose download is broken...)? he had some good additions too though. he had icon resizing on mouse-over and some stuff like that.
some other additions i think would make slickbar even greater(it already replaces kicker but adding some stuff it could also replace some other karamba themes).
for example a second bar for the bottom of the screen (from right to left maybe), would be great since i am running out of space on the top with all the beatiful panels :-). and maybe cpu/mem/hd bars....
anyway i know slickbar is just going to get better. keep up the good work

Report

JusKickNit

17 years ago

This thing rock's, but I would like to request a "Show Desktop" button. Thanks

Report

cheshire

17 years ago

I must be blind. I can't figure out how to load the config gui. Any help would be appreciated! :>

Report

C

optikSmoke

17 years ago

Ah yes the perrenial question :). Middle-click on the K-button to open the config menu, then click configure slickbar. Instructions used to be in he README but got lost somewhere, and I keep forgetting to mention it somewhere noticeable :).

Report

angryelephant

17 years ago

First my compliments on a fine program. Second, I am receiving this error when I click on many parts of the slickbar.

Traceback (most recent call last):
File "/home/steve/slickbar-0.9.1/slickbar.py", line 193, in widgetClicked
if panel.x

Report

C

optikSmoke

17 years ago

Is that the complete error? It looks cut off at the end there.

Report

soulrebel

17 years ago

YES I FOUND OUT WHAT THE PROBLEM WAS!!!!!
ok its still not perfect....the only panels i can select are main, noauton,systray and helloworld and date and time are covering each other but at least its working!!!!!
YOU HAVE TO TELL THE PEOPLE:
slickbar directory CAN NOT be on a fat32 partition!!!!!!!!! that causes the "i only see the date and time and no visuals"-problem

slickbar+fat32 = +#*

Report

Vlaaad

17 years ago

Hey great work !!! I definitively left my kicker panels for slickbar ! How beautiful and useful !!
However, the installation was quite long... SIP, PyQT, PyKDE and I encountered problems with module imports, although python was well installed and so were the module concerned. I heard that some of you got the same problems (import site, import os, import time,...). I finally get it works with the following (you can type these lines on a console or put them your ~/.bashrc. Don't forget to adapt them to your python installation, i.e. python 2.2) :
export PYTHONHOME="/usr/lib/python2.3/"
export PYTHONPATH="/usr/lib/python2.3/:/usr/lib/python2.3/lib-dynload/:/usr/lib/python2.3/lib-tk/:/usr/lib/python2.3/lib-old/:/usr/lib/python2.3/site-packages/"

Hope that I help some of you !

Report

soulrebel

17 years ago

err...its already late night over here in germany. forget that last post. everything is fine again....
good night ;-)

Report

soulrebel

17 years ago

i just had the slickbar partially working when i tried your 'help'. no offence, but now its broken again!!!!! and i dont know how to undo this..... :(
my python paths are EXACTLY the same as yours all the dirs exist and have contents et cetera but now my slickbar shows no panels except main and doesnt show the k-icon on main either, the config cant be accessed anymore... help me someone plz!!!

Report

soulrebel

17 years ago

alright i got superkaramba 0.33 and when i open slickbar 0.8 or 0.9 NOTHING happens. no flashing icons, no error output, just nothing. in konsole i have no output either.
older versions and the systemslickblue theme work absolutely fine.
somebody plz help me, i am dying to use the slickbar!!!!!!!!

Report

soulrebel

17 years ago

your were right! it was displayed offscreen, but now that it is displayed onscreen the only thing i see still is the time and the date written over each other. :-(
what now?

Report

C

optikSmoke

17 years ago

No panels are displayed either? If no panels are displayed, open up the configurator (middle-click on the "K" and then click "configure") and make sure you have some panels added to the bar. If the text is overlapping, try changing the text size for time or date in the configurator. You can also install the captain podd font if you haven't (it will make the time look better). It comes with slickbar.

If you cannot get any panels displayed, and no errors are being output, something very weird is going on. Make sure you check slickbar.log for any output.

Report

C

optikSmoke

17 years ago

No errors at all? Perhaps slickbar is being displayed, but off-screen. Open up ~/.superkaramba/slickbar.rc and make sure that "widgetPosX" and "widgetPosY" are greater than or equal to 0. Even if it is off-screen by 1 pixel, superkaramba doesn't display it (I've had that problem before).

Report

soulrebel

17 years ago

did you folks know that slickbar 0.2-tweaked is shipped with suse 9.0? well it is. and that is the ONLY version that works for me. both karamba and superkaramba(v0.32) show only the time of slickbars 0.8x and .9x. what can i do???

Report

soulrebel

17 years ago

this is the error if i run slickbar with superkaramba from shell

linux:~ # superkaramba /home/hannes/slickbar-0.9.1/slickbar.theme
Could not find platform independent libraries (-prefix-)
Could not find platform dependent libraries (-exec_prefix-)
Consider setting $PYTHONHOME to (-prefix-)[:(-exec_prefix-)]
'import site' failed; use -v for traceback
superkaramba: TaskManager::TaskManager()
Traceback (most recent call last):
File "/home/hannes/slickbar-0.9.1/slickbar.py", line 10, in ?
import os
ImportError: No module named os
------------------------------------------------------
What does ImportError mean?

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

Report

C

optikSmoke

17 years ago

Before you start looking for other solutions, I would upgrade to SuperKaramba 0.33 (the latest) and try running SlickBar again. That might just magaically fix everything :).

The "import os" error is one which I recall seeing discussed over on the superkaramba discussion boards, and is unrelated to SlickBar itself. I'd check that out first (go to netdragon.sourceforge.net and click on "discuss").

As for your PyKDE problems, I'm not sure. Did you install from source? These problems may be related to the os importing bug above.

Like I said, try the latest superkaramba and see what happens.

Report

soulrebel

17 years ago

i installed newest pykde pyxmms and superkaramba 0.32 now i get a LOT of lashing icons at the top left corner and this output:
linux:~ # superkaramba /home/hannes/slickbar-0.9.1/slickbar.theme
superkaramba: TaskManager::TaskManager()
WARNING: Could not load PyKDE. TaskPanel will not run without it. It is available at: http://www.riverbankcomputing.co.uk/pykde/download.php
Traceback (most recent call last):
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/__init__.py", line 36, in isPanel
return hasattr(__import__("SlickBar.Panels." + name, globals(), locals(), [name]), "__PanelInfo__")
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/TaskPanel.py", line 17, in ?
from kdecore import KIconLoader, KIcon, KWin
ImportError: No module named kdecore
WARNING: Could not load panel 'TaskPanel'. This will not affect the rest of SlickBar.
WARNING: Could not load PyKDE. PagerPanel will not run without it. It is available at: http://www.riverbankcomputing.co.uk/pykde/download.php
Traceback (most recent call last):
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/__init__.py", line 36, in isPanel
return hasattr(__import__("SlickBar.Panels." + name, globals(), locals(), [name]), "__PanelInfo__")
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/PagerPanel.py", line 18, in ?
from kdecore import KWin
ImportError: No module named kdecore
WARNING: Could not load panel 'PagerPanel'. This will not affect the rest of SlickBar.
WARNING: Could not load PyXMMS. XMMSPanel will not run without it. It is available at: http://www.via.ecp.fr/~flo/
Traceback (most recent call last):
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/__init__.py", line 36, in isPanel
return hasattr(__import__("SlickBar.Panels." + name, globals(), locals(), [name]), "__PanelInfo__")
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/XMMSPanel.py", line 15, in ?
import xmms
ImportError: No module named xmms
WARNING: Could not load panel 'XMMSPanel'. This will not affect the rest of SlickBar.
WARNING: Could not load PyKDE. QuickLaunchPanel will not run without it. It is available at: http://www.riverbankcomputing.co.uk/pykde/download.php
Traceback (most recent call last):
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/__init__.py", line 36, in isPanel
return hasattr(__import__("SlickBar.Panels." + name, globals(), locals(), [name]), "__PanelInfo__")
File "/home/hannes/slickbar-0.9.1/SlickBar/Panels/QuickLaunchPanel.py", line 21, in ?
from kdecore import KIconLoader, KIcon, KDesktopFile
ImportError: No module named kdecore
WARNING: Could not load panel 'QuickLaunchPanel'. This will not affect the rest of SlickBar.
WARNING: Could not load PyKDE. The SysTrayPanel will not be able to auto-resize without it. However, it will still run.

Report

bluephile

17 years ago

I really like this theme you've done; it's quite powerful. However, I have one complaint: it uses about 30% cpu on my 2 GHz Athlon--continuously! Please let me know if there's something I can do to reduce this dent in my system resources. Thanks.

Report

C

optikSmoke

17 years ago

I'll take a guess and say you're using Noatun, right? One of the problems at the moment is that the only way I have been able to obtain current information on noatun is through continuously making DCOP calls, which take a good chuck of CPU. This should go down slightly if you turn your music off (or remove the NoatunPanel). I hate to say it, but the only other option I can provide at the moment is to use XMMS and the XMMSPanel. It's calls are much less expensive (for eg I use XMMS and SlickBar hovers around 15% CPU on my Duron 900). If you are already using XMMS, I'm at a loss to explain it :).

Never fear though :) I have been doing little optimizations here and there throughout development, but I will be looking at some more drastic measures soon. Frankly, I am also annoyed at the CPU usage of SlickBar.

Report

bluephile

17 years ago

I took off Noatun and that helped a lot.

Unfortunately, I'm still having a lot of trouble with this theme. Let me know what I can provide to be more specific, but it crashes all the time. I get the dialog about SIGSEV, etc, or sometimes python catches some error. The errors seem totally erratic and not at all reproducable.

The pager doesn't work at all for me. The first time I ran it, I saw the buttons, but I haven't since. The panel is there in the configurator, and I see the blank panel on the actual bar, but no buttons. Clicking on it changes the desktop, but it isn't very easy to use ;).

Also, one nice thing about the kicker is that you can change desktops, quickly start programs, switch tasks, etc. without minimizing your window, and it takes a minimal bite out of your screen realestate. This problem exists with pretty much all of the themes that take over some/all of kicker's duties. I really, really like SlickBar, but I guess I'm not sure how to use it as productively as I could.

Thank you very much for your time and effort!

Report

C

optikSmoke

17 years ago

First, the minmizing stuff.... (beacuse thats easier :) ). You have to manually edit slickbar.theme and add TOPBAR=TRUE to the KARAMBA line. This will make slickbar a part of the "reserved" screen real estate so apps dont maximize over it. You can add ONTOP=TRUE as well to make it always-on-top.

As for the crashes.... hmmm. The next time it crashes, send me your slickbar.log before you open slickbar again. It should contain all the output for tracking python errros. Segfaults and such, unfortunately are more likely related to PyKDE or superkaramba (even more likely: using PyKDE on superkaramba) and aren't something I can spend the time looking into just yet.

Hope that helps (at least somewhat).

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