A [[windowmanagers window manager]] is an application that manages windows: it lets you open, close, maximize and minimize windows. The **window manager** draws the window borders and captions.
In order to keep Puppy small in size and retain functionality, Puppy uses a lightweight **window manager** called [[JWM]] (**J**oe's **W**indow **M**anager), which also manages a //panel// on the bottom of the screen. Some versions of Puppy contain other **window managers**, such as [[http://www.icewm.org IceWM]], [[http://www.fluxbox.org Fluxbox]] or [[http://www.openbox.org Openbox]].
**JWM** has many useful functions.
== Workspaces ==
JWM lets you use multiple **workspaces**; they're like multiple screens. Each window can appear in one or more **workspace**. This way, you can use many more applications at the same time or sort running applications to work more efficiently.
Thumbnails of them can be seen on the //panel//.
Each rectangular shape in a thumbnail represents a window. In my case, I have a big **SeaMonkey** window, that is the dark gray rectangle: it's the active window. All other rectangles represent other windows on my screen. On my second **workspace**, I have only one small window.
To switch to another **workspace**, click its thumbnail on the panel, or scroll with your mouse wheel while the mouse pointer is on the [[the_desktop|desktop]].
== Launch Buttons ==
Near the **Menu** button, there are 2 buttons, by default: the first one minimizes all windows in the current workspace and the second one shows a list of [[mounting|mounted]] [[partitions|partitions]].
== Layers ==
JWM lets you change a window's **layer**. For instance, let's say you're in an interesting conversation in **Ayttm** and you want the window to be always on top, so you can read what other people say to you while you're reading news in **SeaMonkey**.
In such cases, you can set a window to be always on top, which means it's always above other windows and cannot be hidden by them. Also, it is possible to change a window's **layer** to be always on bottom or to some number, so you can set window **layers** with multiple windows.
To set a window's **layer**, right-click its caption and go to "**Layer**". In this case, a console window is set to be always above all other windows.
To reset a window's **layer** back to the default behavior, select "**[Normal]**".
== JWM Settings ==
JWM has many settings you can mess with. They can be accessed through the "**JWM configuration**" menu item.
The **JWM Configuration Manager** lets you change various settings related to JWM.
* "**Tray management**" lets you manage the JWM //panel//, which is displayed on the bottom by default. You can change the number of workspaces, make the //panel// hidden and visible only when the mouse is on the screen bottom, change the //panel// height and more.
* "**Window focus model**" lets you change the way the active window is set. By default, it is set by clicking somewhere inside it, but this behavior can be changed to moving the mouse on the the window to make it active.
* "**Application launch buttons in tray**" lets you add, remove or edit launch buttons.
After altering the JWM settings, restart it to apply the changes by clicking the "**Yes**" button.
~[[http://puppy.b0x.me/wiki/doku.php?id=jwm JWM on Puppy bOx]]