
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
Plasmoid providing fancy visualization of tasks, launchers and jobs for those who need full power of task manager and fresh look.
Developed and tested on KDE 4.8 with Qt 4.8 (Kubuntu 12.04).
Some screen casts:
http://www.youtube.com/watch?v=n5i2S1xCKPk
http://www.youtube.com/watch?v=Wj4W6cqycl8
http://www.youtube.com/watch?v=zfqtnncLNcQ
Milestone 1.1 (current) will be last one using libtaskamanager and hopefully will be soon replaced by currently developed data engine based version (which should lower requirements back to KDE 4.6 or maybe earlier, depending on which one shipped first functional version of tasks data engine).
Milestone 2.0 will bring new dock management library which will allow for more advanced features. There will be also new, QML based, applet interface (might be available earlier, depends on progress on library).
Note that included panel was made only for test and could make various problems, use it on your own risk (I'll focus on it later).
This applet uses standard libtaskmanager like other task managers in KDE, so before you report bug check if it also happens in other applets (for example default Tasks applet).
Tips:
- to make applet more usable you can put it on panel with enabled option "Windows can cover" or similar;
- you can use theme with panel background similar to that of dock (for example Sabre Tiger) or modify current one using Desktop Theme Details;
- you can add launchers to applet by drag and drop of URLs and desktop files when Plasma is unlocked or using configuration dialog;
- to show only launchers you need to remove tasks area item from arrangement;
- to show application jobs you need to add jobs area.
Hidden options:
You can set them in applets configuration file (usually located at ~/.kde4/share/config/plasma-desktop-appletsrc), in group containing line plugin=fancytasks or plugin=fancypanel;
- initialZoomLevel - initial zoom level for zoom move animations (value ranging from 0 to 1, default: 0.7);
- paintBackground - decides if background should be painted or not (true or false, default: true);
- paintReflections - decides if icon reflection should be painted or not, note that it won't change icon size because of space allocation for drawing task indicators (true or false, default: true).
Features:
- manages your tasks, launchers and application jobs;
- tasks filtering, grouping (including manual) and sorting;
- keyboard navigation (Tab and Shift+Tab);
- launcher to task transition with custom connecting rules (icons of launchers with running tasks are hidden if sorting other than manual is enabled);
- tool tips with live preview of windows when KWin Taskbar Thumbnail effect is enabled;
- highlighting windows when hovering cursor over task or window preview when KWin Highlight Window effect is enabled;
- dropping files on launchers runs command with parameters or gives option to move, copy or link them (if target is directory);
- visual drop indicator that helps in manual tasks sorting and rearranging launchers;
- possibility to browse directories of directory launchers using context menu;
- possibility to add application menus;
- menu with list of all icons shown after activating keyboard shortcut;
- configurable animations (zoom, jump, bounce, highlight, etc.) and appearance (optional thumbnails and text label);
- fully animated icons (including animations of starting applications, tasks needing attention and application jobs progress).
If you have found bugs or have suggestions you can contact me via email, message or using comments, before you will vote bad.
And remember that not everybody has enough time for fast replying. ;-)
Don't be silly, don't vote bad just for fun!
8 years ago
1.1.2 (10.06.2012):
- increased task light size a bit;
- fixed label position for zoom animation;
- avoid hijacking of icons with launcher connected to task group (if grouping by program);
- clear thumbnail when launcher looses connected task.
1.1.1 (01.06.2012):
- reuse launcher icons by tasks also when using manual sorting;
- let startups connect to launcher icons (when there is no sorting or it set to manual);
- do not lose connection with launcher when group is created (if grouping by program);
- enable Apply button when configuration values are changed;
- do not propose to drop icon in place which equals its current index;
- enable Add / Remove action buttons;
- many other fixes and changes.
8 years ago
1.1.2 (10.06.2012):
- increased task light size a bit;
- fixed label position for zoom animation;
- avoid hijacking of icons with launcher connected to task group (if grouping by program);
- clear thumbnail when launcher looses connected task.
1.1.1 (01.06.2012):
- reuse launcher icons by tasks also when using manual sorting;
- let startups connect to launcher icons (when there is no sorting or it set to manual);
- do not lose connection with launcher when group is created (if grouping by program);
- enable Apply button when configuration values are changed;
- do not propose to drop icon in place which equals its current index;
- enable Add / Remove action buttons;
- many other fixes and changes.
Emdek
11 years ago
That's known problem.
I've tried to fix it some times but I still don't know from where comes that strange margin.
I'll probably ask Plasma developers as it uses panel class developed by them.
But I can't guarantee that it will be fixed for 1.0, panel is still experimental addon only.
Report
mnurolcay
11 years ago
fancytasks-0.9.9/applet/FancyTasksIcon.cpp:52:32: error: Plasma/WindowEffects: No such file or directory
Report
Emdek
11 years ago
It's strange, I and testers compiled it on 4.3 which for sure has no header with this name (introduced in 4.4) and compiler did not complain...
Report
mnurolcay
11 years ago
Report
gravy
11 years ago
For everything else, it's a great widget!
Report
Emdek
11 years ago
You mean that it behaves like this when using it as panel or applet on desktop?
I'll probably start working on version optimized for KDE 4.4 during Christmas (now I'm still busy with working on my thesis...) and it will be probably based on current code with fixes with sits on my hard disc for long time (I need some time to fix important regression with task light painting) and it will use only native tool tips (most of needed changes were done in kdelibs now). After that I'll finish new task management library and create new interface using new technologies available in new Qt and KDE versions.
Stay tuned. ;-)
Report
szponzor
11 years ago
I really like this dock,but where can i get themes for this?
Report
Emdek
11 years ago
It uses standard Plasma background format so you can try to use every SVG compatible with this specification:
http://techbase.kde.org/Projects/Plasma/Theme#Backgrounds_format
Report
szponzor
11 years ago
Report
dsfitzpat
11 years ago
I noticed (as one or two other people mentioned I think) that my config settings weren't being saved - the panel returned to the default every time I logged in.
I checked the file .kde/share/config/plasma-desktop-appletsrc and found my setting there, but noticed that the old settings were there too - instead of over-writing, it makes a new configuration entry with a different number every time the config is changed - and it loads the oldest of these on login. Deleting the old entries seems to have fixed the problem - I now get my custom settings.
Report
Emdek
11 years ago
This is strange issue, I need to talk about this problem with Plasma developers, maybe they could help...
Report
gzmorell
11 years ago
I have noticed this closing krusader and also evolution.
Sometimes the application icon in the applet keeps bouncing after closing.
I am using Kubuntu 9.10 release. Fancytasks is version 0.9.8 and KDE 4.3.2
Is there any debug version of the package in order to include a better backtrace?
Include the backtrace:
-- Backtrace:
Application: Área de trabajo de Plasma (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb57ce700 (LWP 2023))]
Thread 2 (Thread 0xa50c0b70 (LWP 2024)):
#0 0xb77fe430 in __kernel_vsyscall ()
#1 0xb5f28e15 in [email protected]@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#2 0xb60ec78d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7601e67 in QWaitConditionPrivate::wait (this=0x99a2e50, mutex=0x99a2e4c,
time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4 QWaitCondition::wait (this=0x99a2e50, mutex=0x99a2e4c, time=4294967295) at
thread/qwaitcondition_unix.cpp:159
#5 0xb5e3a922 in QHostInfoAgent::run (this=0x99a2e40) at
kernel/qhostinfo.cpp:260
#6 0xb7600e32 in QThreadPrivate::start (arg=0x99a2e40) at
thread/qthread_unix.cpp:188
#7 0xb5f2480e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8 0xb60df7ee in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 1 (Thread 0xb57ce700 (LWP 2023)):
[KCrash Handler]
#6 QBasicAtomicInt::operator!= (this=0x975c368, [email protected],
[email protected], [email protected], [email protected]) at
/usr/include/qt4/QtCore/qbasicatomic.h:69
#7 QHash<QString, Plasma::FrameData*>::detach (this=0x975c368,
[email protected], [email protected], [email protected], [email protected]) at
/usr/include/qt4/QtCore/qhash.h:281
#8 QHash<QString, Plasma::FrameData*>::operator[] (this=0x975c368,
[email protected], [email protected], [email protected], [email protected]) at
/usr/include/qt4/QtCore/qhash.h:717
#9 Plasma::FrameSvg::getMargins (this=0x975c368, [email protected],
[email protected], [email protected], [email protected]) at
../../plasma/framesvg.cpp:240
#10 0xa8a5d362 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#11 0xa8a567b0 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#12 0xa8a56da5 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#13 0xb77013bf in QObject::event (this=0x97bc1b8, e=0x4) at
kernel/qobject.cpp:1075
#14 0xb69c3b64 in QGraphicsWidget::event (this=0x97bc1b8, event=0xbfb272a0) at
graphicsview/qgraphicswidget.cpp:1340
#15 0xb636af54 in QApplicationPrivate::notify_helper (this=0x8feffc0,
receiver=0x97bc1b8, e=0xbfb272a0) at kernel/qapplication.cpp:4056
#16 0xb637267c in QApplication::notify (this=0x8fc90c0, receiver=0x97bc1b8,
e=0xbfb272a0) at kernel/qapplication.cpp:3603
#17 0xb6dbabfa in KApplication::notify (this=0x8fc90c0, receiver=0x97bc1b8,
event=0xbfb272a0) at ../../kdeui/kernel/kapplication.cpp:302
#18 0xb76f16cb in QCoreApplication::notifyInternal (this=0x8fc90c0,
receiver=0x97bc1b8, event=0xbfb272a0) at kernel/qcoreapplication.cpp:610
#19 0xb771e7ce in QCoreApplication::sendEvent (this=0x8ff278c) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#20 QTimerInfoList::activateTimers (this=0x8ff278c) at
kernel/qeventdispatcher_unix.cpp:572
#21 0xb771c0e0 in timerSourceDispatch (source=0x8ff2758) at
kernel/qeventdispatcher_glib.cpp:165
#22 0xb5f70e78 in g_main_dispatch (context=0x8ff2090) at
/build/buildd/glib2.0-2.22.2/glib/gmain.c:1960
#23 IA__g_main_context_dispatch (context=0x8ff2090) at
/build/buildd/glib2.0-2.22.2/glib/gmain.c:2513
#24 0xb5f74720 in g_main_context_iterate (context=0x8ff2090, block=<value
optimized out>, dispatch=1, self=0x8fefac8) at
/build/buildd/glib2.0-2.22.2/glib/gmain.c:2591
#25 0xb5f74853 in IA__g_main_context_iteration (context=0x8ff2090, may_block=1)
at /build/buildd/glib2.0-2.22.2/glib/gmain.c:2654
#26 0xb771c02c in QEventDispatcherGlib::processEvents (this=0x8fefdb0,
flags=...) at kernel/qeventdispatcher_glib.cpp:327
#27 0xb640bbe5 in QGuiEventDispatcherGlib::processEvents (this=0x8fefdb0,
flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#28 0xb76efc79 in QEventLoop::processEvents (this=0xbfb27564, flags=) at
kernel/qeventloop.cpp:149
#29 0xb76f00ca in QEventLoop::exec (this=0xbfb27564, flags=...) at
kernel/qeventloop.cpp:201
#30 0xb76f253f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#31 0xb636add7 in QApplication::exec () at kernel/qapplication.cpp:3525
#32 0xb434480d in kdemain (argc=1, argv=0x8fa8ff0) at
../../../../plasma/shells/desktop/main.cpp:50
#33 0x0804dde1 in launch (argc=<value optimized out>, _name=<value optimized
out>, args=<value optimized out>, cwd=0x0, envc=0, envs=0x8f909e8 "",
reset_env=false, tty=0x0, avoid_loops=false,
startup_id_str=0x80511a5 "0") at ../../kinit/kinit.cpp:677
#34 0x0804ea35 in handle_launcher_request (sock=<value optimized out>,
who=<value optimized out>) at ../../kinit/kinit.cpp:1169
#35 0x0804eeac in handle_requests (waitForPid=<value optimized out>) at
../../kinit/kinit.cpp:1362
#36 0x0804fbaf in main (argc=2, argv=0xbfb27dc4, envp=0xbfb27dd0) at
../../kinit/kinit.cpp:1793
Report
Emdek
11 years ago
I'll try to find and fix reason when I'll return to home from boarding school at Friday.
I don't know if there is debug package it's a question for packagers. ;-)
Report
karma0321
11 years ago
that's why i want to help you turning it into a stable killer-app ;)
that's what i noticed: if you set no sort for icons and you have some launcher with a customized icon, as soon as that app gets minimized, or whatever other action, plasma starts crashing.
i tried it with amule and firefox with customized icons... no way! on the other side, with other apps/sorting settings it's perfectly working.
Hope it was useful and easy to fix :D
cheers!
Report
karma0321
11 years ago
and by the way, there's another bug i forgot to tell you: if you add A LOT of launchers (and tasks of course) and the panel gets wide enough to go over the screen width, it auto cuts itself into a higher and shorter panel that only shows the first 4 or 5 icons.. the way to resolve it (till now) is just to reduce the height of the whole panel... it would be a great thing a sort-of auto resizing of icons on a too long panel.
cheers!
Report
Emdek
11 years ago
Do you get dialog with crash information when it happens? If it contains valid backtrace (you can paste it somewhere and put link in the comment) it could help in fixing it. But it will be done properly when I'll finish my libtaskmanager replacement which was designed to be used also in dock like managers (Fancy Tasks 2.0 will be based on it, when ready).
There is one problem with that issue with too big icons, applet needs to know that it has nor enough space (I'm not sure if it is possible to check it automatically). It could be done by specifying behaviour (static size or flexible with maximum and maybe minimum size). Also there are two ideas how it should behave then, one is smaller icons other is kind of scrolling interface (like in Raptor mockups or similar to new widget explorer).
Also these changes are planned for new milestone which will be started after releasing first stable version (I hope that it will be in this or next month, studies started again...) and will be available along updates for milestone 1.
Report
steveke
11 years ago
I have noticed that when a tooltip is clicked for an application that is grouped, and these windows are behind (unfocused), the window that is clicked in the tooltip is minimised rather that being raised - is that expected behaviour? Only it seems to me that the first click should raise the window and the second minimise it once raised.
As always, thanks for your attention and to let you know that I have become extremely dependent on the Fancy Panel now ;-)
Report
Emdek
11 years ago
This is not intended.
I'll try to reproduce it, find reason and of course fix it or at least workaround.
Report
FSchulz
11 years ago
Report
FSchulz
11 years ago
Best regards!
Report
Emdek
11 years ago
This is known issue, in my case Plasma often mixes settings for panels, for example autohide setting for Fancy Panel is applied to another one, the same for placement...
I'll try to find reason but probably these all issues come from one reason, nobody else uses custom panel containments so that use case was not tested extensively and there are no examples (except default panel but it is used to contain multiple applets).
It would be better if there could be hidden option for panel to set custom background, then that whole custom panel wouldn't be needed, it's only benefit is that it gives possibility to use own background. ;-)
Report
FSchulz
11 years ago
Report
industrie13
11 years ago
one question: ist magnification planed for fancy tasks?
Report
Emdek
11 years ago
In general I'm thinking about adding new animations and improving current ones (especially when Kinetic will be finally available). And I'm thinking about system of plugins for adding animations, maybe I'll try to add this for next milestone.
Could you describe how magnification should look like? Is it similar to current zoom animation or something completely different?
Report
industrie13
11 years ago
yeah, i just mean the current zoom animantions, where you hover over an icon and it becomes bigger and the surrounding ones too, but these at a little bit smaller grade.
but if its already planned, I'll wait for this. nice. thanks and keep up ;)
Report