JWM Setup
JWM Setup
This is a quick guide to getting JWM installed and running. This guide is intend
ed as a high-level guide to getting started with JWM. See the JWM configuration
page for a comprehensive JWM configuration reference.
Installation
JWM is distributed in source form (available here), however, several distributio
ns make JWM available as a binary package. Note that pre-compiled versions of JW
M are often older than the newest version available here. To check the version o
f JWM, run "jwm -v" from a command line.
Assuming you are installing JWM from source, after downloading and expanding the
file, run the "configure" script.
./configure
The configure script will configure JWM for your system. By default, it will ena
ble all options provided it can find the appropriate libraries. You may need to
install the "development headers" for some libraries to compile JWM. Simply re-r
un the configure script after installing any necessary packages. If you are miss
ing a necessary library, the configure script will either fail (if the library i
s required) or tell you that some feature is disabled. JWM is installed to "/usr
/local/bin" by default. The prefix where JWM is installed ("/usr/local" by defau
lt) can be changed using the configure script if desired using the "--prefix" op
tion. Run "./configure --help" to display the available configuration options.
After successfully running configure, compile JWM by running "make". Once JWM is
compiled, you can install it by running "make install" as root ("sudo make inst
all").
Starting JWM
The preferred method for starting JWM varies depending on distribution and the d
isplay manager used to login. A common approach is to add the following line to
either "$HOME/.xsession" or "$HOME/.Xinitrc":
exec /usr/local/bin/jwm
This will typically cause JWM to load immediately when X starts (if you are not
using a login manager) or when the "user-defined" login is selected.
Configuration
JWM is configured via an XML configuration file. By default, this file is locate
d in "/usr/local/etc/system.jwmrc". To customize JWM, copy this file to "$HOME/.
jwmrc" and then modify it using your favorite text editor. Although somewhat ver
bose, XML (which looks much like HTML) provides a convenient way to represent hi
erarchical configuration, such as menus. In addition, XML fairly easy to edit ei
ther by hand or programmatically.
Some distributions divide up the JWM configuration file into multiple files. Fur
ther, at least on distribution, Puppy Linux, provides tools to modify the JWM co
nfiguration though a graphical interface.
The rest of this document will describe how the various sections of the JWM conf
iguration file work. Note that the order of the sections in the configuration fi
le is not important. However, it is possible to override settings by specifying
them multiple times, in which case the last setting will be used.
Within the JWM configuration file, the top-most "tag" must be JWM.
thing that starts with a "<" and ends with a ">". All tags must be
s means that there is either an end tag (a tag starting with "</")
or the tag is an "empty-element" tag, meaning it ends with a "/>".
A tag is the
"closed", thi
following it
All configura
re you must click the window to give it focus. To change the focus model, modify
the FocusModel setting.
Desktops
The number of desktops is controlled by the Desktops tag. The width attribute de
termines how many desktops are available horizontally and the height attribute d
etermines how many desktops are available vertically.
In the Desktops section it is possible to specify a background for all desktops
or each individually. Further, it is possible to set names for each desktop.
Groups
JWM allows one to customize the behavior of windows based upon their name or "cl
ass". This is controlled via "groups". You can have as many groups as you want.
Each group is introduced by the Group tag.