И потом, ну почему сразу в трее? может можно приложение "Window List", которое показывает минимизированные окна,
научить показывать прогресс-бары?
Или сделать отдельный апплет, а к нему сделать отдельную панель внизу.
или вообще сделать эту панель вертикальной.
Весь смысл панели, получается, заключается в том, что она фиксирована по отношению к другим окнам (Dock и Fill свойства),
а так она такое же окно, в котором можно организовывать интерфейс.
Ну возьми DockPanelSuite и сделай из него WindowManager на C#...
Если тебе так хочется доделать иконку в трее,
то тебе надо разобраться, как работает StatusNotifierItem (SNI, org.freedesktop.StatusNotifierItem)
это означает:
- прочитать спецификацию на него, понять все слова
- прочитать спецификацию на DBus
- научиться использовать библиотеку C# для DBus
- разобраться как сделан существующий C-код для работы с DBus (например в WorkRave)
- сделать правильную реализацию хоть как-нибудь
- сделать реализацию для System.Windows.Forms.NotifyIcon (от этого профиксится бага в программе KeePass)
--- как подзадача там будет - определять, что использовать XEmbed или DBus
(это зависит от того, какое DE используется и какие программы запущены)
как узнать, присутствует ли DBus вообще в системе в запущенном виде?
как узнать, запущено ли приложение, обрабатывающее StatusNotifierItem?
если нет, то запущен ли XEmbed (как fallback)
если нет, то как отложить задачу до ожидания его запуска