Files
window-maker.github.io/docs/chap4.html

1272 lines
34 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Window Maker: User Guide - Configuration</title>
<meta charset="utf-8">
<link rel="stylesheet" href="/style.css" media="screen">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport"
content="width=device-width, minimumscale=1.0, maximum-scale=1.0">
</head>
<body>
<div id="wrapper">
<header>
<h1>
<a href="/">
<span class="first">Window</span><span class="second">Maker</span>
</a>
</h1>
</header>
<aside>
<nav class="menu">
<ul>
<li id="dock">
<a href="#"></a>
</li>
<li id="home" title="Home">
<a href="/">Home</a>
</li>
<li id="news" title="News">
<a href="/news">News</a>
</li>
<li id="docs" title="Documentation">
<a href="/docs">Documentation</a>
</li>
<li id="mail" title="Mailing lists">
<a href="/lists">Mailing</a>
</li>
<li id="devel" title="Development">
<a href="/dev">Development</a>
</li>
<li id="screenshots" title="Screenshots">
<a href="/screenshots">Screenshots</a>
</li>
<li id="themes" title="Themes">
<a href="/themes">Themes</a>
</li>
<li id="links" title="Links">
<a href="/links">Links</a>
</li>
</ul>
</nav>
</aside>
<article>
<div class="document" id="configuring-window-maker">
<h1 class="title">Configuring Window Maker</h1>
<div class="contents local topic" id="contents">
<ul class="simple">
<li>
<p><a class="reference internal" href="#the-defaults-system" id="id3">The Defaults System</a></p>
<ul>
<li><p><a class="reference internal" href="#property-list-file-format" id="id4">Property list File Format</a></p></li>
<li><p><a class="reference internal" href="#value-types" id="id5">Value Types</a></p></li>
<li><p><a class="reference internal" href="#preferences" id="id6">Preferences</a></p></li>
<li><p><a class="reference internal" href="#appearance-options" id="id7">Appearance Options</a></p></li>
<li><p><a class="reference internal" href="#keyboard-bindings" id="id8">Keyboard Bindings</a></p></li>
<li><p><a class="reference internal" href="#window-attributes" id="id9">Window Attributes</a></p></li>
<li><p><a class="reference internal" href="#applications-menu" id="id10">Applications Menu</a></p></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="the-defaults-system">
<h1>The Defaults System</h1>
<p>WindowMaker uses a defaults database for storing various information, like
configurations and other data that must be kept between sessions (like the list
of applications of a saved session). The defaults database is stored as
<em>property lists</em> in the $(HOME)/GNUstep/Defaults directory. Each file in the
$(HOME)/GNUstep/Defaults directory contains data that belongs to a specific
<em>domain</em>.</p>
<p>Any application can use the defaults database to store its information.
Generally an application will have one or more <em>domains</em> that belong to it.</p>
<div class="section" id="property-list-file-format">
<h2>Property list File Format</h2>
<p>The syntax of the property list is simple, but, if you need to change it
manually you must take care not to leave any syntax errors.</p>
<p>The EBNF for the property list is the following:</p>
<p><strong>Description of the syntax of a property list in the Bacchus Naur Form (BNF)</strong></p>
<pre class="code highlight literal-block"><code>&lt;object&gt; ::= &lt;string&gt; | &lt;data&gt; | &lt;array&gt; | &lt;dictionary&gt;
&lt;string&gt; ::= text with non-alphanumeric characters | alphanumeric text
&lt;array&gt; ::= `(' [ &lt;object&gt; { `,' &lt;object&gt; }* ] `)'
&lt;dictionary&gt; ::= `{' [ &lt;keyval_pair&gt; { `,' &lt;keyval_pair&gt; }* ] `}'
&lt;keyval_pair&gt; ::= &lt;string&gt; `=' &lt;object&gt; `;'</code></pre>
<p><strong>Example property list file</strong></p>
<pre class="code highlight literal-block"><code>{
"*" = {
Icon = "defaultAppIcon.xpm";
};
"xterm.XTerm" = {
Icon = "xterm.xpm";
};
xconsole = {
Omnipresent = YES;
NoTitlebar = YES;
KeepOnTop = NO;
};
}</code></pre>
<p>The property list above is a dictionary with 3 dictionaries inside. The first
is keyed by "*", the second by "XTerm.xterm" and the last by "xconsole".</p>
<p>Note that all strings that have non-alphabetic or numeric characters (like a
dot "." or the asterisk "*" are enclosed by double quotes. Strings with only
alphanumeric characters may or may not be enclosed in double quotes, as they
will not make any difference.</p>
<p>Here is another example:</p>
<pre class="code highlight literal-block"><code>{
FTitleBack = ( hgradient, gray, "#112233" );
}</code></pre>
<p>The property list in the example above contains an array with 3 elements with a
key named "FTitleBack".</p>
<p>Except for cases like file names and paths, all value strings are case
insensitive, i.e.: YES = Yes = yes = yEs.</p>
</div>
<div class="section" id="value-types">
<h2>Value Types</h2>
<p>Here is a description of some of the types of values that an option might have:</p>
<table>
<colgroup>
<col style="width: 29%">
<col style="width: 71%">
</colgroup>
<thead>
<tr>
<th class="head"><p>Type</p></th>
<th class="head"><p>Value</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><p>boolean</p></td>
<td><p>YES or NO</p></td>
</tr>
<tr>
<td><p>integer</p></td>
<td><p>any integer number, usually limited
by a range that will be indicated</p></td>
</tr>
<tr>
<td><p>positive integer</p></td>
<td><p>any integer number greater than or
equal to zero (0) a</p></td>
</tr>
<tr>
<td><p>speed</p></td>
<td><p>UltraFast, Fast, Medium, Slow, or VerySlow</p></td>
</tr>
<tr>
<td><p>mouse button</p></td>
<td><p>Left, Middle, Right, Button1, Button2,
Button3, Button4, or Button5</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="preferences">
<h2>Preferences</h2>
<p>General preference options are stored in the <em>WindowMaker</em> domain; i.e. the
$(HOME)/GNUstep/Defaults/WindowMaker file.</p>
<p>Changes in preference options will automatically affect the current WindowMaker
session, without a restart. Some options, however, require a restart of
WindowMaker before they take effect. Such options are marked with a * .</p>
<p>Note that values marked as <em>Default</em> are values that are assumed if the option
is not specified, instead of <em>factory default</em> values that are set in the
preference file.</p>
<!-- TODO there is no point for describing all of the options. There is a lot of
them added, some of the changed and possibly removed. Let's treat them as
the advanced configuration and point to the right sources, where one can
easily figure out which options take which values -->
<table>
<colgroup>
<col style="width: 32%">
<col style="width: 24%">
<col style="width: 44%">
</colgroup>
<thead>
<tr>
<th class="head"><p>Option</p></th>
<th class="head"><p>Value</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><p>PixmapPath</p></td>
<td><p>list of directories
separated by ":"
(default: depends
on the system)</p></td>
<td><p>A list of directories where pixmaps
can be found. The pixmaps for things
like icons, are searched in these
paths in order of appearance.</p></td>
</tr>
<tr>
<td><p><cite>*NoDithering</cite></p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Disable internal dithering of
images. Not recommended for displays
with less than 8 bits per pixel.</p></td>
</tr>
<tr>
<td><p><cite>*ColormapSize</cite></p></td>
<td><p>integer number &gt; 1
(default: 4)</p></td>
<td><p>Number of colors for each of the
red, green and blue components to be
used for the dithering colormap.
This value must be greater than 1
and smaller than 6 for 8bpp
displays. It only makes sense on
PseudoColor displays. This option
has not effect on TrueColor
displays. Larger values result in
better appearance, but leaves less
colors for other applications.</p></td>
</tr>
<tr>
<td><p><cite>*ModifierKey</cite></p></td>
<td><p>modifier key name
(default: Mod1)</p></td>
<td><p>The key to use as the modifier being
referred as Meta in this manual,
like Meta dragging a window to move
it. Valid values are Alt, Meta,
Super, Hyper, Mod1, Mod2, Mod3,
Mod4, Mod5.</p></td>
</tr>
<tr>
<td><p>UseSaveUnders</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Use <em>saveunders</em> in WindowMaker
windows. This can improve
performance but increases memory
usage. It also can cause problems
with refreshing in some
applications.</p></td>
</tr>
<tr>
<td><p>DisableClip</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Will remove the application Clip
from the workspace.</p></td>
</tr>
<tr>
<td><p>DisableDock</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Will remove the application Dock
from the workspace</p></td>
</tr>
<tr>
<td><p>Superfluous</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Enable extra animations and other
cosmetic things that might increase
peak memory and CPU usage.</p></td>
</tr>
<tr>
<td><p>SaveSessionOnExit</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Automatically save the state of the
session when exiting WindowMaker.</p></td>
</tr>
<tr>
<td><p><cite>*IconSize</cite></p></td>
<td><p>integer &gt; 4
(default: 64)</p></td>
<td><p>The size of application icons and
miniwindows.</p></td>
</tr>
<tr>
<td><p>OpaqueMove</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether the whole window should be
moved while dragging it, or, if only
it's frame should be dragged.</p></td>
</tr>
<tr>
<td><p>FocusMode</p></td>
<td><p>Manual or
ClickToFocus, Auto
or
FocusFollowsMouse,
SemiAuto or Sloppy
(default:
ClickToFocus)</p></td>
<td><p>The mode of input focus setting.
Refer to section <a class="reference external" href="chap2.html#focusing-a-window">Focusing a Window</a></p></td>
</tr>
<tr>
<td><p>IgnoreFocusClick</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether the mouse click use to focus
a window should be ignore or treated
normally.</p></td>
</tr>
<tr>
<td><p>AutoFocus</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether newly created windows should
receive input focus. Do not confuse
with FocusMode=Auto.</p></td>
</tr>
<tr>
<td><p>RaiseDelay</p></td>
<td><p>integer number
(default: 0)</p></td>
<td><p>How many tenths of a second to wait
before raising a window in Auto or
Semi-Auto focus mode. 0 disables
this feature.</p></td>
</tr>
<tr>
<td><p>DoubleClickTime</p></td>
<td><p>integer number
(default: 250)</p></td>
<td><p>If two mouse clicks occur in this
interval of time, it will be
considered a double click.</p></td>
</tr>
<tr>
<td><p>ColorMapMode</p></td>
<td><p>Manual or
ClickToFocus,
Auto or
FocusFollowsMouse
(default: auto)</p></td>
<td><p>The mode of colormap setting. In
<em>Manual</em> or <em>ClickToFocus</em> mode, the
colormap is set to the one belonging
to the current focused window. In
<em>Auto</em> or <em>FocusFollowsMouse</em> mode,
the colormap is set to the one
belonging to the window under the
pointer.</p></td>
</tr>
<tr>
<td><p>CirculateRaise</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether the window should be raised
when circulating. (focus the next or
previous window through the
keyboard)</p></td>
</tr>
<tr>
<td><p>OnTopTransients</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether transient windows should
always be placed over their owners</p></td>
</tr>
<tr>
<td><p>WindowPlacement</p></td>
<td><p>auto, cascade,
manual, or
random
(default: cascade)</p></td>
<td><p>Sets placement mode for new windows.
<em>Auto</em> places the window
automatically in the first open
space found in the workspace.
<em>Cascade</em> places the window in
incrementing positions starting from
the the top-left corner of the
workspace. <em>Manual</em> allows you to
place the window interactively with
the mouse. <em>Random</em> paces the window
randomly in the workspace.</p></td>
</tr>
<tr>
<td><p>WindowPlaceOrigin</p></td>
<td><p>(X,Y) where X
and Y are integer
numbers
(default: (0,0))</p></td>
<td><p>Sets the offset, from the top-left
corner of the screen, to place
windows. In non-manual
WindowPlacement modes windows will
not be placed above or to the left
of this point.</p></td>
</tr>
<tr>
<td><p>AutoArrangeIcons</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether icons should be
automatically arranged</p></td>
</tr>
<tr>
<td><p>ResizeDisplay</p></td>
<td><p>center, corner,
floating, or
line
(default: corner)</p></td>
<td><p>Selects the type or position of the
box that shows the window size when
a window is being resized. <em>center</em>
places the box in the center of the
workspace, <em>corner</em> places it in the
top-left corner of the workspace,
<em>floating</em> places it in the center
of the window being resized and
<em>line</em> draws the current window size
over the workspace, like in a
technical drawing.</p></td>
</tr>
<tr>
<td><p>MoveDisplay</p></td>
<td><p>center, corner
or floating
(default: corner)</p></td>
<td><p>Selects the type or position of the
box that shows the window position
when a window is being moved. The
value meanings are the same as for
the ResizeDisplay option.</p></td>
</tr>
<tr>
<td><p>AlignSubmenus</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether submenus should be aligned
vertically with their parent menus.</p></td>
</tr>
<tr>
<td><p>WrapMenus</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether submenus should be placed to
the right of their parent menus when
they don't fit the screen. Note that
menus placed off the screen can be
scrolled.</p></td>
</tr>
<tr>
<td><p>ScrollableMenus</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether menus that are not fully
inside the screen should
automatically scroll when the
pointer is over them and near the
border of the screen.</p></td>
</tr>
<tr>
<td><p>MenuScrollSpeed</p></td>
<td><p>speed
(default: medium)</p></td>
<td><p>The scrolling speed of menus.</p></td>
</tr>
<tr>
<td><p>DontLinkWorkspaces</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Do not automatically switch to the
next or previous workspace when a
window is dragged to the edge of the
screen.</p></td>
</tr>
<tr>
<td><p>NoWindowUnderDock</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>When maximizing windows, limit their
sizes so that they will not be
covered by the dock.</p></td>
</tr>
<tr>
<td><p>NoWindowOverIcons</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>When maximizing windows, limit their
sizes so that they will cover
miniwindows and application icons.</p></td>
</tr>
<tr>
<td><p>StickyIcons</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether miniwindows should be
present in all workspaces.</p></td>
</tr>
<tr>
<td><p>CycleWorkspaces</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Set to YES if you want windows that
are dragged past the last workspace
to be moved to the first workspace,
and vice-versa.</p></td>
</tr>
<tr>
<td><p>AdvanceToNewWorkspace</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether windows dragged past the
last workspace should create a new
workspace.</p></td>
</tr>
<tr>
<td><p>DisableAnimations</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether animations, like the one
done during minimization, should be
disabled.</p></td>
</tr>
<tr>
<td><p>IconSlideSpeed</p></td>
<td><p>speed
(default: medium)</p></td>
<td><p>The speed of icons when they are
being slid across the workspace.</p></td>
</tr>
<tr>
<td><p>ShadeSpeed</p></td>
<td><p>speed
(default: medium)</p></td>
<td><p>The speed of the shading animation.</p></td>
</tr>
<tr>
<td><p>DisableSound</p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether sound support in WindowMaker
should be disabled</p></td>
</tr>
<tr>
<td><p><cite>*DisableWSMouseActions</cite></p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Whether actions in the workspace
triggered by mouse-clicks should be
disabled. This allows the use of
file and desktop managers that place
icons on the root window (such as
KDE).</p></td>
</tr>
<tr>
<td><p>SelectWindowMouseButton</p></td>
<td><p>mouse button
(default: left)</p></td>
<td><p>The mouse button that activates
selection of multiple windows in the
workspace.</p></td>
</tr>
<tr>
<td><p>WindowListMouseButton</p></td>
<td><p>mouse button
(default: middle)</p></td>
<td><p>The mouse button that opens the
window list menu in the workspace.</p></td>
</tr>
<tr>
<td><p>ApplicationMenuMouseButton</p></td>
<td><p>mouse button
(default: right)</p></td>
<td><p>The mouse button that opens the
applications menu in the workspace.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="appearance-options">
<h2>Appearance Options</h2>
<p>Fonts are specified in the X Logical Font Description format. You can cut and
paste these names from programs like <span class="docutils literal">xfontsel</span>.</p>
<p>Colors are specified as color names in the standard X format. This can be any
color name shown by the <span class="docutils literal">showrgb</span> program (like black, white or gray) or a
color value in the #rrggbb format, where rr, gg and bb is the intensity of the
color component (like #ff0000 for pure red or #000080 for medium blue). Note
that color names in the #rrggbb format must be enclosed with double quotes.</p>
<p>Textures are specified as an array, where the first element specifies the
texture type followed by a variable number of arguments.</p>
<p>Valid texture types are:</p>
<dl class="simple">
<dt>(solid, color)</dt>
<dd>
<p>the texture is a simple solid color.</p>
</dd>
<dt>(dgradient, color1, color2)</dt>
<dd>
<p>the texture is a diagonal gradient rendered from the top-left corner to the
bottom-right corner. The first argument (color1) is the color for the
top-left corner and the second (color2) is for the bottom-right corner.</p>
</dd>
<dt>(hgradient, color1, color2)</dt>
<dd>
<p>the texture is a horizontal gradient rendered from the left edge to the
right edge. The first argument (color1) is the color for the left edge and
the second (color2) is for the right edge.</p>
</dd>
<dt>(vgradient, color1, color2)</dt>
<dd>
<p>the texture is a vertical gradient rendered from the top edge to the bottom
edge. The first argument (color1) is the color for the top edge and the
second (color2) is for the bottom edge.</p>
</dd>
<dt>(mdgradient, color1, color2,...,color*n*)</dt>
<dd>
<p>this is equivalent to drgadient, but you can specify more than two colors</p>
</dd>
<dt>(mhgradient, color1, color2,...,color*n*)</dt>
<dd>
<p>this is equivalent to hrgadient, but you can specify more than two colors</p>
</dd>
<dt>(mvgradient, color1, color2,...,color&lt;i&gt;n&lt;/i&gt;)</dt>
<dd>
<p>this is equivalent to vrgadient, but you can specify more than two colors</p>
</dd>
</dl>
<p><strong>Examples</strong>:</p>
<div class="borderless figure">
<img alt="Solid Color" src="guide/images/texsolid.gif">
<p class="caption">(solid, gray)</p>
</div>
<div class="borderless figure">
<img alt="Diagoonal Gradient" src="guide/images/texdgrad.gif">
<p class="caption">(dgradient, gray80, gray20)</p>
</div>
<div class="borderless figure">
<img alt="Horizontal Gradient" src="guide/images/texhgrad.gif">
<p class="caption">(hgradient, gray80, gray20)</p>
</div>
<div class="borderless figure">
<img alt="Vertical Gradient" src="guide/images/texvgrad.gif">
<p class="caption">(vgradient, gray80, gray20)</p>
</div>
<table>
<colgroup>
<col style="width: 24%">
<col style="width: 27%">
<col style="width: 49%">
</colgroup>
<thead>
<tr>
<th class="head"><p>Option</p></th>
<th class="head"><p>Value</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><p><cite>*NewStyle</cite></p></td>
<td><p>boolean
(default: NO)</p></td>
<td><p>Selects between N*XTSTEP style buttons
in the titlebar and a newer style of
buttons.</p></td>
</tr>
<tr>
<td><p>WidgetColor</p></td>
<td><p>(solid, color)
where color is a
color name
(default:
(solid, grey))</p></td>
<td><p>Chooses the color to be used in
titlebar buttons if NewStyle=No;</p></td>
</tr>
<tr>
<td><p>WorkspaceBack</p></td>
<td><p>a texture or
none
(default: none)</p></td>
<td><p>Default texture for the workspace
background. Note the <em>dgradient</em> and
<em>mdgradient</em> textures can take a lot
of time to be rendered.</p></td>
</tr>
<tr>
<td><p>IconBack</p></td>
<td><p>texture
(default:
(solid, grey))</p></td>
<td><p>Texture for the background of icons
and miniwindows.</p></td>
</tr>
<tr>
<td><p>FTitleBack</p></td>
<td><p>texture
(default:
(solid, black))</p></td>
<td><p>Texture for the focused window
titlebar.</p></td>
</tr>
<tr>
<td><p>PTitleBack</p></td>
<td><p>texture
(default:
(solid, "#616161"))</p></td>
<td><p>Texture for the titlebar of the parent
window of the currently focused
transient window</p></td>
</tr>
<tr>
<td><p>UTitleBack</p></td>
<td><p>texture
(default:
(solid, gray))</p></td>
<td><p>Texture for unfocused window
titlebars.</p></td>
</tr>
<tr>
<td><p>MenuTitleBack</p></td>
<td><p>texture
(default:
(solid, black))</p></td>
<td><p>Texture for menu titlebars.</p></td>
</tr>
<tr>
<td><p>MenuTextBack</p></td>
<td><p>texture
(default:
(solid, gray))</p></td>
<td><p>Texture for menu items</p></td>
</tr>
<tr>
<td><p>FTitleColor</p></td>
<td><p>color
(default: white)</p></td>
<td><p>The color of the text in the focused
window titlebar.</p></td>
</tr>
<tr>
<td><p>PTitleColor</p></td>
<td><p>color
(default: white)</p></td>
<td><p>Color for the text in the titlebar of
the parent window of the currently
focused transient.</p></td>
</tr>
<tr>
<td><p>UTitleColor</p></td>
<td><p>color
(default: black)</p></td>
<td><p>The color for the text in the titlebar
of unfocused windows.</p></td>
</tr>
<tr>
<td><p>MenuTitleColor</p></td>
<td><p>color
(default: white)</p></td>
<td><p>Color for the text in menu titlebars</p></td>
</tr>
<tr>
<td><p>MenuTextColor</p></td>
<td><p>color
(default: black)</p></td>
<td><p>Color for the text in menu items</p></td>
</tr>
<tr>
<td><p>HighlightColor</p></td>
<td><p>color
(default: white)</p></td>
<td><p>Color for the highlighted item in
menus.</p></td>
</tr>
<tr>
<td><p>HighlightTextColor</p></td>
<td><p>color
(default: black)</p></td>
<td><p>Color for the highlighted item text in
menus.</p></td>
</tr>
<tr>
<td><p>MenuDisabledColor</p></td>
<td><p>color
(default: "#616161")</p></td>
<td><p>Color for the text of disabled menu
items.</p></td>
</tr>
<tr>
<td><p>ClipTitleColor</p></td>
<td><p>color
(default: black)</p></td>
<td><p>Color for the text in the clip.</p></td>
</tr>
<tr>
<td><p>CClipTitleColor</p></td>
<td><p>color
(default: "#454045")</p></td>
<td><p>Color for the text in the collapsed
clip.</p></td>
</tr>
<tr>
<td><p>WindowTitleFont</p></td>
<td><p>font (default:
Helvetica bold 12)</p></td>
<td><p>Font for the text in window
titlebars.</p></td>
</tr>
<tr>
<td><p>MenuTitleFont</p></td>
<td><p>font (default:
Helvetica bold 12)</p></td>
<td><p>Font for the text in menu titlebars)</p></td>
</tr>
<tr>
<td><p>MenuTextFont</p></td>
<td><p>font (default:
Helvetica medium 12)</p></td>
<td><p>Font for the text in menu items</p></td>
</tr>
<tr>
<td><p>IconTitleFont</p></td>
<td><p>font (default:
Helvetica medium 8)</p></td>
<td><p>Font for the text in miniwindow
titlebars.</p></td>
</tr>
<tr>
<td><p>ClipTitleFont</p></td>
<td><p>font (default:
Helvetica bold 10)</p></td>
<td><p>Font for the text in the clip.</p></td>
</tr>
<tr>
<td><p>Displayfont</p></td>
<td><p>font (default:
Helvetica medium 12)</p></td>
<td><p>Font for the text information in
windows, like the size of windows
during resize.</p></td>
</tr>
<tr>
<td><p>TitleJustify</p></td>
<td><p>center, left,
or right
(default: center)</p></td>
<td><p>Justification of the text in window
titlebars.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="keyboard-bindings">
<h2>Keyboard Bindings</h2>
<p>Keyboard shortcut specifications are in the form:</p>
<pre class="code highlight literal-block"><code>[&lt;modifier key names&gt; + ] &lt;key name&gt;</code></pre>
<p>Where <em>modifier key names</em> specify an optional modifier key, like Meta or
Shift. Any number of modifier keys might be specified. The <em>key name</em> is the
actual key that will trigger the action bound to the option.</p>
<p>Examples:</p>
<dl class="simple">
<dt>[F10]</dt>
<dd>
<p>Means the F10 key.</p>
</dd>
<dt>Meta+TAB</dt>
<dd>
<p>Means the TAB key with the Meta modifier key pressed at the same time.</p>
</dd>
<dt>Meta+Shift+TAB</dt>
<dd>
<p>Means the TAB key with the Meta and Shift modifier keys pressed at the same
time.</p>
</dd>
</dl>
<p>Key names can be found at /usr/X11R6/include/X11/keysymdef.h The <em>XK_</em> prefixes
must be ignored (if key name is <em>XK_Return</em> use <em>Return</em>).</p>
<table>
<colgroup>
<col style="width: 29%">
<col style="width: 19%">
<col style="width: 52%">
</colgroup>
<thead>
<tr>
<th class="head"><p>Option</p></th>
<th class="head"><p>Default Value</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><p>RootMenuKey</p></td>
<td><p>None</p></td>
<td><p>Opens the <a class="reference external" href="chap3.html#the-root-window-menu">root window menu</a>
at the current position of the
mouse pointer.</p></td>
</tr>
<tr>
<td><p>WindowListKey</p></td>
<td><p>None</p></td>
<td><p>Opens the <a class="reference external" href="chap3.html#3.12">window list menu</a>
menu at the current position of the
mouse pointer.</p></td>
</tr>
<tr>
<td><p>WindowMenuKey</p></td>
<td><p>None</p></td>
<td><p>Opens the <a class="reference external" href="chap2.html#the-window-commands-menu">window commands menu</a>
for the currently focused window.</p></td>
</tr>
<tr>
<td><p>MiniaturizeKey</p></td>
<td><p>None</p></td>
<td><p>Miniaturizes the currently focused
window.</p></td>
</tr>
<tr>
<td><p>HideKey</p></td>
<td><p>None</p></td>
<td><p>Hides the currently active
application.</p></td>
</tr>
<tr>
<td><p>CloseKey</p></td>
<td><p>None</p></td>
<td><p>Closes the current focused window</p></td>
</tr>
<tr>
<td><p>MaximizeKey</p></td>
<td><p>None</p></td>
<td><p>Maxmizes the currently focused window.</p></td>
</tr>
<tr>
<td><p>VMaximizeKey</p></td>
<td><p>None</p></td>
<td><p>Vertically Maximizes the currently
focused window.</p></td>
</tr>
<tr>
<td><p>RaiseKey</p></td>
<td><p>Meta+Up</p></td>
<td><p>Raises the currently focused window.</p></td>
</tr>
<tr>
<td><p>LowerKey</p></td>
<td><p>Meta+Down</p></td>
<td><p>Lowers the currently focused window.</p></td>
</tr>
<tr>
<td><p>RaiseLowerKey</p></td>
<td><p>None</p></td>
<td><p>Raises the window under the pointer,
or lowers it if it is already raised.</p></td>
</tr>
<tr>
<td><p>ShadeKey</p></td>
<td><p>None</p></td>
<td><p>Shades the currently focused window.</p></td>
</tr>
<tr>
<td><p>SelectKey</p></td>
<td><p>None</p></td>
<td><p>Selects current focused window.</p></td>
</tr>
<tr>
<td><p>FocusNextKey</p></td>
<td><p>None</p></td>
<td><p>Switch focus to next window.</p></td>
</tr>
<tr>
<td><p>FocusPrevKey</p></td>
<td><p>None</p></td>
<td><p>Switch focus to previous window.</p></td>
</tr>
<tr>
<td><p>NextWorkspaceKey</p></td>
<td><p>None</p></td>
<td><p>Switches to next workspace.</p></td>
</tr>
<tr>
<td><p>PrevWorkspaceKey</p></td>
<td><p>None</p></td>
<td><p>Switches to previous workspace.</p></td>
</tr>
<tr>
<td><p>NextWorkspaceLayerKey</p></td>
<td><p>None</p></td>
<td><p>Switches to the next group of 10
workspaces.</p></td>
</tr>
<tr>
<td><p>PrevWorkspaceLayerKey</p></td>
<td><p>None</p></td>
<td><p>Switches to the previous group of
10 workspaces.</p></td>
</tr>
<tr>
<td><p>Workspace1Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 1.</p></td>
</tr>
<tr>
<td><p>Workspace2Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 2, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace3Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 3, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace4Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 4, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace5Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 5, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace6Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 6, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace7Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 7, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace8Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 8, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace9Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 9, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>Workspace10Key</p></td>
<td><p>None</p></td>
<td><p>Switches to workspace 10, creating
it if it does not exist.</p></td>
</tr>
<tr>
<td><p>ClipLowerKey</p></td>
<td><p>None</p></td>
<td><p>Lowers the clip.</p></td>
</tr>
<tr>
<td><p>ClipRaiseLowerKEy</p></td>
<td><p>None</p></td>
<td><p>Raises the clip, or lowers it if
it is already raised.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="window-attributes">
<h2>Window Attributes</h2>
<p>Window attributes are stored in the $(HOME)/GNUstep/Defaults/WMWindowAttributes
file.</p>
<p>The contents of this file is a dictionary of attribute dictionaries keyed by
window names. Like this:</p>
<pre class="code highlight literal-block"><code>{
"*" = {
Icon = "defaultAppIcon.xpm";
};
"xterm.XTerm" = {
Icon = "xterm.xpm";
};
xconsole = {
Omnipresent = YES;
NoTitlebar = YES;
KeepOnTop = NO;
};
}</code></pre>
<p>Window names are in the form <a class="footnote-reference brackets" href="#id2" id="id1">1</a> :</p>
<ul class="simple">
<li><p>&lt;window instance name&gt;.&lt;window class name&gt;</p></li>
</ul>
<p>OR</p>
<ul class="simple">
<li><p>&lt;window instance name&gt;</p></li>
</ul>
<p>OR</p>
<ul class="simple">
<li><p>&lt;window class name&gt;</p></li>
</ul>
<p>Placing an asterisk as the window name means that the values set for that key
are to be used as default values for all windows. So, since xconsole does not
specify an Icon attribute, it will use the default value, which in the above
example is defaultAppIcon.xpm.</p>
<p><strong>Options:</strong></p>
<p>The default is NO for all options</p>
<table>
<colgroup>
<col style="width: 28%">
<col style="width: 24%">
<col style="width: 49%">
</colgroup>
<thead>
<tr>
<th class="head"><p>Option</p></th>
<th class="head"><p>Value</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr>
<td><p>Icon</p></td>
<td><p>pixmap file name</p></td>
<td><p>Assigns a pixmap image to be
used as the icon for that window.</p></td>
</tr>
<tr>
<td><p>NoTitleBar</p></td>
<td><p>boolean</p></td>
<td><p>Disables the titlebar in the
window.</p></td>
</tr>
<tr>
<td><p>NoResizeBar</p></td>
<td><p>boolean</p></td>
<td><p>Disables the resizebar in the
window.</p></td>
</tr>
<tr>
<td><p>NoMiniaturizeButton</p></td>
<td><p>boolean</p></td>
<td><p>Remove the miniaturize
button.</p></td>
</tr>
<tr>
<td><p>NoCloseButton</p></td>
<td><p>boolean</p></td>
<td><p>Remove the close button.</p></td>
</tr>
<tr>
<td><p>NoHideOthers</p></td>
<td><p>boolean</p></td>
<td><p>Do not hide the window, or the
application to which the window
belongs when a <em>Hide Others</em>
command is issued.</p></td>
</tr>
<tr>
<td><p>NoMouseBindings</p></td>
<td><p>boolean</p></td>
<td><p>Do not grab mouse buttons in that
window. This means that actions
like a Meta-click on the window
will be caught by the application
instead of WindowMaker.</p></td>
</tr>
<tr>
<td><p>NoKeyBindings</p></td>
<td><p>boolean</p></td>
<td><p>Do not grab keys in that window.
This means that keystrokes that
would normally be intercepted by
WindowMaker (because they are
bound to some action), like
Meta+Up, will be passed to the
application.</p></td>
</tr>
<tr>
<td><p>NoAppIcon</p></td>
<td><p>boolean</p></td>
<td><p>Do not create application icon for
the window. This is useful for some
applications that incorrectly get
more than one application icon.</p></td>
</tr>
<tr>
<td><p>KeepOnTop</p></td>
<td><p>boolean</p></td>
<td><p>Always keep the window over other
normal windows.</p></td>
</tr>
<tr>
<td><p>Omnipresent</p></td>
<td><p>boolean</p></td>
<td><p>Make the window be present in all
workspaces, AKA sticky window.</p></td>
</tr>
<tr>
<td><p>SkipWindowList</p></td>
<td><p>boolean</p></td>
<td><p>Do not list the window in the
<a class="reference external" href="chap3.html#3.12">window list menu</a></p></td>
</tr>
<tr>
<td><p>KeepInsideScreen</p></td>
<td><p>boolean</p></td>
<td><p>Always keep the window inside the
visible are of the screen.</p></td>
</tr>
<tr>
<td><p>Unfocusable</p></td>
<td><p>boolean</p></td>
<td><p>Do not let the window be focused.</p></td>
</tr>
<tr>
<td><p>StartWorkspace</p></td>
<td><p>Workspace number
or name</p></td>
<td><p>Make the window always be initially
shown in the indicated workspace.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="applications-menu">
<h2>Applications Menu</h2>
<p>The applications menu (AKA: Root Menu) can be defined in one of two distinct
ways:</p>
<ul class="simple">
<li><p>In the form of an array in property list format, in
$(HOME)/GNUstep/Defaults/WMRootMenu</p></li>
<li><p>In the form of a text file, whose location is present in
$(HOME)/GNUstep/Defaults/WMRootMenu</p></li>
</ul>
<hr class="docutils">
<dl class="footnote brackets">
<dt class="label" id="id2"><span class="brackets"><a class="fn-backref" href="#id1">1</a></span></dt>
<dd>
<p>You can get the values for these information by running the <span class="docutils literal">xprop</span>
utility on the desired window. When you do that, it will show the following
line, among other things:</p>
<pre class="code highlight literal-block"><code>WM_CLASS(STRING) = "xterm", "XTerm"</code></pre>
<p>The first string (xterm) is the window instance name and the second (XTerm)
the window class name.</p>
</dd>
</dl>
</div>
</div>
</div>
</article>
<div id="titlebar">
<div id="minimize"></div>
<div id="titlebar-inner">Window Maker: User Guide - Configuration</div>
<div id="close"></div>
</div>
<div id="resizebar">
<div id="resizel"></div>
<div id="resizebar-inner">
</div>
<div id="resizer"></div>
</div>
</div>
</body>
</html>