Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How would a system tray application be accomplished on other platforms?

Windows has the "system tray" that houses the clock and alway-running services like MSN, Steam, etc.

I'd like to develop a wxPython tray application but I'm wondering how well this will port to other platforms. What is the tray equivalent on each platform, and how much manual work would be required to support Windows, OSX and Linux (which shells in particular would be friendliest).

like image 795
Soviut Avatar asked Jan 07 '09 05:01

Soviut


3 Answers

wx is a cross-platform GUI and tools library that supports Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more. And if you use it's classes then your application should work on all these platforms. For system tray look at wxTaskBarIcon (http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html#wxtaskbaricon).

like image 99
kovica Avatar answered Sep 21 '22 08:09

kovica


Under OS X you have the Status Menu bar - the right-most items are often status-related things (like battery status, WiFi connections, etc).

Try searching for NSStatusBar and NSMenuExtra. It's almost trivial to turn an application into one that has an NSStatusBar menu and doesn't appear in the Dock. There are tutorials around on how to do it.

like image 31
Matthew Schinckel Avatar answered Sep 24 '22 08:09

Matthew Schinckel


For many Linux desktop systems (Gnome, KDE, etc.) a Freedesktop's SysTray Protocol is implemented. You can try that if any other solution fails.

like image 32
Marcin Gil Avatar answered Sep 23 '22 08:09

Marcin Gil