Mwm
Mwm is the Motif Window Manager(the default Athena window manager),
which is very popular and widespread. It is maintained by the Open Group,
and is distributed with the Motif programming libraries (Motif is more
than just a window manager; in fact, that is the least of what Motif is
- it is a set of programming libraries).
The Motif libraries and the Motif window manager binaries are distributed
with a few commercial X implementations as the default window manager;
however, the it is generally purchased from a third-party vendor, especially
for free-ware operating systems such as Linux and FreeBSD. Motif costs
around $100 US. (Less-tif is a free-ware implementation of Motif 1.2 for
those without the extra cash.)
has a configuration file,
.mwmrc, but this is mainly to describe the menus and bindings - it draws
most of it's customization from X Resources.
Here are some resource examples specifically for mwm. I suggest creating
a separate file called .MWMDefaults to hold MWM-specific resources and
then put #include ".MWMDefaults" in your .Xresources file, because there
can be a lot of mwm entries.
When starts, it loads
resources from the following sources in order (i.e. later sources override
earlier sources):
specific configuration
is carried out by ~/.mwmrc. Inside, menus, icons, and key bindings can
be defined. If ~/.mwmrc
does not exist, the file /usr/lib/X11/system.mwmrc is used instead.
A convenient way to personalize your configuration is to
copy the system default file and then edit it to your liking.
uses fontList as opposed
to font.
Mwm*fontList: -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
has built in support for pixmaps
decorations on the titlebars, borders, menus, and just about everything
else. This can be done on a global and a per-client basis, following
a Mwm*ClientName*backgroundPixmap: <filename> pattern:
Mwm*backgroundPixmap: /usr/local/include/X11/pixmaps/Textures/wh_marble_4.xpm
Differing pixmaps can be defined for if a window is active as well, and
bottom and top "shadow" pixmap definitions exist as well:
Mwm*activeBackgroundPixmap: /usr/local/include/X11/pixmaps/Textures/wh_marble_3.xpm
Mwm*bottomShadowPixmap: /usr/local/include/X11/pixmaps/Textures/wh_marble_0.xpm
Mwm*topShadowPixmap: /usr/local/include/X11/pixmaps/Textures/wh_marble_2.xpm
These are set to colors that are on or near the color values of the pixmaps
used, if any, so as to match better. If you aren't using pixmaps, these
values are going to be the colors used for the window borders and titles.
Mwm*foreground:
#000000
Mwm*background:
#555555
Mwm*activeBackground: #929292
*rootMenu defines the name of the menu to use for the background menu that
appears when the root window is clicked. The root menu's actual contents
will be defined in the .mwmrc file.
Mwm*rootMenu:
DefaultRootMenu
useIconBox defines that a container should be used to hold icons in. The
icons "shade" if visible, and are "full color" if minimized.
This defines whether or not titlebars and/or window borders will be visible.
This is done on a per-client basis, using a Mwm*ClientName*ClientDecoration:
<value> format, like so:
Mwm*XBiff*ClientDecoration:
none
Mwm*Xman*ClientDecoration:
border
Icon images are specified as resources in the form of Mwm*ClientName*IconImage:
<filename>, like so:
Mwm*emacs*IconImage: /usr/local/include/X11/pixmaps/DoomGremlin.xpm
Mwm*XTerm*IconImage: /usr/local/include/X11/pixmaps/katana_white.xpm
Here are some examples from the .mwmrc file. Menus follow a format similar
to twm at first glance, but there are some "gotchas" if you try to port
your .twmrc file over without some modifications.
Menus are most of what is defined in this file are menus, both the root
menu and the window operations menus. Keyboard accelerators are defined
in the menu specifications; these are generally much like the old Windows
3.1 style.
Menu definition follows this format:
Menu MenuName
{
"Menu
Title String" f.title
"Identifier
String" f.function
}
The more common functions used in menus are:
Defines the Identifier string as the menu's title.
Draws a line across the menu that acts as a "separator."
f.exec executable string.
Defines an executable string that will be run by the window manager, such
as a program or script.
This is followed by a string that identifies another menu that is shown
when this item is selected.
Restarts .
Exits the Window Manager.
This is an example root menu, the name of which is defined in resources.
Menu DefaultRootMenu
{
"Stigmata"
f.title
no_label
f.separator
"Shell
Window" f.exec xterm &
"Netscape"
f.exec netscape &
"Lock
Screen" f.exec xlock -nice 0 -mode pipes -batchcount 2
"Screen
Save" f.exec xlock -nolock -nice 0 -mode pipes -batchcount
2
"Backgrounds"
f.menu "Backgrounds"
"Restart"
f.restart
"Quit..."
f.quit_mwm
}
Comments are indicated with exclamation points:
It would probably be a good idea to leave any window key acceleration menus
alone. |