wmsystemtray - A freedesktop.org system tray as a Window Maker dock app
wmsystemtray is a system tray using the freedesktop.org system tray
protocol designed as a Window Maker dock app. It has the ability to
display more than one dock window to make room for more tray icons, and
the ability to scroll through the icons if more are present than will
-display <display name>
Name of display to use.
--help Display usage information.
Display the version number and exit.
Print more messages to the console. May be repeated.
Print fewer messages to the console. May be repeated.
Use 16x16 tray icons, instead of 24x24. In other words, fit 9
icons instead of 4 in one dock window.
-w <n>, --windows <n>
Specifies the number of dock windows to open. Each dock window
is assigned a unique name (i.e. the first is
wmsystemtray.wmsystemtray0, the second
wmsystemtray.wmsystemtray1, and so on), so they can be reliably
positioned in the dock or clip.
Print the window's index number on the window, to make it easier
to dock them in the right order. Note that if there are enough
tray icons active, this number may be covered up.
Normally the first dock window is completely filled before any
tray icons are placed in the second. This option fills the top
row of each dock window before placing any icons in the second
row, which may make more sense if you arrange the dock windows
Normally, every dock window has both left and right scrolling
arrows at the bottom. Specifying --arrows horizontal places the
left arrow only on the first window and the right arrow only on
the last, which may make more sense if the windows are arranged
horizontally. --arrows vertical places the arrows only on the
last window, which may make more sense if the windows are
-c <color>, --fgcolor <color>
Specify a color for the page indicator and --id-windows
indicators, instead of black. Colors may be specified in any
format recognized by XParseColor In short, that's any color name
in X's rgb.txt or an RGB color specified as "rgb:rr/gg/gg".
In non-Window Maker mode, specify the color for the window
background. The default is to shape the window to fit the used
area and to set ParentRelative, which attempts to copy whatever
is behind the window.
Activate non-Window Maker mode. This provides limited support
for using the program in window managers that don't do Window
Maker-style dockapps; the application still sizes itself as a
64x64 window, however, so you might be better served by a more
traditional system tray.
The main portion of the dockapp has room for four 24x24 or nine 16x16
tray icons. At the bottom are left and right arrows for paging when
more tray icons are available than can be displayed at once, with an
indicator between showing the current "page" of icons and total number
of pages currently available.
In addition to left-clicking either scrolling arrows, the mouse's
scroll wheel may be used on the bottom section to change pages.
SIGUSR1 and SIGUSR2 may be used to change pages. A program such as
xbindkeys may be used to send these signals to wmsystemtray on
appropriate key presses.
The balloon message portion of the freedesktop.org protocol is not
implemented at this time. I've heard that the official Gnome system
tray doesn't implement this either, and most tray apps seem to directly
use dbus desktop notifications service.
Most of the Xembed specification is not implemented, as it is not
needed here. For example, the only point to redirecting input focus is
to allow the outer window to see input events (and then the outer
window has to forward those events to the embeds). But since we don't
really care, we can just let the icons get events directly. Similarly,
we don't take focus or activation, and we don't do accellerators.
freedesktop.org System Tray Protocol Specification
freedesktop.org XEmbed Protocol Specification
wmsystemtray was written by Brad Jorsch <firstname.lastname@example.org>.
Email regarding wmsystemtray should be sent to
When I finally decided to make use of some applications that work via
system tray icons, I looked around for a tray for my preferred window
manager. Some didn't integrate well (I didn't want a bar at the top or
bottom of the screen), some dockapps couldn't handle more than 4 icons
at all, some could do 4 icons with paging (and much crashing if any
program was killed), some could do more than 4 icons by creating
arbitrary numbers of app icons (but undockable, because they were
created "as needed"). So I decided to write my own, combining the best
features into a stable app.
July 21, 2014 wmsystemtray(1)