use-strict.de

Using dockapps with IceWM

IceWM doesn't provide a dockapp-container like Fluxbox ("Slit") or Blackbox. So it's not possible to just run a dockable application, wmcpuload for example, and see it appear -- sticky and without window decoration -- in a defined region of the desktop reserved for dockapps automatically.

However, IceWM provides a sophisticated method to set windowmanager options on an application basis, the winoptions file located in ~/.icewm/. The file's syntax is very easy to understand and provides all functionallity necessary to let your dockapps fit perfectly on your desktop.

To accomplish this goal, just start a dockapp application and see it appear windowed somewhere on your desktop. Now, open a terminal, start xprop and click on the dockapp. You should see something like this:

alex@ekorn:~$ xprop
_ICEWM_TRAY(CARDINAL) = 0
_WIN_LAYER(CARDINAL) = 4
_NET_WM_DESKTOP(CARDINAL) = 0
_WIN_WORKSPACE(CARDINAL) = 0
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_STATE(ATOM) =
_WIN_STATE(CARDINAL) = 0, 63
WM_COMMAND(STRING) = { "wmcpuload", "-bw" }
WM_NAME(STRING) = "wmcpuload"
WM_HINTS(WM_HINTS):
Initial state is Don't Care State.
window id # to use for icon: 0x2200001
window id # of group leader: 0x2200002
WM_CLASS(STRING) = "wmcpuload", "DockApp"

The most important line is the last one: the WM_CLASS string. It contains the name of the application first, followed by its class.

Now, open ~/.icewm/winoptions in an editor and set up the desired properties for the dockapp:

wmcpuload.DockApp.allWorkspaces: 1
wmcpuload.DockApp.ignoreTaskBar: 1
wmcpuload.DockApp.ignoreQuickSwitch: 1
wmcpuload.DockApp.ignoreWinList: 1
wmcpuload.DockApp.layer: Dock
wmcpuload.DockApp.dTitleBar: 0
wmcpuload.DockApp.dBorder: 0
wmcpuload.DockApp.geometry: 64x64+958+128

To let the application stay on top of other windows, set the doNotCover option to 1.

IceWM will now place the dockapp at the defined place, hide the titlebar, hide the window's border and will not show the application in the quickswitch window. More options can be found in the "Window Options"-section of the IceWM manual as well as a more detailed introduction to how window options work.

Just to mention: There is an application around, which implements a complete dockable region for IceWM by emulating blackbox's slit -- it's called icedock.