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

Thanks :)

The font problem might be solvable now -- try playing with the options in the new version's (0.9) config GUI. It looks like you should probably just reduce the font size.

The new version also includes a system tray ;)

As for the ontop thing... I've had a few requests for it. You can do it manually by adding TOPBAR=TRUE to the "KARAMBA" line in slickbar.theme. I'm not sure I like how that's implemented though, so I'm not going to provide an "official" option just yet.

Report

RedNalie

17 years ago

You 0wn! :P

Everything works like a charm over here, so I can finally dump everything in the original KDE-taskbar :P

[quote]
please check the TODO section before you ask for it
[/quote]

Is this a *subtle* hint ;)

God this thing 0wns :P

Report

RedNalie

17 years ago

Note to self:
Look @ TO-DO list on people's webpages before asking for a featuren >.

Report

maranik

17 years ago

How can i disable grouping tasks in TaskPanel?

Thanks

Report

C

optikSmoke

17 years ago

At the moment, this is not possible without modifying the code. However, I designed my task code to be pretty flexible, so I should be able to add that feature pretty quickly, depending on what else I am working on (within the next 2 releases... I'm kinda busy, :) ).

Report

maranik

17 years ago

Thanks for you answer optikSmoke. I'll wait this feature.
Thank you

Report

beeeeef

17 years ago

i know this really isn't the place, but I'm wondering if anyone got PyKDE installed on Mandrake 9.1

both sip and pyqt installed without error, but when i try to run build.py for PyKDE, I get

Error: Couldn't import qt module from PyQt -- from line 720 in build.py

is there a specific option for building PyQT?

Report

C

optikSmoke

17 years ago

Indeed, Mandrake's qt packages are broken, and this is the problem. You can download and install the fixed packages from here: http://mechanicalcat.net/tech/qt-NKR/

Then, PyQt and PyKDE should compile properly (you should probably recompile PyQt after you update your qt libraries)

Report

muttox

17 years ago

ok ive run the rpms and this is what i get on all of them

[[email protected] qt3fix]# rpm -Uvh --force *.rpm
error: failed dependencies:
libGLcore.so.1 is needed by libqt3-3.1.1-13mdkNKR
libGLcore.so.1 is needed by libqt3-common-3.1.1-13mdkNKR
libGLcore.so.1 is needed by libqt3-devel-3.1.1-13mdkNKR
libGLcore.so.1 is needed by libqt3-mysql-3.1.1-13mdkNKR
libGLcore.so.1 is needed by libqt3-odbc-3.1.1-13mdkNKR
libGLcore.so.1 is needed by libqt3-psql-3.1.1-13mdkNKR
libpq.so.3 is needed by libqt3-psql-3.1.1-13mdkNKR

anyone else come across this prblem? --force seems to have no effect for me in making them compile .. the rpms i installed from sourceforge for pyKDE pyQT adn sip went fine but slickbar continued to not recognise it

Report

C

optikSmoke

17 years ago

--force is not the appropriate flag for this problem, try --nodeps. The problem itself is just related to some video drivers, if you don't have them it doesn't matter so installing the packages with --nodeps should be fine.

If it still doesn't work, you may have to recompile PyQt and/or PyKDE. Try running the example files in /usr/share/doc/PyQt-3.7 (for PyQt) and
/usr/share/doc/PyKDE/examples//examples3/ (for PyKDE) to make sure both of them are working properly.

Report

beeeeef

17 years ago

thanks for the help...

PyQt & PyKDE installed fine... but I updated Python to 2.3 and now that seems to be giving me problems :P

Report

C

optikSmoke

17 years ago

Heh... did you update python before building PyKDE/PyQt? You may have to rebuild them.

Or, you might not have installed python 2.3 with all the necessary modules (the xml module, for eg, is neeeded)...

If you need help post any error messages you get and I'll see what I can do.

Report

puregore

17 years ago

This continues to not work for me, after countless attempts. I have PyQt, PyKDE and PyXML installed (as well as Karamba 0.31, duh). This is the result using only the default settings, and after installing the included font:
http://www.projectpontiac.com/tmp/snapshot4.png
Nothing other than the clock and calendar show up. I've gone through the xml config file a thousand times, but it still won't work. Not sure what I'm doing wrong... am I missing some package that isn't mentioned anywhere?

Report

C

optikSmoke

17 years ago

It doesn't seem like you are missing any packages. Send me the output from when you run it from an xterm or konsole, that will help determine the problem.

Also, read the reply I posted to anderruiz, above, it might help diagnose the problem.

Report

puregore

17 years ago

Looks like it's a bug in the PyKDE package in Gentoo. The PyKDE package goes through the whole compilation, but the installation fails and all that ends up getting installed is the documentation. I've fixed the problem and should be golden as soon as PyKDE finishes compiling (sooooo sloooowwww)...

Report

anderruiz

17 years ago

I have the same problem on RedHat 9 with PyKDE 3.7 installed, but when I ran the theme with superkaramba it displays the text:

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 "SlickBar/Panels/__init__.py", line 27, in isPanel
return hasattr(__import__("SlickBar.Panels." + name, globals(), locals(), [name]), "__PanelInfo__")
File "SlickBar/Panels/QuickLaunchPanel.py", line 19, in ?
from qt import QString
ImportError: cannot import name QString

The same think happens with PyXMMS, any ideas??

Ander

Report

C

optikSmoke

17 years ago

Interesting.... this is a PyQt/PyKDE problem I have not seen before.

First, make sure the PyQt and PyKDE examples work. They are in the source package, or if it is installed they will probably be somewhere like /usr/share/doc/PyQt-3.7/examples3/ and /usr/share/doc/PyKDE/examples/. Just try one of the scripts in those directories, and make sure they run. If they don't, than your PyQt or PyKDE installations are not working properly.

As for the XMMSPanel problem -- that isn't related to PyKDE. Do you have PyXMMS installed? Also: What is the error message XMMSPanel gives when it fails -- that could be useful in determining why it doesn't work.

Report

anderruiz

17 years ago

I remove those rpms and I have installed PyQt 3.6 and PYKDE and finally it works!!. Great Theme!!

Ander

Report

pennac

17 years ago

Nice Karamba theme. Its now replace the taskbar from kicker on my system.

But i had to fix a small glitch in the Taskbar panel. The problem occurs when user switchs desktop and you try to adjust the lenght of the taskbar based on the lenght of the taskGroups, a division by zero occurs if no task already exists on this desktop (which is to happen often)

The line in the TaskPanel.py is #296. You can quickly resolve the issue by adding a simple if condition.

if len(self.taskGroups) != 0:
self.taskWidth = self.width/len(self.taskGroups)
currentX = self.x

Thanks for the great work optikSmoke.

Report

C

optikSmoke

17 years ago

Thanks. I never noticed the problem, I always have a couple of windows in sticky mode :)

Report

kappy

17 years ago

Hi...

When I start slickbar with the taskbar (no apps loaded) the slick bar looks very fuzzy: no background, no icons, etc...

When I load it with, for example, with a console opened, It looks great.

Is this a bug?

screenshots will be posted soon if needed

Report

kappy

17 years ago

Here are the sreenshots i've promissed..
http://acydburne.com.pt/slick/noapps.jpg
http://acydburne.com.pt/slick/apps.jpg

The first is loaded with no apps.
The second is loaded with apps and looks normal.

Report

C

optikSmoke

17 years ago

Hmmm.... this is very odd. Presumably, this is caused by a crash in the TaskBar code.... likely it isn't happy that you have no apps open. If so, it should be easy for me to reproduce and fix.

Just to be sure, try removing the taskbar from your configuration (temporarily, of course :) and see if it the bug still happens.

Report

badkid960

17 years ago

My Mouse doesn't have the middle-click-key.How can I load the configure?

Report

C

optikSmoke

17 years ago

Pressing both the left and right mouse buttons at the same time is usually set to act like the middle mouse button.

Or, you can simply open up the file slickbar-config.xml in the slickbar directory using your favourite text editor :).

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 2