Merge pull request #5 from gryf/master

Docs convertion to reStructuredText format.
This commit is contained in:
Doug Torrance
2019-05-30 21:06:15 -04:00
committed by GitHub
87 changed files with 6948 additions and 8675 deletions

View File

@@ -7,7 +7,8 @@ files accepted by [Jekyll](https://jekyllrb.com) static site generator.
Build/serve
-----------
In order to build the site, you'll need Jekyll framework installed. Easiest way
In order to build the site, you'll need Jekyll framework installed and
[jekyll-rst](https://github.com/gryf/jekyll-rst) plugin. Easiest way
to achieve it, is to install it from system repositories.
If your distribution doesn't contain it (even in external ones, like PPA for
@@ -18,10 +19,18 @@ typical usage would be as follows:
```
$ cd window-maker.github.io && bundler init
$ bundler add jekyll
$ mkdir _plugins
$ git clone https://github.com/gryf/jekyll-rst _plugins/jekyll-rst
$ pip install docutils pygments
$ gem install RbST nokogiri
$ bundler exec jekyll serve
```
which will initialize gemfile, add jekyll to it, and then perform `jekyll serve`
which underneath will build the site and than run simple http server on
Consult [jekyll-rst](https://github.com/gryf/jekyll-rst) plugin documentation
for requirements. Other options for installing dependencies are also possible -
they might be installed from distribution repositories.
Last line will initialize gemfile, add jekyll to it, and then perform `jekyll
serve` which underneath will build the site and than run simple http server on
`http://localhost:4000` in development mode. More about jekyll you can find [on
it's page](https://jekyllrb.com/docs)

View File

@@ -1 +1,3 @@
title: Window Maker
rst:
initial_header_level: 1

File diff suppressed because it is too large Load Diff

2249
docs/FAQ.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
---
layout: default
title: User Guide - Introduction
---
<h3>Introduction</h3>
<p>This manual describes the usage and configuration of the WindowMaker window manager. It is intended for both users
who never used the X Window System and for users who have experience with other window managers.</p>
<p>How to Read this guide If you never have used a X window manager, you should read all of this guide, as it contains
detailed instructions for new users.</p>
<p>Text in sans serif font, indicate instructions you must follow to accomplish a given task. If you're out of time (or
patience), you should at least read text in these parts.</p>
<p>You can ignore the text in Extra Bindings boxes while you're getting familiar with WindowMaker. Once you've got
familiar with it, you can read the text in these boxes to learn more ways to accomplish tasks.</p>
<h1>1.1 What is a window manager?</h1>
<p>If you come from the Windows or MacOS world, you might be confused about all these things like window managers, X
windows etc.</p>
<p>In the Unix world, the task of providing a graphical user interface (GUI) is normally divided by 3 different
components:</p>
<p>the window server; the window manager and the user interface toolkit. The window server is standard and is usually
the X Window System or some vendor provided compatible version of it. The X Window System, or X for short, is a window
server. It's function is to provide a portable and high-level access to devices like keyboard, mouse and video display.
It allows applications to show graphical information on the display through rectangular areas called windows.</p>
<p>Most user interface objects, like buttons, menus and scrollers are made of windows. The top level windows displayed
by applications are named windows as well. These objects are not provided by the window server. These must be made by
the application program or by the user interface toolkit.</p>
<p>For more information, read the manual page for X(1) and the documentation for Xlib.</p>
<p>The primary function of the window manager is to control the layout of top level windows on screen. WindowMaker is a
window manager. It provides a titlebar and a resizebar to change window layout, application menus to launch
applications and execute special commands, application icons, miniwindows and an application dock. They will be
explained in more detail in the following chapters.</p>
<p>The user interface toolkit is a library or collection of libraries that provide an API for application developers to
program the interfaces for their applications. Toolkits generally provide controls like buttons, menus, radio-buttons
etc to be used for program interaction. There are currently many of these toolkits available for X. Motif
&#226;&#8222;&#162;, OpenLook &#226;&#8222;&#162;, and Athena are examples of toolkits.</p>
<p>All other features normally found in other operating systems, like file managers, are implemented as separate
programs and are not directly related to the window manager.</p>

64
docs/chap1.rst Normal file
View File

@@ -0,0 +1,64 @@
---
layout: default
title: User Guide - Introduction
---
Introduction
============
This manual describes the usage and configuration of the Window Maker window
manager. It is intended for both users who never used the X Window System and
for users who have experience with other window managers.
How to Read this guide If you never have used a X window manager, you should
read all of this guide, as it contains detailed instructions for new users.
Text in sans serif font, indicate instructions you must follow to accomplish a
given task. If you're out of time (or patience), you should at least read text
in these parts.
You can ignore the text in Extra Bindings boxes while you're getting familiar
with Window Maker. Once you've got familiar with it, you can read the text in
these boxes to learn more ways to accomplish tasks.
What is a window manager?
-------------------------
If you come from the Windows or MacOS world, you might be confused about all
these things like window managers, X windows etc.
In the Unix world, the task of providing a graphical user interface (GUI) is
normally divided by 3 different components:
the window server; the window manager and the user interface toolkit. The
window server is standard and is usually the X Window System or some vendor
provided compatible version of it. The X Window System, or X for short, is a
window server. It's function is to provide a portable and high-level access to
devices like keyboard, mouse and video display. It allows applications to show
graphical information on the display through rectangular areas called windows.
Most user interface objects, like buttons, menus and scrollers are made of
windows. The top level windows displayed by applications are named windows as
well. These objects are not provided by the window server. These must be made
by the application program or by the user interface toolkit.
For more information, read the manual page for X(1) and the documentation for
Xlib.
The primary function of the window manager is to control the layout of top
level windows on screen. Window Maker is a window manager. It provides a
titlebar and a resizebar to change window layout, application menus to launch
applications and execute special commands, application icons, miniwindows and
an application dock. They will be explained in more detail in the following
chapters.
The user interface toolkit is a library or collection of libraries that provide
an API for application developers to program the interfaces for their
applications. Toolkits generally provide controls like buttons, menus,
radio-buttons etc to be used for program interaction. There are currently many
of these toolkits available for X. Motif, OpenLook, and Athena are examples of
toolkits.
All other features normally found in other operating systems, like file
managers, are implemented as separate programs and are not directly related to
the window manager.

View File

@@ -1,840 +0,0 @@
---
layout: default
title: User Guide - Windows
---
<br />
<br />
<br />
<h2>Chapter 2</h2>
<h1>Windows</h1><br />
<br />
<br />
<h2><a name="2.1">2.1 Anatomy of a Window</a></h2>Generally an application will have the following layout:<br />
<br />
<center>
<img src="guide/images/anatomy.gif" border="0" width="426" height="344" alt="[Anatomy of a Window]" /><br />
<br />
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td align="right" valign="top"><br />
<font face="Times New Roman, Times, Times Roman"><b>Titlebar</b></font></td>
<td align="left"><br />
<font face="Times New Roman, Times, Times Roman">The titlebar presents the name of the application, document or
window. It's color indicates the keyboard focus state and type of the window. You can use it to move, activate,
raise, lower and access the window commands menu.</font></td>
</tr>
<tr>
<td align="right" valign="top"><font face="Times New Roman, Times, Times Roman"><b>Miniaturize
button.</b></font></td>
<td align="left"><font face="Times New Roman, Times, Times Roman">You can click on the miniaturize button to
miniaturize/iconify a window or click it with the <b>Meta</b> key pressed to hide the application.</font></td>
</tr>
<tr>
<td align="right" valign="top"><br />
<font face="Times New Roman, Times, Times Roman"><b>Close Button.</b></font></td>
<td align="left"><br />
<font face="Times New Roman, Times, Times Roman">The close button can be used to close a window or kill the
application, if the application can't understand the close message.</font></td>
</tr>
<tr>
<td align="right" valign="top"><br />
<font face="Times New Roman, Times, Times Roman"><b>Resizebar.</b></font></td>
<td align="left"><br />
<font face="Times New Roman, Times, Times Roman">You use the resizebar to (surprise!) resize a
window.</font></td>
</tr>
<tr>
<td align="right" valign="top"><br />
<font face="Times New Roman, Times, Times Roman"><b>Client Area.</b></font></td>
<td align="left"><br />
<font face="Times New Roman, Times, Times Roman">The client area is where the application show it's
information. If the window if inactive, you can click on it to activate it.</font></td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<a name="2.2"></a>
<h2><a name="2.2">2.2 Working With Windows</a></h2><a name="2.2"></a><br />
<br />
<a name="2.2.1"></a>
<h3><a name="2.2.1">2.2.1 Focusing a Window</a></h3><a name="2.2.1"></a><br />
Windows can be in two states: <i>focused</i> , or <i>unfocused.</i> The focused window (also called the key or active
window) has a black titlebar and is the window that receives keyboard input, ie: where you can type text. Usually it's
the window where you work on. Only one window may be focused at a time. Unfocused windows have a light gray titlebar.
Some applications have a special type of window, called dialog windows transient windows or panels. When these windows
are active, the window that owns them (the main window) get a dark gray titlebar. As soon as the dialog window is
closed, the focus is returned to the owner window.<br />
<br />
<br />
The image below shows an active Open File panel and it's owner window.<br />
<br />
<center>
<img src="guide/images/focus.gif" border="0" width="574" height="360" alt="[Focused, Unfocused, and Parent Window]" />
</center><br />
<br />
There are three styles of window focusing:<br />
<br />
<b>Click-to-Focus</b>,or manual focus mode. In click-to-focus mode, you explicitly choose the window that should be
focused. This is the default mode.<br />
<br />
<b>Focus-Follow-Mouse</b>,or auto-focus mode. In this mode, the focused window is chosen based on the position of the
mouse pointer. The window below the mouse pointer is always the focused window.<br />
<br />
<b>Sloppy-Focus</b>,or semi-auto-focus mode. This is similar to the focus-follow-mouse mode, but if you move the
pointer from a window to the root window, the window will not loose focus.<br />
<br />
You can choose between these modes with the <i>FocusMode</i> option<br />
<br />
<br />
<br />
<font face="Helvetica"><b>To focus a window in click-to-focus mode:</b></font>
<ul type="disc">
<li><font face="Helvetica">Click on the titlebar, resizebar or in the client area of the window with the left or
right mouse button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Click on the titlebar with the middle mouse button. This will focus the window without
bringing it to the front.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Open the window list menu and select the window to focus.</font></li>
</ul><br />
When you click in the client area of an inactive window to set the focus, the click is normally processed by the
application. If you find this behaviour a little confusing, you can make the application ignore this click by using the
<i>IgnoreFocusClick</i> option.<br />
<br />
<br />
<font face="Helvetica"><b>To focus a window in focus-follow-mouse mode:</b></font>
<ul type="disc">
<li><font face="Helvetica">Move the pointer over the window you want to focus.</font></li>
</ul><br />
<br />
<br />
<br />
<a name="2.2.2"></a>
<h3><a name="2.2.2">2.2.2 Reordering Overlapping Windows</a></h3><a name="2.2.2"></a> Windows can overlap other
windows, making some windows be over or in front of others.<br />
<br />
<br />
<font face="Helvetica"><b>To bring a window to the front:</b><br /></font>
<ul type="disc">
<li><font face="Helvetica">Click on the titlebar or resizebar of the desired window with the left mouse button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Select the desired window from the Window List menu.</font></li>
</ul><br />
<br />
Dialog/transient windows are always placed over their owner windows, unless the <i>OnTopTransients</i> option is
disabled. Some windows have a special attribute that allow them be permanently over normal windows. You can make
specific windows have this attribute use the <i>AlwaysOnTop</i> window option or set it in the Window Inspector
panel.<br />
<br />
<br />
<h3><b>Extra Bindings</b></h3>
<center>
<table border="0" width="80%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="left"><font face="Times New Roman, Times, Times Roman">Action</font></th>
<th align="left"><font face="Times New Roman, Times, Times Roman">Effect</font></th>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Meta-Click on the window
titlebar. with the left mouse button</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Sends the window to the
back.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Meta-Click on the Client Area of
the window with the left mouse button.</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Brings the window to the front
and focuses it.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Hold the Meta key and press the
Up Arrow key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Brings the current focused
window to the front.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Hold the Meta key and press the
Down Arrow key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Sends the current focused window
to the back.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<a name="2.2.3"></a>
<h3><a name="2.2.3">2.2.3 Moving a Window</a></h3><a name="2.2.3"></a> To move the window around the screen, drag the
window through it's titlebar with the left mouse button pressed. This will also bring the window to the front and focus
the window.<br />
<br />
<br />
<font face="Helvetica"><b>To move a window:</b></font>
<ul type="disc">
<li><font face="Helvetica">Click on the titlebar of the window you want to move with the left mouse button and drag
it with the button pressed.</font></li>
</ul>While you move the window, a little box will appear in the screen, indicating the current window position in
pixels, relative to the top left corner of the screen. You can change the location of this position box by hitting the
Shift key during the move operation.<br />
<br />
In some rare occasions, it is possible for a window to be placed off screen. This can happen with some buggy
applications. To bring a window back to the visible screen area, select the window in the Window List menu. You can
prevent windows from doing that with the <i>DontMoveOff</i> window attribute.<br />
<br />
<br />
<h3><b>Extra Bindings</b></h3>
<center>
<table border="0" width="80%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="left"><font face="Times New Roman, Times, Times Roman">Action</font></th>
<th align="left"><font face="Times New Roman, Times, Times Roman">Effect</font></th>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the titlebar with the
middle mouse button</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Move the window without changing
it's stacking order.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the titlebar while holding
the Control key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Move the window without focusing
it.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the client area or
resizebar while holding the Meta key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Move the window.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<br />
<a name="2.2.4"></a>
<h3><a name="2.2.4">2.2.4 Resizing a Window</a></h3><a name="2.2.4"></a> The size of a window can be adjusted by
dragging the resizebar.<br />
<br />
<center>
<img src="guide/images/resizebar.gif" border="0" width="470" height="47" alt="[A Resizebar]" />
</center><br />
<br />
Depending on the place you click to drag the resizebar, the resize operation is constrained to a direction.<br />
<br />
<br />
<font face="Helvetica"><b>To resize a window</b></font>
<ul type="disc">
<li><font face="Helvetica">To change the window's height, click in the middle region of the resizebar and drag it
vertically.<br />
<br /></font></li>
<li><font face="Helvetica">To change the window's width, click in either end regions of the resizebar and drag it
horizontally.<br />
<br /></font></li>
<li><font face="Helvetica">To change both height and width at the same time, click in either end regions of the
resizebar and drag it diagonally.</font></li>
</ul><br />
<br />
<h3><b>Extra Bindings</b></h3>
<center>
<table border="0" width="80%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="left"><font face="Times New Roman, Times, Times Roman"><b>Action</b></font></th>
<th align="left"><font face="Times New Roman, Times, Times Roman"><b>Effect</b></font></th>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the window in the client
area with the Right mouse button, while holding the Meta key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Resizes the window.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the resizebar with the
middle mouse button</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Resize the window without
bringing it to the front</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Drag the resizebar while holding
the Control key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Resize the window without
focusing it.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<a name="2.2.5"></a>
<h3><a name="2.2.5">2.2.5 Miniaturizing a Window</a></h3><a name="2.2.5"></a><br />
If you want to temporarily get rid of a window, you can miniaturize it. When miniaturizing a window, it will shrink
into a miniwindow with a icon and a title that is placed at the bottom of the screen.<br />
<br />
<center>
<img src="guide/imagtitle.gif" border="0" width="200" height="50" alt="[A Titlebar]" />
</center><br />
<br />
<center>
<table border="0" cellspacing="0" cellpadding="5" width="40%">
<tbody>
<tr>
<td align="left"><img src="guide/images/mini.gif" border="0" width="64" height="64" alt="[A Mini-window]" /></td>
<td align="left"><font face="Times New Roman, Times, Times Roman">A mini-window</font></td>
</tr>
</tbody>
</table>
</center><br />
<br />
You can move the miniwindow around the screen by dragging it. Unlike application icons, miniwindows cannot be
docked.<br />
<br />
To restore a window from it's miniwindow, double click the miniwindow. The window will be restored in the current
workspace, with the same position, size and contents as it had before miniaturization.<br />
<br />
<br />
<font face="Helvetica"><b>To miniaturize a window:</b></font>
<ul type="disc">
<li><font face="Helvetica">Click on the miniaturize button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Use the keyboard shortcut assigned to this action, Meta+m in the default
configuration.</font></li>
</ul><br />
<br />
You can also restore all miniaturized and hidden windows of a given application by double clicking in it's application
icon with the middle mouse button.<br />
<br />
<br />
<a name="2.2.6"></a>
<h3><a name="2.2.6">2.2.6 Shading a Window</a></h3><a name="2.2.6"></a> If you want to temporarily get rid of a window,
an option for it's miniaturization is to <i>shade</i> it. When you shade a window, the window rolls up to it's
titlebar. You can do almost everything you do with a normal window with shaded windows, like miniaturizing or closing
it.<br />
<br />
<br />
<br />
<br />
<font face="Helvetica"><b>To shade a window:</b></font>
<ul type="disc">
<li><font face="Helvetica">Double Click on the titlebar of the window.</font></li>
</ul>
<center>
<img src="guide/images/shade.gif" border="0" width="287" height="279" alt="[A Shaded window]" />
</center><br />
<br />
<br />
<a name="2.2.7"></a>
<h3><a name="2.2.7">2.2.7 Closing a Window</a></h3><a name="2.2.7"></a> After finishing work in a window, you can close
it to completely get rid of it. When you close a window, it is removed from the screen and can no longer be restored.
So, before closing a window, be sure you have saved any work you were doing on it.<br />
<br />
<center>
<img src="guide/imagtitle2.gif" border="0" width="200" height="50" alt="A Titlebar with a close button" />
</center><br />
<br />
Some windows will have a close button with some dots around it. These windows can't be closed normally and the only way
to get rid of them is by exiting the application. You should try exiting from inside the application (through it's
menus or buttons) when possible. Otherwise you can force WindowMaker to ``kill'' the application.<br />
<br />
<br />
<font face="Helvetica"><b>To force the closure of a window (by killing the application):</b></font>
<ul type="disc">
<li><font face="Helvetica">Hold the Control key and click on the close button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Double click the close button.</font></li>
</ul><br />
<br />
It is also possible to kill applications that can be normally closed by clicking the close button while holding the
Control key.<br />
<br />
<br />
<a name="2.2.8"></a>
<h3><a name="2.2.8">2.2.8 Maximizing a Window</a></h3><a name="2.2.8"></a> If you want to resize a window to occupy the
whole screen, you can maximize the window. When you unmaximize it, the window will be restored to the same position and
size it was before maximized.<br />
<br />
<br />
<font face="Helvetica"><b>To maximize a window:</b></font>
<ul type="disc">
<li><font face="Helvetica">Hold the Control key and double click on the window titlebar to resize the window's height
to full screen.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Hold the Shift key and double click on the window titlebar to resize the window's width to
full screen.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Hold both the Control and Shift keys and double click on the window titlebar to resize
both window's height and width to full screen.</font></li>
</ul><br />
<br />
<br />
<font face="Helvetica"><b>To restore the size of a maximized window:</b></font>
<ul type="disc">
<li><font face="Helvetica">Hold the Control OR Shift key and double click on the window titlebar.</font></li>
</ul><br />
<br />
You can select whether the window should be maximized to the whole screen or if the position of the Dock should be
accounted for by setting the <i>WinDock</i> option.<br />
<br />
<br />
<br />
<a name="2.2.9"></a>
<h3><a name="2.2.9">2.2.9 The Window Commands Menu</a></h3><a name="2.2.9"></a> Clicking on the titlebar of a window
with the right mouse button will open a menu containing commands that will apply to that window. The menu can also be
opened through the keyboard with the Control+Escape key, by default.<br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">(Un)Maximize</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will either maximize the window
horizontally and vertically, or, if the window is a;ready maximized, restore the window to the size it was
prior to being maximized.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Miniaturize</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will miniaturize the
window.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">(Un)Shade</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will shade the window, or
unshade it if it is already shaded.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Hide</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will hide all the windows of the
application</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Hide Others</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will hide all current
applications except the current one</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Move To</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Allows you to move the window to
a different workspace</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Attributes...</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Opens the Window Attributes
Inspector (see section <a href="#2.3">2.3</a>
)</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Close</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will close the
window</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Kill</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will kill the application. Use
this option only if the application does not provide means to close it normally, or in extreme
cases.</font></td>
</tr>
</tbody>
</table>
</center><a name="2.3"></a>
<h2><a name="2.3">2.3 The Window Attributes Inspector</a></h2><a name="2.3"></a> <a name="2.3.1"></a>
<h3><a name="2.3.1">2.3.1 Window Specification</a></h3><a name="2.3.1"></a> This panel Allows you to specify the
WM_CLASS that WindowMaker should use to identify the window whose attributes you are setting.<br />
<br />
<center>
<img src="guide/images/wiaspec.gif" border="0" width="262" height="374" alt=
"[Window Attributes Inspector: Window Specification]" />
</center><br />
<br />
<br />
<a name="2.3.2"></a>
<h3><a name="2.3.2">2.3.2 Window Attributes</a></h3><a name="2.3.2"></a> This panel lets you set the attributes for the
selected window.<br />
<br />
<center>
<img src="guide/images/wiaattrib.gif" border="0" width="262" height="374" alt=
"[Window Attributes Inspector: Window Attributes]" />
</center><br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Disable titlebar</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the titlebar for the
selected window not to be displayed</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Disable resizebar</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the resizebar for the
selected window not to be displayed</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Disable close
button</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the close button for the
selected window not to be displayed</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Disable miniaturize
button</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the miniaturize button
for the selected window not to be displayed</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Keep on Top</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to
stay on top of all other windows</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Omnipresent</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to be
displayed in all workspaces</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Start miniaturized</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to
start miniaturized</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Skip window list</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the select window to be
skipped when cycling through the window list.</font></td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<a name="2.3.3"></a>
<h3><a name="2.3.3">2.3.3 Advanced Options</a></h3><a name="2.3.3"></a><br />
<br />
<center>
<img src="guide/images/wiaadvanced.gif" border="0" width="262" height="374" alt=
"[Window Attributes Inspector: Advanced Options]" />
</center><br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Ignore HideOthers</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to
remain visible when <b>HideOthers</b> is selected from the <a href=
"#2.2.9">Window Commands Menu</a></font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Don't bind keyboard
shortcuts</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to
receive ALL keyboard events</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Don't bind mouse
clicks</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window to
receive all mouse-click events</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Keep Inside Screen</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window not
to be able to place itself off the screen</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Don't let it take
focus</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the selected window not
to be able to take input focus</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Don't Save Session</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Causes the state of the selected
window not to be saved when a session is saved. (either when quitting WindowMaker, or when done
manually.)</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Emulate Application
Icon</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Emulates an Application Icon for
"broken" applications</font></td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<a name="2.3.4"></a>
<h3><a name="2.3.4">2.3.4 Icon and Initial Workspace</a></h3><a name="2.3.4"></a> This panel allows you to
<b>browse</b> for, and <b>update</b> the <b>mini-window image</b> for the selected window, as well as setting the
<b>initial workspace.</b><br />
<br />
<center>
<img src="guide/images/wiaiandiw.gif" border="0" width="262" height="374" alt=
"[Window Attributes Inspector: Icon and Initia Workspace]" />
</center><br />
<br />
<br />
<br />
<br />
<a name="2.3.5"></a>
<h3><a name="2.3.5">2.3.5 Application Specific</a></h3><a name="2.3.5"></a> Attributes specific to the selected
application<br />
<br />
<center>
<img src="guide/images/wiaappspec.gif" border="0" width="262" height="374" alt=
"[Window Attributes Inspector: Icon and Initia Workspace]" />
</center><br />
<br />
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Start hidden</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Starts the selected application in
a hidden state</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">No application icon</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Disables the application icon for
the selected application</font></td>
</tr>
</tbody>
</table><br />
<br />
<br />

474
docs/chap2.rst Normal file
View File

@@ -0,0 +1,474 @@
---
layout: default
title: User Guide - Windows
---
Windows
=======
Anatomy of a Window
-------------------
Generally an application will have the following layout:
.. figure:: guide/images/anatomy.gif
:figclass: borderless
:alt: Anatomy of a Window
Titlebar
The titlebar presents the name of the application, document or window. It's
color indicates the keyboard focus state and type of the window. You can use
it to move, activate, raise, lower and access the window commands menu.
Miniaturize button
You can click on the miniaturize button to miniaturize/iconify a window or
click it with the **Meta** key pressed to hide the application.
Close Button
The close button can be used to close a window or kill the application, if
the application can't understand the close message.
Resizebar
You use the resizebar to (surprise!) resize a window.
Client Area
The client area is where the application show it's information. If the
window if inactive, you can click on it to activate it.
Working With Windows
--------------------
Focusing a Window
~~~~~~~~~~~~~~~~~
Windows can be in two states: *focused*, or *unfocused.* The focused window
(also called the key or active window) has a black titlebar and is the window
that receives keyboard input, ie: where you can type text. Usually it's the
window where you work on. Only one window may be focused at a time. Unfocused
windows have a light gray titlebar. Some applications have a special type of
window, called dialog windows transient windows or panels. When these windows
are active, the window that owns them (the main window) get a dark gray
titlebar. As soon as the dialog window is closed, the focus is returned to the
owner window.
The image below shows an active Open File panel and it's owner window.
.. figure:: guide/images/focus.gif
:figclass: borderless
:alt: Focused, Unfocused, and Parent Window
There are three styles of window focusing:
**Click-to-Focus**, or manual focus mode. In click-to-focus mode, you
explicitly choose the window that should be focused. This is the default mode.
**Focus-Follow-Mouse**, or auto-focus mode. In this mode, the focused window is
chosen based on the position of the mouse pointer. The window below the mouse
pointer is always the focused window.
**Sloppy-Focus**, or semi-auto-focus mode. This is similar to the
focus-follow-mouse mode, but if you move the pointer from a window to the root
window, the window will not loose focus.
You can choose between these modes with the *FocusMode* option.
To focus a window in **Click-To-Focus** mode:
- Click on the titlebar, resizebar or in the client area of the window with the
left or right mouse button.
OR
- Click on the titlebar with the middle mouse button. This will focus the
window without bringing it to the front.
OR
- Open the window list menu and select the window to focus.
When you click in the client area of an inactive window to set the focus, the
click is normally processed by the application. If you find this behaviour a
little confusing, you can make the application ignore this click by using the
*IgnoreFocusClick* option.
To focus a window in **Focus-Follow-Mouse** mode:
- Move the pointer over the window you want to focus.
Reordering Overlapping Windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows can overlap other windows, making some windows be over or in front of
others.
To bring a window to the front:
- Click on the titlebar or resizebar of the desired window with the left mouse
button.
OR
- Select the desired window from the Window List menu.
Dialog/transient windows are always placed over their owner windows, unless the
*OnTopTransients* option is disabled. Some windows have a special attribute
that allow them be permanently over normal windows. You can make specific
windows have this attribute use the *AlwaysOnTop* window option or set it in
the Window Inspector panel.
**Extra Bindings**
+------------------------------------+--------------------------------------+
| Action | Effect |
+====================================+======================================+
| Meta-Click on the window titlebar, | Sends the window to the |
| with the left mouse button | back. |
+------------------------------------+--------------------------------------+
| Meta-Click on the Client Area of | Brings the window to the front and |
| the window with the left mouse | focuses it. |
| button. | |
+------------------------------------+--------------------------------------+
| Hold the Meta key and press the Up | Brings the current focused window to |
| Arrow key | the front. |
+------------------------------------+--------------------------------------+
| Hold the Meta key and press the | Sends the current focused window to |
| Down Arrow key | the back. |
+------------------------------------+--------------------------------------+
Moving a Window
~~~~~~~~~~~~~~~
To move the window around the screen, drag the window through it's titlebar
with the left mouse button pressed. This will also bring the window to the
front and focus the window.
To move a window:
- Click on the titlebar of the window you want to move with the left mouse
button and drag it with the button pressed.
While you move the window, a little box will appear in the screen, indicating
the current window position in pixels, relative to the top left corner of the
screen. You can change the location of this position box by hitting the Shift
key during the move operation.
In some rare occasions, it is possible for a window to be placed off screen.
This can happen with some buggy applications. To bring a window back to the
visible screen area, select the window in the Window List menu. You can prevent
windows from doing that with the *DontMoveOff* window attribute.
**Extra Bindings**
+-------------------------------------+---------------------------------------+
| Action | Effect |
+=====================================+=======================================+
| Drag the titlebar with the middle | Move the window without changing it's |
| mouse button | stacking order. |
+-------------------------------------+---------------------------------------+
| Drag the titlebar while holding the | Move the window without focusing it. |
| Control key | |
+-------------------------------------+---------------------------------------+
| Drag the client area or resizebar | Move the window. |
| while holding the Meta key | |
+-------------------------------------+---------------------------------------+
Resizing a Window
~~~~~~~~~~~~~~~~~
The size of a window can be adjusted by dragging the resizebar.
.. figure:: guide/images/resizebar.gif
:figclass: borderless
:alt: A Resizebar
Depending on the place you click to drag the resizebar, the resize operation is
constrained to a direction.
To resize a window:
- To change the window's height, click in the middle region of the resizebar
and drag it vertically.
- To change the window's width, click in either end regions of the resizebar
and drag it horizontally.
- To change both height and width at the same time, click in either end regions
of the resizebar and drag it diagonally.
**Extra Bindings**
+------------------------------------+------------------------------------+
| Action | Effect |
+====================================+====================================+
| Drag the window in the client area | Resizes the window. |
| with the Right mouse button, while | |
| holding the Meta key | |
+------------------------------------+------------------------------------+
| Drag the resizebar with the middle | Resize the window without bringing |
| mouse button | it to the front |
+------------------------------------+------------------------------------+
| Drag the resizebar while holding | Resize the window without focusing |
| the Control key | it. |
+------------------------------------+------------------------------------+
Miniaturizing a Window
~~~~~~~~~~~~~~~~~~~~~~
If you want to temporarily get rid of a window, you can miniaturize it.
.. figure:: guide/images/title.gif
:figclass: borderless
:alt: A Titlebar
When miniaturizing a window, it will shrink into a miniwindow with a icon and a
title that is placed at the bottom of the screen.
.. figure:: guide/images/mini.gif
:figclass: borderless
:alt: A Mini-window
A mini-window
You can move the miniwindow around the screen by dragging it. Unlike
application icons, miniwindows cannot be docked.
To restore a window from it's miniwindow, double click the miniwindow. The
window will be restored in the current workspace, with the same position, size
and contents as it had before miniaturization.
To miniaturize a window:
- Click on the miniaturize button
OR
- Use the keyboard shortcut assigned to this action, Meta+m in the default
configuration.
You can also restore all miniaturized and hidden windows of a given application
by double clicking in it's application icon with the middle mouse button.
Shading a Window
~~~~~~~~~~~~~~~~
If you want to temporarily get rid of a window, an option for it's
miniaturization is to *shade* it. When you shade a window, the window rolls up
to it's titlebar. You can do almost everything you do with a normal window with
shaded windows, like miniaturizing or closing it.
To shade a window:
- Double Click on the titlebar of the window.
.. figure:: guide/images/shade.gif
:figclass: borderless
:alt: A Shaded window
Closing a Window
~~~~~~~~~~~~~~~~~
After finishing work in a window, you can close it to completely get rid of it.
When you close a window, it is removed from the screen and can no longer be
restored. So, before closing a window, be sure you have saved any work you were
doing on it.
.. figure:: guide/images/imagtitle2.gif
:figclass: borderless
:alt: A Titlebar with a close button
Some windows will have a close button with some dots around it. These windows
can't be closed normally and the only way to get rid of them is by exiting the
application. You should try exiting from inside the application (through it's
menus or buttons) when possible. Otherwise you can force WindowMaker to
``kill`` the application.
To force the closure of a window (by killing the application):
- Hold the Control key and click on the close button.
OR
- Double click the close button.
It is also possible to kill applications that can be normally closed by
clicking the close button while holding the Control key.
Maximizing a Window
~~~~~~~~~~~~~~~~~~~
If you want to resize a window to occupy the whole screen, you can maximize the
window. When you unmaximize it, the window will be restored to the same
position and size it was before maximized.
To maximize a window:
- Hold the Control key and double click on the window titlebar to resize the
window's height to full screen.
OR
- Hold the Shift key and double click on the window titlebar to resize the
window's width to full screen.
OR
- Hold both the Control and Shift keys and double click on the window titlebar
to resize both window's height and width to full screen.
To restore the size of a maximized window:
- Hold the Control OR Shift key and double click on the window titlebar.
You can select whether the window should be maximized to the whole screen or if
the position of the Dock should be accounted for by setting the *WinDock*
option.
The Window Commands Menu
~~~~~~~~~~~~~~~~~~~~~~~~
Clicking on the titlebar of a window with the right mouse button will open a
menu containing commands that will apply to that window. The menu can also be
opened through the keyboard with the Control+Escape key, by default.
(Un)Maximize
Will either maximize the window horizontally and vertically, or, if the
window is already maximized, restore the window to the size it was prior to
being maximized.
Miniaturize
Will miniaturize the window.
(Un)Shade
Will shade the window, or unshade it if it is already shaded.
Hide
Will hide all the windows of the application
Hide Others
Will hide all current applications except the current one
Move To
Allows you to move the window to a different workspace
Attributes...
Opens the Window Attributes Inspector (see section `2.3 <#2.3>`)
Close
Will close the window
Kill
Will kill the application. Use this option only if the application does not
provide means to close it normally, or in extreme cases.
The Window Attributes Inspector
-------------------------------
Window Specification
~~~~~~~~~~~~~~~~~~~~
This panel Allows you to specify the WM_CLASS that WindowMaker should use to
identify the window whose attributes you are setting.
.. figure:: guide/images/wiaspec.gif
:figclass: borderless
:alt: Window Attributes Inspector: Window Specification
Window Attributes
~~~~~~~~~~~~~~~~~~
This panel lets you set the attributes for the selected window.
.. figure:: guide/images/wiaattrib.gif
:figclass: borderless
:alt: Window Attributes Inspector: Window Attributes
Disable titlebar
Causes the titlebar for the selected window not to be displayed
Disable resizebar
Causes the resizebar for the selected window not to be displayed
Disable close button
Causes the close button for the selected window not to be displayed
Disable miniaturize button
Causes the miniaturize button for the selected window not to be displayed
Keep on Top
Causes the selected window to stay on top of all other windows
Omnipresent
Causes the selected window to be displayed in all workspaces
Start miniaturized
Causes the selected window to start miniaturized
Skip window list
Causes the select window to be skipped when cycling through the window list.
Advanced Options
~~~~~~~~~~~~~~~~
.. figure:: guide/images/wiaadvanced.gif
:figclass: borderless
:alt: Window Attributes Inspector: Advanced Options
Ignore HideOthers
Causes the selected window to remain visible when **HideOthers** is selected
from the `Window Commands Menu <#2.2.9>`_
Don't bind keyboard shortcuts
Causes the selected window to receive ALL keyboard events
Don't bind mouse clicks
Causes the selected window to receive all mouse-click events
Keep Inside Screen
Causes the selected window not to be able to place itself off the screen
Don't let it take focus
Causes the selected window not to be able to take input focus
Don't Save Session
Causes the state of the selected window not to be saved when a session is
saved. (either when quitting WindowMaker, or when done manually.)
Emulate Application Icon
Emulates an Application Icon for "broken" applications
Icon and Initial Workspace
~~~~~~~~~~~~~~~~~~~~~~~~~~
This panel allows you to **browse** for, and **update** the **mini-window
image** for the selected window, as well as setting the **initial workspace**.
.. figure:: guide/images/wiaiandiw.gif
:figclass: borderless
:alt: Window Attributes Inspector: Icon and Initia Workspace
Application Specific
~~~~~~~~~~~~~~~~~~~~
Attributes specific to the selected application
.. figure:: guide/images/wiaappspec.gif
:figclass: borderless
:alt: Window Attributes Inspector: Icon and Initia Workspace
Start hidden
Starts the selected application in a hidden state
No application icon
Disables the application icon for the selected application

View File

@@ -1,422 +0,0 @@
---
layout: default
title: User Guide - Workspace
---
<br />
<br />
<br />
<h2>Chapter 3</h2>
<h1>The Workspace</h1><br />
<br />
<br />
<a name="3.1"></a>
<h2><a name="3.1">3.1 Working with Menus</a></h2><a name="3.1"></a> Menus provide a list of commands that you can
execute.<br />
<br />
<center>
<img src="guide/images/menu.gif" border="0" width="480" height="300" alt="[An Example Menu]" />
</center><br />
<br />
To execute a command listed in a menu, click in the corresponding item. The item will blink telling that the command is
going to be executed.<br />
<br />
Grayed commands are disabled and cannot be executed at that moment. If you click on them nothing will happen.<br />
<br />
Some menu entries have a little triangular indicator at the right. Selecting these entries will open a submenu, with a
new list of commands.<br />
<br />
You can use the keyboard to traverse and execute commands in some of the menus. First you must hit the key used to open
the menu --- like F12 for the root menu --- to enable keyboard traversal of it. Then you can use the Up and Down arrow
keys to change the current selected item and the Left and Right arrow keys to jump between submenus and parent menus.
To execute the current selected item press Return. To close the menu or stop menu traversal, press Escape.
Additionally, pressing the first letter for an menu item, will jump the current selection to that item.<br />
<br />
You can make frequently used menus ``stick'' to the workspace by dragging the titlebar of the menu. This will make a
close button appear in the menu titlebar. If you want to close the menu, just click in that button.<br />
<br />
Menus are normally placed on top of other windows and cannot be obscured by them. If you want the menus to be able to
be obscured by lowering them, double click the menu titlebar while holding the Meta key. Repeat this to make the menus
not obscurable again.<br />
<br />
<br />
<a name="3.1.1"></a>
<h3><a name="3.1.1">3.1.1 The Root Window Menu</a></h3><a name="3.1.1"></a> The <i>Root Window Menu</i> or
<i>Applications Menu</i> has items that allow you to quickly launch applications and do some workspace
management.<br />
<br />
To open this menu, click on the workspace (root window) with the 3rd mouse button or hit the key bound to it (F12 by
default).<br />
<br />
The contents of the applications menu can be configured to hold the applications installed on your system. To learn how
to configure it, read the section on application menu configuration.<br />
<br />
<br />
<a name="3.1.2"></a>
<h3><a name="3.1.2">3.1.2 The Window List Menu</a></h3><a name="3.1.2"></a> Clicking in the workspace with the middle
mouse button will open a menu listing all windows that currently exist, with the workspace in which the window is
located to its right. The current focused window is marked by a diamond sign next to its name. Clicking in an entry in
this menu will focus the window, raise it, and change to the workspace where it is located.<br />
<br />
<br />
<br />
<a name="3.2"></a>
<h2><a name="3.2">3.2 Working with Applications</a></h2><a name="3.2"></a> In WindowMaker the instance of a running
application is represented by an application icon. Do not confuse it with the icons (miniwindows in WindowMaker)
displayed by other window managers when a window is iconified. Application icons and miniwindows can be differentiated
in that miniwindows have titlebars, application icons do not.<br />
<br />
WindowMaker identifies a group of windows as belonging to a single instance of an application through some standard
hints that the application sets in its windows. Unfortunately, not all applications that exist set these hints,
preventing some application-specific features from working. These hints are <b>WM.CLASS</b>,<b>WM.COMMAND</b>, and
<b>WM.CLIENT.LEADER</b> or the group leader in <b>WM.HINTS</b>.<br />
<br />
<br />
<font size="-1">Note: The information about applications contained in this section only applies to versions of
WindowMaker built without the --enable-single-icon compile time option. This option is unsupported and behaviour when
it's enabled will not be covered in this text.</font><br />
<br />
<br />
<a name="3.2.1"></a>
<h3><a name="3.2.1">3.2.1 Hiding an Application</a></h3><a name="3.2.1"></a> If you want to close and application but
intend to use it later you can <i>hide</i> it. When you hide an application all windows and miniwindows that belong to
that application will be removed from the screen and hidden into its application icon.<br />
<br />
<br />
<font face="Helvetica"><b>To hide an application</b></font>
<ul type="disk">
<li><font face="Helvetica">Click the miniaturize button of any of the windows that belong to the application while
holding the Control key.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Press the keyboard shortcut assigned to it, which is Meta+h in the default
configuration.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">User the hide command in the <a href=
"chap2.html#2.2.9">window commands menu</a> brought up when the
window titlebar is clicked with the right mouse button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Use the (Un)Hide command in the application icon commands menu brought up when the
application icon is clicked with the right mouse button.</font></li>
</ul><br />
<br />
<br />
<font face="Helvetica"><b>To unhide an application</b></font>
<ul type="disk">
<li><font face="Helvetica">Double click the application icon with the left mouse button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Use the (Un)Hide command in the application icon commands menu brought up when the
application icon is clicked with the right mouse button.</font></li>
</ul><br />
<br />
When you unhide an application, all it's windows and miniwindows will brought back, and you will be taken to the last
workspace in which you worked with that application.<br />
<br />
<br />
<h3><b>Extra Bindings</b></h3>
<center>
<table border="0" width="80%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th align="left"><font face="Times New Roman, Times, Times Roman">Action</font></th>
<th align="left"><font face="Times New Roman, Times, Times Roman">Effect</font></th>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Double-click the application
icon while holding the Meta key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Unhide the clicked application,
and hide all other applications that are present in the current workspace.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Double-click the application
icon while holding the Shift key</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Unhide the clicked application
in the current workspace</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Double-click the application
icon with the middle mouse button</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Unhide the clicked application
and deminiaturize all its windows.</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Double-click the window titlebar
with the right mouse button while holding the Meta key.</font></td>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Hide all applications in the
current workspace except for the clicked one</font></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</tbody>
</table>
</center><br />
<br />
There are two other commands in the applications menu related to application hiding:<br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Hide others</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Hide all applications in the
current workspace, except for the currently active one.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Show All</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Unhide all applications that
were hidden from the current workspace</font></td>
</tr>
</tbody>
</table>
</center><br />
<br />
<br />
<br />
<a name="3.2.2"></a>
<h3><a name="3.2.2">3.2.2 The Application Icon Menu</a></h3><a name="3.2.2"></a> A menu with commands that will apply
to the application can be brought up by clicking the application icon with the right mouse button.<br />
<br />
The commands available in this menu are:<br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Unhide Here</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Unhides the application in the
current workspace.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">(Un)Hide</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Hides the application. Unless
the application is already hidden, in which case it will unhide the application and take you to its
workspace.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Set Icon...</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Opens the icon image selection
panel for the application icon.</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">Kill</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Will kill the
application.</font></td>
</tr>
</tbody>
</table>
</center><a name="3.2.3"></a>
<h3><a name="3.2.3">3.2.3 The Application Dock</a></h3><a name="3.2.3"></a> The application dock is a place where you
can store frequently used applications for easy and fast access. It is located, by default, on the right side of the
screen.<br />
<br />
You can click the top icon (the one with the GNUstep logo) and drag it downward to remove most of the dock from view.
You can also drag it sideways to move the entire dock from side of the screen to the other.<br />
<br />
A menu similar to the <a href="#3.2.2">application icon
menu</a> is brought up when you click a docked icon with the right mouse button.<br />
<br />
To make the dock <i>float</i> over windows (not be coverable by windows), either double-click the top dock icon while
holding the Meta key, or select the "Floating Dock" option in the dock menu.<br />
<br />
<br />
<b>Starting a docked application</b><br />
<br />
To start an application that is docked, double-click its icon. The icon will be briefly highlighted and the application
will start.<br />
<br />
While an application is not running an ellipsis is present in the lower left-hand corner of the icon. This ellipsis
will disappear when the application is started and reappear when the application is exited.<br />
<br />
While the application is running the docked icon will behave just like a normal, undocked application icon, except for
some extra actions specific to the dock.<br />
<br />
<br />
<font face="Helvetica"><b>To start a docked application:</b></font>
<ul type="disk">
<li><font face="Helvetica">Double-click the application icon with the left mouse button.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Use the "Launch" command in the dock menu for the icon. If the application is already
running it will start another instance.<br />
<br />
OR<br />
<br /></font></li>
<li><font face="Helvetica">Hold the Control key while double-clicking the icon to start another instance of the
application.</font></li>
</ul><br />
<br />
If a new instance of an already running application is started it will get a new application icon.<br />
<br />
<br />
<b>Customizing the dock</b><br />
<br />
To add new applications to the dock, you can click an application icon and drag it onto the dock. When a ghost image of
the icon appears you can release the mouse button and the icon will be docked.<br />
<br />
To reorder the docked applications, drag an icon to an empty slot and move the icons around as you want.<br />
<br />
To remove a docked application, drag it from the dock and release the mouse button when the ghost image disappears. To
remove the icon of an application that is running, hold the Meta key while dragging it.<br />
<br />
<br />
<b>Configuring the docked application</b><br />
<br />
To change the settings of a docked application, select the "Settings..." item in the dock menu for that icon. A
settings panel for that icon will appear.<br />
<br />
<center>
<img src="guide/imagdockapppanel.gif" border="0" width="297" height="369" alt="[Docked Application Settings Panel]" />
</center><br />
<br />
In the <i>Application path and arguments</i> field, the path for the application and its arguments can be changed. Note
that you can't change the application that is represented in the icon or change anything that would cause the
application name to be changed. For example, if the icon is for <b>xterm</b> you can't change the field's value to
<b>ghostview</b>; or if the icon is for <b>xterm -name vi</b>, you can't change it to <b>xterm -name pine</b>. Also
note that you cannot use shell commands, such as out put redirectors. (&gt;, &gt;&gt; etc.)<br />
<br />
<br />
<a name="3.3"></a>
<h2><a name="3.3">3.3 Working with Workspaces</a></h2><a name="3.3"></a><br />
<a name="3.3.1"></a>
<h3><a name="3.3.1">3.3.1 The Workspaces Menu</a></h3><a name="3.3.1"></a> The <i>Workspaces Menu</i> allows you to
create, switch, destroy and rename workspaces.<br />
<br />
It has the following items:<br />
<br />
<center>
<table border="0" width="90%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">[New]</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Creates a new workspace and
automatically switches to it</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">[Destroy Last]</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Destroys the last workspace
unless it is occupied</font></td>
</tr>
<tr>
<th align="right" valign="top"><font face="Times New Roman, Times, Times Roman">[Workspaces]</font></th>
<td align="left" valign="top"><font face="Times New Roman, Times, Times Roman">Each workspace has a
corresponding item in the Workspaces menu. Clicking in one of these entries will switch from the current
workspace to the selected workspace.</font></td>
</tr>
</tbody>
</table>
</center>The current active workspace is indicated by a small indicator at the left of the workspace item.<br />
<br />
<center>
<img src="guide/images/wsmenu.gif" border="0" width="350" height="200" alt="[Workspace Menu]" />
</center><br />
<br />
To change the name of a workspace you must first ``stick'' the menu. Then Control click in the item corresponding to
the workspace you want to rename. The item will turn into a editable text field where you can edit the workspace name.
To finish editing the workspace name, press Return; to cancel it, press Escape.<br />
<br />
There is a limit of 16 characters on the length of the workspace name.<br />
<br />
<br />
An example Workspace menu being edited:
<center>
<img src="guide/images/wsmenued.gif" border="0" width="101" height="103" alt=
"[Workspace Menu: Editing a Workspace name]" />
</center><br />
<br />
<a name="3.3.2"></a>
<h3><a name="3.3.2">3.3.2 The workspace clip</a></h3><a name="3.3.2"></a> [This section was unavailable in the
original, and thus is not here]<br />
<br />
<br />
<br />
<br />
<br />

322
docs/chap3.rst Normal file
View File

@@ -0,0 +1,322 @@
---
layout: default
title: User Guide - Workspace
---
The Workspace
=============
Working with Menus
------------------
Menus provide a list of commands that you can execute.
.. figure:: guide/images/menu.gif
:figclass: borderless
:alt: An Example Menu
To execute a command listed in a menu, click in the corresponding item. The
item will blink telling that the command is going to be executed.
Grayed commands are disabled and cannot be executed at that moment. If you
click on them nothing will happen.
Some menu entries have a little triangular indicator at the right. Selecting
these entries will open a submenu, with a new list of commands.
You can use the keyboard to traverse and execute commands in some of the menus.
First you must hit the key used to open the menu - like F12 for the root menu -
to enable keyboard traversal of it. Then you can use the Up and Down arrow keys
to change the current selected item and the Left and Right arrow keys to jump
between submenus and parent menus. To execute the current selected item press
Return. To close the menu or stop menu traversal, press Escape. Additionally,
pressing the first letter for an menu item, will jump the current selection to
that item.
You can make frequently used menus "stick" to the workspace by dragging the
titlebar of the menu. This will make a close button appear in the menu
titlebar. If you want to close the menu, just click in that button.
Menus are normally placed on top of other windows and cannot be obscured by
them. If you want the menus to be able to be obscured by lowering them, double
click the menu titlebar while holding the Meta key. Repeat this to make the
menus not obscurable again.
The Root Window Menu
~~~~~~~~~~~~~~~~~~~~
The *Root Window Menu* or *Applications Menu* has items that allow you to
quickly launch applications and do some workspace management.
To open this menu, click on the workspace (root window) with the 3rd mouse
button or hit the key bound to it (F12 by default).
The contents of the applications menu can be configured to hold the
applications installed on your system. To learn how to configure it, read the
section on application menu configuration.
The Window List Menu
~~~~~~~~~~~~~~~~~~~~
Clicking in the workspace with the middle mouse button will open a menu listing
all windows that currently exist, with the workspace in which the window is
located to its right. The current focused window is marked by a diamond sign
next to its name. Clicking in an entry in this menu will focus the window,
raise it, and change to the workspace where it is located.
Working with Applications
-------------------------
In WindowMaker the instance of a running application is represented by an
application icon. Do not confuse it with the icons (miniwindows in WindowMaker)
displayed by other window managers when a window is iconified. Application
icons and miniwindows can be differentiated in that miniwindows have titlebars,
application icons do not.
WindowMaker identifies a group of windows as belonging to a single instance of
an application through some standard hints that the application sets in its
windows. Unfortunately, not all applications that exist set these hints,
preventing some application-specific features from working. These hints are
**WM.CLASS**, **WM.COMMAND**, and **WM.CLIENT.LEADER** or the group leader in
**WM.HINTS**.
Note: The information about applications contained in this section only applies
to versions of WindowMaker built without the --enable-single-icon compile time
option. This option is unsupported and behaviour when it's enabled will not be
covered in this text.
Hiding an Application
~~~~~~~~~~~~~~~~~~~~~
If you want to close and application but intend to use it later you can *hide*
it. When you hide an application all windows and miniwindows that belong to
that application will be removed from the screen and hidden into its
application icon.
To hide an application:
- Click the miniaturize button of any of the windows that belong to the
application while holding the Control key.
OR
- Press the keyboard shortcut assigned to it, which is Meta+h in the default
configuration.
OR
- User the hide command in the `window commands menu
<chap2.html#the-window-commands-menu>`_ brought up when the window titlebar
is clicked with the right mouse button.
OR
- Use the (Un)Hide command in the application icon commands menu brought up
when the application icon is clicked with the right mouse button.
To unhide an application
- Double click the application icon with the left mouse button.
OR
- Use the (Un)Hide command in the application icon commands menu brought up
when the application icon is clicked with the right mouse button.
When you unhide an application, all it's windows and miniwindows will brought
back, and you will be taken to the last workspace in which you worked with that
application.
**Extra Bindings**
+-----------------------------------+------------------------------------+
| Action | Effect |
+===================================+====================================+
| Double-click the application icon | Unhide the clicked application, |
| while holding the Meta key | and hide all other applications |
| | that are present in the current |
| | workspace. |
+-----------------------------------+------------------------------------+
| Double-click the application icon | Unhide the clicked application in |
| while holding the Shift key | the current workspace |
+-----------------------------------+------------------------------------+
| Double-click the application icon | Unhide the clicked application and |
| with the middle mouse button | deminiaturize all its windows. |
+-----------------------------------+------------------------------------+
| Double-click the window titlebar | Hide all applications in the |
| with the right mouse button while | current workspace except for the |
| holding the Meta key. | clicked one. |
+-----------------------------------+------------------------------------+
There are two other commands in the applications menu related to application
hiding:
Hide others
Hide all applications in the current workspace, except for the currently
active one.
Show All
Unhide all applications that were hidden from the current workspace
The Application Icon Menu
~~~~~~~~~~~~~~~~~~~~~~~~~
A menu with commands that will apply to the application can be brought up by
clicking the application icon with the right mouse button.
The commands available in this menu are:
Unhide Here
Unhides the application in the current workspace.
(Un)Hide
Hides the application. Unless the application is already hidden, in which
case it will unhide the application and take you to its workspace.
Set Icon...
Opens the icon image selection panel for the application icon.
Kill
Will kill the application.
The Application Dock
~~~~~~~~~~~~~~~~~~~~
The application dock is a place where you can store frequently used
applications for easy and fast access. It is located, by default, on the right
side of the screen.
You can click the top icon (the one with the GNUstep logo) and drag it downward
to remove most of the dock from view. You can also drag it sideways to move
the entire dock from side of the screen to the other.
A menu similar to the `application icon menu <#the-application-icon-menu>`_ is
brought up when you click a docked icon with the right mouse button.
To make the dock *float* over windows (not be coverable by windows), either
double-click the top dock icon while holding the Meta key, or select the
"Floating Dock" option in the dock menu.
Starting a docked application
.............................
To start an application that is docked, double-click its icon. The icon will be
briefly highlighted and the application will start.
While an application is not running an ellipsis is present in the lower
left-hand corner of the icon. This ellipsis will disappear when the application
is started and reappear when the application is exited.
While the application is running the docked icon will behave just like a
normal, undocked application icon, except for some extra actions specific to
the dock.
To start a docked application:
- Double-click the application icon with the left mouse button.
OR
- Use the "Launch" command in the dock menu for the icon. If the application is
already running it will start another instance.
OR
- Hold the Control key while double-clicking the icon to start another instance
of the application.
If a new instance of an already running application is started it will get a
new application icon.
Customizing the dock
....................
To add new applications to the dock, you can click an application icon and drag
it onto the dock. When a ghost image of the icon appears you can release the
mouse button and the icon will be docked.
To reorder the docked applications, drag an icon to an empty slot and move the
icons around as you want.
To remove a docked application, drag it from the dock and release the mouse
button when the ghost image disappears. To remove the icon of an application
that is running, hold the Meta key while dragging it.
Configuring the docked application
..................................
To change the settings of a docked application, select the "Settings..." item
in the dock menu for that icon. A settings panel for that icon will appear.
.. figure:: guide/images/dockapppanel.gif
:figclass: borderless
:alt: Docked Application Settings Panel
In the *Application path and arguments* field, the path for the application and
its arguments can be changed. Note that you can't change the application that
is represented in the icon or change anything that would cause the application
name to be changed. For example, if the icon is for ``xterm`` you can't change
the field's value to **ghostview**; or if the icon is for ``xterm -name vi``,
you can't change it to ``xterm -name pine``. Also note that you cannot use
shell commands, such as output redirectors. (``>``, ``>>``; etc.)
Working with Workspaces
-----------------------
The Workspaces Menu
~~~~~~~~~~~~~~~~~~~~
The *Workspaces Menu* allows you to create, switch, destroy and rename
workspaces.
It has the following items:
New
Creates a new workspace and automatically switches to it
Destroy Last
Destroys the last workspace unless it is occupied
Workspaces
Each workspace has a corresponding item in the Workspaces menu. Clicking in
one of these entries will switch from the current workspace to the selected
workspace.
The current active workspace is indicated by a small indicator at the left of
the workspace item.
.. figure:: guide/images/wsmenu.gif
:figclass: borderless
:alt: Workspace Menu
To change the name of a workspace you must first "stick" the menu. Then Control
click in the item corresponding to the workspace you want to rename. The item
will turn into a editable text field where you can edit the workspace name. To
finish editing the workspace name, press Return; to cancel it, press Escape.
There is a limit of 16 characters on the length of the workspace name.
An example Workspace menu being edited:
.. figure:: guide/images/wsmenued.gif
:figclass: borderless
:alt: Workspace Menu: Editing a Workspace name
The workspace clip
~~~~~~~~~~~~~~~~~~~
.. WTF is that??
[This section was unavailable in the original, and thus is not here]

File diff suppressed because it is too large Load Diff

778
docs/chap4.rst Normal file
View File

@@ -0,0 +1,778 @@
---
layout: default
title: User Guide - Configuration
---
Configuring Window Maker
========================
.. contents::
:backlinks: none
:local:
The Defaults System
-------------------
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
*property lists* in the $(HOME)/GNUstep/Defaults directory. Each file in the
$(HOME)/GNUstep/Defaults directory contains data that belongs to a specific
*domain*.
Any application can use the defaults database to store its information.
Generally an application will have one or more *domains* that belong to it.
Property list File Format
~~~~~~~~~~~~~~~~~~~~~~~~~
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.
The EBNF for the property list is the following:
**Description of the syntax of a property list in the Bacchus Naur Form (BNF)**
.. code::
:class: highlight
<object> ::= <string> | <data> | <array> | <dictionary>
<string> ::= text with non-alphanumeric characters | alphanumeric text
<array> ::= `(' [ <object> { `,' <object> }* ] `)'
<dictionary> ::= `{' [ <keyval_pair> { `,' <keyval_pair> }* ] `}'
<keyval_pair> ::= <string> `=' <object> `;'
**Example property list file**
.. code::
:class: highlight
{
"*" = {
Icon = "defaultAppIcon.xpm";
};
"xterm.XTerm" = {
Icon = "xterm.xpm";
};
xconsole = {
Omnipresent = YES;
NoTitlebar = YES;
KeepOnTop = NO;
};
}
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".
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.
Here is another example:
.. code::
:class: highlight
{
FTitleBack = ( hgradient, gray, "#112233" );
}
The property list in the example above contains an array with 3 elements with a
key named "FTitleBack".
Except for cases like file names and paths, all value strings are case
insensitive, i.e.: YES = Yes = yes = yEs.
Value Types
~~~~~~~~~~~
Here is a description of some of the types of values that an option might have:
+------------------+--------------------------------------------+
| Type | Value |
+==================+============================================+
| boolean | YES or NO |
+------------------+--------------------------------------------+
| integer | any integer number, usually limited |
| | by a range that will be indicated |
+------------------+--------------------------------------------+
| positive integer | any integer number greater than or |
| | equal to zero (0) a |
+------------------+--------------------------------------------+
| speed | UltraFast, Fast, Medium, Slow, or VerySlow |
+------------------+--------------------------------------------+
| mouse button | Left, Middle, Right, Button1, Button2, |
| | Button3, Button4, or Button5 |
+------------------+--------------------------------------------+
Preferences
~~~~~~~~~~~
General preference options are stored in the *WindowMaker* domain; i.e. the
$(HOME)/GNUstep/Defaults/WindowMaker file.
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 * .
Note that values marked as *Default* are values that are assumed if the option
is not specified, instead of *factory default* values that are set in the
preference file.
.. 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
+----------------------------+---------------------+--------------------------------------+
| Option | Value | Description |
+============================+=====================+======================================+
| PixmapPath | list of directories | A list of directories where pixmaps |
| | separated by ":" | can be found. The pixmaps for things |
| | (default: depends | like icons, are searched in these |
| | on the system) | paths in order of appearance. |
+----------------------------+---------------------+--------------------------------------+
| `*NoDithering` | boolean | Disable internal dithering of |
| | (default: NO) | images. Not recommended for displays |
| | | with less than 8 bits per pixel. |
+----------------------------+---------------------+--------------------------------------+
| `*ColormapSize` | integer number > 1 | Number of colors for each of the |
| | (default: 4) | 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. |
+----------------------------+---------------------+--------------------------------------+
| `*ModifierKey` | modifier key name | The key to use as the modifier being |
| | (default: Mod1) | 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. |
+----------------------------+---------------------+--------------------------------------+
| UseSaveUnders | boolean | Use *saveunders* in WindowMaker |
| | (default: NO) | windows. This can improve |
| | | performance but increases memory |
| | | usage. It also can cause problems |
| | | with refreshing in some |
| | | applications. |
+----------------------------+---------------------+--------------------------------------+
| DisableClip | boolean | Will remove the application Clip |
| | (default: NO) | from the workspace. |
+----------------------------+---------------------+--------------------------------------+
| DisableDock | boolean | Will remove the application Dock |
| | (default: NO) | from the workspace |
+----------------------------+---------------------+--------------------------------------+
| Superfluous | boolean | Enable extra animations and other |
| | (default: NO) | cosmetic things that might increase |
| | | peak memory and CPU usage. |
+----------------------------+---------------------+--------------------------------------+
| SaveSessionOnExit | boolean | Automatically save the state of the |
| | (default: NO) | session when exiting WindowMaker. |
+----------------------------+---------------------+--------------------------------------+
| `*IconSize` | integer > 4 | The size of application icons and |
| | (default: 64) | miniwindows. |
+----------------------------+---------------------+--------------------------------------+
| OpaqueMove | boolean | Whether the whole window should be |
| | (default: NO) | moved while dragging it, or, if only |
| | | it's frame should be dragged. |
+----------------------------+---------------------+--------------------------------------+
| FocusMode | Manual or | The mode of input focus setting. |
| | ClickToFocus, Auto | Refer to section `Focusing a Window |
| | or | <chap2.html#focusing-a-window>`_ |
| | FocusFollowsMouse, | |
| | SemiAuto or Sloppy | |
| | (default: | |
| | ClickToFocus) | |
| | | |
+----------------------------+---------------------+--------------------------------------+
| IgnoreFocusClick | boolean | Whether the mouse click use to focus |
| | (default: NO) | a window should be ignore or treated |
| | | normally. |
+----------------------------+---------------------+--------------------------------------+
| AutoFocus | boolean | Whether newly created windows should |
| | (default: NO) | receive input focus. Do not confuse |
| | | with FocusMode=Auto. |
+----------------------------+---------------------+--------------------------------------+
| RaiseDelay | integer number | How many tenths of a second to wait |
| | (default: 0) | before raising a window in Auto or |
| | | Semi-Auto focus mode. 0 disables |
| | | this feature. |
+----------------------------+---------------------+--------------------------------------+
| DoubleClickTime | integer number | If two mouse clicks occur in this |
| | (default: 250) | interval of time, it will be |
| | | considered a double click. |
+----------------------------+---------------------+--------------------------------------+
| ColorMapMode | Manual or | The mode of colormap setting. In |
| | ClickToFocus, | *Manual* or *ClickToFocus* mode, the |
| | Auto or | colormap is set to the one belonging |
| | FocusFollowsMouse | to the current focused window. In |
| | (default: auto) | *Auto* or *FocusFollowsMouse* mode, |
| | | the colormap is set to the one |
| | | belonging to the window under the |
| | | pointer. |
+----------------------------+---------------------+--------------------------------------+
| CirculateRaise | boolean | Whether the window should be raised |
| | (default: NO) | when circulating. (focus the next or |
| | | previous window through the |
| | | keyboard) |
+----------------------------+---------------------+--------------------------------------+
| OnTopTransients | boolean | Whether transient windows should |
| | (default: NO) | always be placed over their owners |
+----------------------------+---------------------+--------------------------------------+
| WindowPlacement | auto, cascade, | Sets placement mode for new windows. |
| | manual, or | *Auto* places the window |
| | random | automatically in the first open |
| | (default: cascade) | space found in the workspace. |
| | | *Cascade* places the window in |
| | | incrementing positions starting from |
| | | the the top-left corner of the |
| | | workspace. *Manual* allows you to |
| | | place the window interactively with |
| | | the mouse. *Random* paces the window |
| | | randomly in the workspace. |
+----------------------------+---------------------+--------------------------------------+
| WindowPlaceOrigin | (X,Y) where X | Sets the offset, from the top-left |
| | and Y are integer | corner of the screen, to place |
| | numbers | windows. In non-manual |
| | (default: (0,0)) | WindowPlacement modes windows will |
| | | not be placed above or to the left |
| | | of this point. |
+----------------------------+---------------------+--------------------------------------+
| AutoArrangeIcons | boolean | Whether icons should be |
| | (default: NO) | automatically arranged |
+----------------------------+---------------------+--------------------------------------+
| ResizeDisplay | center, corner, | Selects the type or position of the |
| | floating, or | box that shows the window size when |
| | line | a window is being resized. *center* |
| | (default: corner) | places the box in the center of the |
| | | workspace, *corner* places it in the |
| | | top-left corner of the workspace, |
| | | *floating* places it in the center |
| | | of the window being resized and |
| | | *line* draws the current window size |
| | | over the workspace, like in a |
| | | technical drawing. |
+----------------------------+---------------------+--------------------------------------+
| MoveDisplay | center, corner | Selects the type or position of the |
| | or floating | box that shows the window position |
| | (default: corner) | when a window is being moved. The |
| | | value meanings are the same as for |
| | | the ResizeDisplay option. |
+----------------------------+---------------------+--------------------------------------+
| AlignSubmenus | boolean | Whether submenus should be aligned |
| | (default: NO) | vertically with their parent menus. |
+----------------------------+---------------------+--------------------------------------+
| WrapMenus | boolean | Whether submenus should be placed to |
| | (default: NO) | the right of their parent menus when |
| | | they don't fit the screen. Note that |
| | | menus placed off the screen can be |
| | | scrolled. |
+----------------------------+---------------------+--------------------------------------+
| ScrollableMenus | boolean | Whether menus that are not fully |
| | (default: NO) | inside the screen should |
| | | automatically scroll when the |
| | | pointer is over them and near the |
| | | border of the screen. |
+----------------------------+---------------------+--------------------------------------+
| MenuScrollSpeed | speed | The scrolling speed of menus. |
| | (default: medium) | |
+----------------------------+---------------------+--------------------------------------+
| DontLinkWorkspaces | boolean | Do not automatically switch to the |
| | (default: NO) | next or previous workspace when a |
| | | window is dragged to the edge of the |
| | | screen. |
+----------------------------+---------------------+--------------------------------------+
| NoWindowUnderDock | boolean | When maximizing windows, limit their |
| | (default: NO) | sizes so that they will not be |
| | | covered by the dock. |
+----------------------------+---------------------+--------------------------------------+
| NoWindowOverIcons | boolean | When maximizing windows, limit their |
| | (default: NO) | sizes so that they will cover |
| | | miniwindows and application icons. |
+----------------------------+---------------------+--------------------------------------+
| StickyIcons | boolean | Whether miniwindows should be |
| | (default: NO) | present in all workspaces. |
+----------------------------+---------------------+--------------------------------------+
| CycleWorkspaces | boolean | Set to YES if you want windows that |
| | (default: NO) | are dragged past the last workspace |
| | | to be moved to the first workspace, |
| | | and vice-versa. |
+----------------------------+---------------------+--------------------------------------+
| AdvanceToNewWorkspace | boolean | Whether windows dragged past the |
| | (default: NO) | last workspace should create a new |
| | | workspace. |
+----------------------------+---------------------+--------------------------------------+
| DisableAnimations | boolean | Whether animations, like the one |
| | (default: NO) | done during minimization, should be |
| | | disabled. |
+----------------------------+---------------------+--------------------------------------+
| IconSlideSpeed | speed | The speed of icons when they are |
| | (default: medium) | being slid across the workspace. |
+----------------------------+---------------------+--------------------------------------+
| ShadeSpeed | speed | The speed of the shading animation. |
| | (default: medium) | |
+----------------------------+---------------------+--------------------------------------+
| DisableSound | boolean | Whether sound support in WindowMaker |
| | (default: NO) | should be disabled |
+----------------------------+---------------------+--------------------------------------+
| `*DisableWSMouseActions` | boolean | Whether actions in the workspace |
| | (default: NO) | 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). |
+----------------------------+---------------------+--------------------------------------+
| SelectWindowMouseButton | mouse button | The mouse button that activates |
| | (default: left) | selection of multiple windows in the |
| | | workspace. |
+----------------------------+---------------------+--------------------------------------+
| WindowListMouseButton | mouse button | The mouse button that opens the |
| | (default: middle) | window list menu in the workspace. |
+----------------------------+---------------------+--------------------------------------+
| ApplicationMenuMouseButton | mouse button | The mouse button that opens the |
| | (default: right) | applications menu in the workspace. |
+----------------------------+---------------------+--------------------------------------+
Appearance Options
~~~~~~~~~~~~~~~~~~
Fonts are specified in the X Logical Font Description format. You can cut and
paste these names from programs like ``xfontsel``.
Colors are specified as color names in the standard X format. This can be any
color name shown by the ``showrgb`` 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.
Textures are specified as an array, where the first element specifies the
texture type followed by a variable number of arguments.
Valid texture types are:
(solid, color)
the texture is a simple solid color.
(dgradient, color1, color2)
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.
(hgradient, color1, color2)
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.
(vgradient, color1, color2)
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.
(mdgradient, color1, color2,...,color*n*)
this is equivalent to drgadient, but you can specify more than two colors
(mhgradient, color1, color2,...,color*n*)
this is equivalent to hrgadient, but you can specify more than two colors
(mvgradient, color1, color2,...,color<i>n</i>)
this is equivalent to vrgadient, but you can specify more than two colors
**Examples**:
.. figure:: guide/images/texsolid.gif
:figclass: borderless
:alt: Solid Color
(solid, gray)
.. figure:: guide/images/texdgrad.gif
:figclass: borderless
:alt: Diagoonal Gradient
(dgradient, gray80, gray20)
.. figure:: guide/images/texhgrad.gif
:figclass: borderless
:alt: Horizontal Gradient
(hgradient, gray80, gray20)
.. figure:: guide/images/texvgrad.gif
:figclass: borderless
:alt: Vertical Gradient
(vgradient, gray80, gray20)
+--------------------+----------------------+----------------------------------------+
| Option | Value | Description |
+====================+======================+========================================+
| `*NewStyle` | boolean | Selects between N*XTSTEP style buttons |
| | (default: NO) | in the titlebar and a newer style of |
| | | buttons. |
+--------------------+----------------------+----------------------------------------+
| WidgetColor | (solid, color) | Chooses the color to be used in |
| | where color is a | titlebar buttons if NewStyle=No; |
| | color name | |
| | (default: | |
| | (solid, grey)) | |
+--------------------+----------------------+----------------------------------------+
| WorkspaceBack | a texture or | Default texture for the workspace |
| | none | background. Note the *dgradient* and |
| | (default: none) | *mdgradient* textures can take a lot |
| | | of time to be rendered. |
+--------------------+----------------------+----------------------------------------+
| IconBack | texture | Texture for the background of icons |
| | (default: | and miniwindows. |
| | (solid, grey)) | |
+--------------------+----------------------+----------------------------------------+
| FTitleBack | texture | Texture for the focused window |
| | (default: | titlebar. |
| | (solid, black)) | |
+--------------------+----------------------+----------------------------------------+
| PTitleBack | texture | Texture for the titlebar of the parent |
| | (default: | window of the currently focused |
| | (solid, "#616161")) | transient window |
+--------------------+----------------------+----------------------------------------+
| UTitleBack | texture | Texture for unfocused window |
| | (default: | titlebars. |
| | (solid, gray)) | |
+--------------------+----------------------+----------------------------------------+
| MenuTitleBack | texture | Texture for menu titlebars. |
| | (default: | |
| | (solid, black)) | |
+--------------------+----------------------+----------------------------------------+
| MenuTextBack | texture | Texture for menu items |
| | (default: | |
| | (solid, gray)) | |
| | | |
+--------------------+----------------------+----------------------------------------+
| FTitleColor | color | The color of the text in the focused |
| | (default: white) | window titlebar. |
+--------------------+----------------------+----------------------------------------+
| PTitleColor | color | Color for the text in the titlebar of |
| | (default: white) | the parent window of the currently |
| | | focused transient. |
+--------------------+----------------------+----------------------------------------+
| UTitleColor | color | The color for the text in the titlebar |
| | (default: black) | of unfocused windows. |
+--------------------+----------------------+----------------------------------------+
| MenuTitleColor | color | Color for the text in menu titlebars |
| | (default: white) | |
+--------------------+----------------------+----------------------------------------+
| MenuTextColor | color | Color for the text in menu items |
| | (default: black) | |
+--------------------+----------------------+----------------------------------------+
| HighlightColor | color | Color for the highlighted item in |
| | (default: white) | menus. |
+--------------------+----------------------+----------------------------------------+
| HighlightTextColor | color | Color for the highlighted item text in |
| | (default: black) | menus. |
+--------------------+----------------------+----------------------------------------+
| MenuDisabledColor | color | Color for the text of disabled menu |
| | (default: "#616161") | items. |
+--------------------+----------------------+----------------------------------------+
| ClipTitleColor | color | Color for the text in the clip. |
| | (default: black) | |
+--------------------+----------------------+----------------------------------------+
| CClipTitleColor | color | Color for the text in the collapsed |
| | (default: "#454045") | clip. |
+--------------------+----------------------+----------------------------------------+
| WindowTitleFont | font (default: | Font for the text in window |
| | Helvetica bold 12) | titlebars. |
+--------------------+----------------------+----------------------------------------+
| MenuTitleFont | font (default: | Font for the text in menu titlebars) |
| | Helvetica bold 12) | |
+--------------------+----------------------+----------------------------------------+
| MenuTextFont | font (default: | Font for the text in menu items |
| | Helvetica medium 12) | |
+--------------------+----------------------+----------------------------------------+
| IconTitleFont | font (default: | Font for the text in miniwindow |
| | Helvetica medium 8) | titlebars. |
+--------------------+----------------------+----------------------------------------+
| ClipTitleFont | font (default: | Font for the text in the clip. |
| | Helvetica bold 10) | |
+--------------------+----------------------+----------------------------------------+
| Displayfont | font (default: | Font for the text information in |
| | Helvetica medium 12) | windows, like the size of windows |
| | | during resize. |
+--------------------+----------------------+----------------------------------------+
| TitleJustify | center, left, | Justification of the text in window |
| | or right | titlebars. |
| | (default: center) | |
+--------------------+----------------------+----------------------------------------+
Keyboard Bindings
~~~~~~~~~~~~~~~~~
Keyboard shortcut specifications are in the form:
.. code::
:class: highlight
[<modifier key names> + ] <key name>
Where *modifier key names* specify an optional modifier key, like Meta or
Shift. Any number of modifier keys might be specified. The *key name* is the
actual key that will trigger the action bound to the option.
Examples:
[F10]
Means the F10 key.
Meta+TAB
Means the TAB key with the Meta modifier key pressed at the same time.
Meta+Shift+TAB
Means the TAB key with the Meta and Shift modifier keys pressed at the same
time.
Key names can be found at /usr/X11R6/include/X11/keysymdef.h The *XK_* prefixes
must be ignored (if key name is *XK_Return* use *Return*).
+-----------------------+---------------+-----------------------------------------+
| Option | Default Value | Description |
+=======================+===============+=========================================+
| RootMenuKey | None | Opens the `root window menu |
| | | <chap3.html#the-root-window-menu>`_ |
| | | at the current position of the |
| | | mouse pointer. |
+-----------------------+---------------+-----------------------------------------+
| WindowListKey | None | Opens the `window list menu`_ |
| | | menu at the current position of the |
| | | mouse pointer. |
+-----------------------+---------------+-----------------------------------------+
| WindowMenuKey | None | Opens the `window commands menu |
| | | <chap2.html#the-window-commands-menu>`_ |
| | | for the currently focused window. |
+-----------------------+---------------+-----------------------------------------+
| MiniaturizeKey | None | Miniaturizes the currently focused |
| | | window. |
+-----------------------+---------------+-----------------------------------------+
| HideKey | None | Hides the currently active |
| | | application. |
+-----------------------+---------------+-----------------------------------------+
| CloseKey | None | Closes the current focused window |
+-----------------------+---------------+-----------------------------------------+
| MaximizeKey | None | Maxmizes the currently focused window. |
+-----------------------+---------------+-----------------------------------------+
| VMaximizeKey | None | Vertically Maximizes the currently |
| | | focused window. |
+-----------------------+---------------+-----------------------------------------+
| RaiseKey | Meta+Up | Raises the currently focused window. |
+-----------------------+---------------+-----------------------------------------+
| LowerKey | Meta+Down | Lowers the currently focused window. |
+-----------------------+---------------+-----------------------------------------+
| RaiseLowerKey | None | Raises the window under the pointer, |
| | | or lowers it if it is already raised. |
+-----------------------+---------------+-----------------------------------------+
| ShadeKey | None | Shades the currently focused window. |
+-----------------------+---------------+-----------------------------------------+
| SelectKey | None | Selects current focused window. |
+-----------------------+---------------+-----------------------------------------+
| FocusNextKey | None | Switch focus to next window. |
+-----------------------+---------------+-----------------------------------------+
| FocusPrevKey | None | Switch focus to previous window. |
+-----------------------+---------------+-----------------------------------------+
| NextWorkspaceKey | None | Switches to next workspace. |
+-----------------------+---------------+-----------------------------------------+
| PrevWorkspaceKey | None | Switches to previous workspace. |
+-----------------------+---------------+-----------------------------------------+
| NextWorkspaceLayerKey | None | Switches to the next group of 10 |
| | | workspaces. |
+-----------------------+---------------+-----------------------------------------+
| PrevWorkspaceLayerKey | None | Switches to the previous group of |
| | | 10 workspaces. |
+-----------------------+---------------+-----------------------------------------+
| Workspace1Key | None | Switches to workspace 1. |
+-----------------------+---------------+-----------------------------------------+
| Workspace2Key | None | Switches to workspace 2, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace3Key | None | Switches to workspace 3, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace4Key | None | Switches to workspace 4, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace5Key | None | Switches to workspace 5, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace6Key | None | Switches to workspace 6, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace7Key | None | Switches to workspace 7, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace8Key | None | Switches to workspace 8, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| Workspace9Key | None | Switches to workspace 9, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| | | |
| Workspace10Key | None | Switches to workspace 10, creating |
| | | it if it does not exist. |
+-----------------------+---------------+-----------------------------------------+
| ClipLowerKey | None | Lowers the clip. |
+-----------------------+---------------+-----------------------------------------+
| ClipRaiseLowerKEy | None | Raises the clip, or lowers it if |
| | | it is already raised. |
+-----------------------+---------------+-----------------------------------------+
Window Attributes
~~~~~~~~~~~~~~~~~
Window attributes are stored in the $(HOME)/GNUstep/Defaults/WMWindowAttributes
file.
The contents of this file is a dictionary of attribute dictionaries keyed by
window names. Like this:
.. code::
:class: highlight
{
"*" = {
Icon = "defaultAppIcon.xpm";
};
"xterm.XTerm" = {
Icon = "xterm.xpm";
};
xconsole = {
Omnipresent = YES;
NoTitlebar = YES;
KeepOnTop = NO;
};
}
Window names are in the form [1]_ :
- <window instance name>.<window class name>
OR
- <window instance name>
OR
- <window class name>
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.
**Options:**
The default is NO for all options
+---------------------+------------------+-------------------------------------+
| Option | Value | Description |
+=====================+==================+=====================================+
| Icon | pixmap file name | Assigns a pixmap image to be |
| | | used as the icon for that window. |
+---------------------+------------------+-------------------------------------+
| NoTitleBar | boolean | Disables the titlebar in the |
| | | window. |
+---------------------+------------------+-------------------------------------+
| NoResizeBar | boolean | Disables the resizebar in the |
| | | window. |
+---------------------+------------------+-------------------------------------+
| NoMiniaturizeButton | boolean | Remove the miniaturize |
| | | button. |
+---------------------+------------------+-------------------------------------+
| NoCloseButton | boolean | Remove the close button. |
+---------------------+------------------+-------------------------------------+
| NoHideOthers | boolean | Do not hide the window, or the |
| | | application to which the window |
| | | belongs when a *Hide Others* |
| | | command is issued. |
+---------------------+------------------+-------------------------------------+
| NoMouseBindings | boolean | 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. |
+---------------------+------------------+-------------------------------------+
| NoKeyBindings | boolean | 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. |
+---------------------+------------------+-------------------------------------+
| NoAppIcon | boolean | Do not create application icon for |
| | | the window. This is useful for some |
| | | applications that incorrectly get |
| | | more than one application icon. |
+---------------------+------------------+-------------------------------------+
| KeepOnTop | boolean | Always keep the window over other |
| | | normal windows. |
+---------------------+------------------+-------------------------------------+
| Omnipresent | boolean | Make the window be present in all |
| | | workspaces, AKA sticky window. |
+---------------------+------------------+-------------------------------------+
| | | |
| SkipWindowList | boolean | Do not list the window in the |
| | | `window list menu`_ |
+---------------------+------------------+-------------------------------------+
| | | |
| KeepInsideScreen | boolean | Always keep the window inside the |
| | | visible are of the screen. |
+---------------------+------------------+-------------------------------------+
| Unfocusable | boolean | Do not let the window be focused. |
+---------------------+------------------+-------------------------------------+
| StartWorkspace | Workspace number | Make the window always be initially |
| | or name | shown in the indicated workspace. |
+---------------------+------------------+-------------------------------------+
Applications Menu
~~~~~~~~~~~~~~~~~
The applications menu (AKA: Root Menu) can be defined in one of two distinct
ways:
- In the form of an array in property list format, in
$(HOME)/GNUstep/Defaults/WMRootMenu
- In the form of a text file, whose location is present in
$(HOME)/GNUstep/Defaults/WMRootMenu
----
.. [1] You can get the values for these information by running the ``xprop``
utility on the desired window. When you do that, it will show the following
line, among other things:
.. code::
:class: highlight
WM_CLASS(STRING) = "xterm", "XTerm"
The first string (xterm) is the window instance name and the second (XTerm)
the window class name.
.. _window list menu: chap3.html#3.12

View File

@@ -1,29 +0,0 @@
---
layout: default
title: User Guide - Tips
---
<br />
<br />
<br />
<h2>Chapter 5</h2>
<h1>Tips</h1><br />
<br />
<ul>
<li>If the size of a window gets so large that it doesn't fit on the screen and you can't manipulate it, you can
simply hold the Meta key while dragging the window in the client area. This way you can move the window up or down
and resize it, if you want.<br />
<br /></li>
<li>If you want windows to be able to cover the dock, you can make the dock lowerable by double clicking the first
dock icon while holding the Meta key. Then, you can raise and lower the dock through the first icon, just like you do
with windows.<br />
<br /></li>
<li>If you want windows to be able to cover menus, you can make them lowerable just like the dock by double clicking
the titlebar with the Meta key pressed.</li>
</ul><br />
<br />
<br />

20
docs/chap5.rst Normal file
View File

@@ -0,0 +1,20 @@
---
layout: default
title: User Guide - Tips
---
Tips
====
- If the size of a window gets so large that it doesn't fit on the screen and
you can't manipulate it, you can simply hold the Meta key while dragging the
window in the client area. This way you can move the window up or down and
resize it, if you want.
- If you want windows to be able to cover the dock, you can make the dock
lowerable by double clicking the first dock icon while holding the Meta key.
Then, you can raise and lower the dock through the first icon, just like you
do with windows.
- If you want windows to be able to cover menus, you can make them lowerable
just like the dock by double clicking the titlebar with the Meta key pressed.

View File

@@ -1,22 +0,0 @@
---
layout: default
title: User Guide - Glossary
---
<br />
<br />
<br />
<h1>Glossary</h1>
<ul>
<li>[drag] to click in an object with the mouse and move the mouse while holding the mouse button.</li>
<li>[miniaturize] (iconify, minimize) to temporarily put a window aside, replacing the window with a miniature
representation of it.</li>
<li>[Meta key] depending on the system and keyboard types, this can mean different keys. Under Linux, it is usually
the Alt or Alternate key.</li>
</ul><br />
<br />
<br />

16
docs/chap6.rst Normal file
View File

@@ -0,0 +1,16 @@
---
layout: default
title: User Guide - Glossary
---
Glossary
========
- [drag] to click in an object with the mouse and move the mouse while holding
the mouse button.
- [miniaturize] (iconify, minimize) to temporarily put a window aside,
replacing the window with a miniature representation of it.
- [Meta key] depending on the system and keyboard types, this can mean
different keys. Under Linux, it is usually the Alt or Alternate key.

View File

@@ -1,18 +0,0 @@
---
layout: default
title: User Guide - Credits
---
<br />
<br />
<br />
<h2>Chapter 7</h2>
<h1>Credits</h1><br />
<br />
The original TeX version of this document was written by Afredo K. Kojima.<br />
<br />
The HTML conversion was done primarily by Jeremy Crabtree, with assistance from Dan Olav Mikael Hultgren
Gudmundsson.<br />
<br />
<br />

12
docs/chap7.rst Normal file
View File

@@ -0,0 +1,12 @@
---
layout: default
title: User Guide - Credits
---
Credits
=======
The original TeX version of this document was written by Afredo K. Kojima.
The HTML conversion was done primarily by Jeremy Crabtree, with assistance from
Dan Olav Mikael Hultgren Gudmundsson.

View File

@@ -1,140 +0,0 @@
---
layout: default
title: User Guide
---
<br />
<br />
<h1><a href="chap1.html">Chapter 1: Introduction</a></h1>
<ul type="disc">
<li><a href="chap1.html#1.1">1.1 What is a window manager?</a></li>
</ul><br />
<h1><a href="chap2.html">Chapter 2: Windows</a></h1>
<ul type="disc">
<li><a href="chap2.html#2.1">2.1 Anatomy of a window</a></li>
<li>
<a href="chap2.html#2.2">2.2 Working with windows</a>
<ul type="disc">
<li><a href="chap2.html#2.2.1">2.2.1 Focusing a window</a></li>
<li><a href="chap2.html#2.2.2">2.2.2 Reordering Overlapping
Windows</a></li>
<li><a href="chap2.html#2.2.3">2.2.3 Moving a Window</a></li>
<li><a href="chap2.html#2.2.4">2.2.4 Resizing a Window</a></li>
<li><a href="chap2.html#2.2.5">2.2.5 Miniaturizing a
Window</a></li>
<li><a href="chap2.html#2.2.6">2.2.6 Shading a Window</a></li>
<li><a href="chap2.html#2.2.7">2.2.7 Closing a Window</a></li>
<li><a href="chap2.html#2.2.8">2.2.8 Maximizing a
Window</a></li>
<li><a href="chap2.html#2.2.9">2.2.9 The Window Commands
Menu</a></li>
</ul>
</li>
<li>
<a href="chap2.html#2.3">2.3 The Window Attributes Inspector</a>
<ul type="disc">
<li><a href="chap2.html#2.3.1">2.3.1 Window
Specification</a></li>
<li><a href="chap2.html#2.3.2">2.3.2 Window Attributes</a></li>
<li><a href="chap2.html#2.3.3">2.3.3 Advanced Options</a></li>
<li><a href="chap2.html#2.3.4">2.3.4 Icon and Initial
Workspace</a></li>
<li><a href="chap2.html#2.3.5">2.3.5 Application
Specific</a></li>
</ul>
</li>
</ul><br />
<h1><a href="chap3.html">Chapter 3: The Workspace</a></h1>
<ul type="disc">
<li>
<a href="chap3.html#3.1">3.1 Working with Menus</a>
<ul type="disc">
<li><a href="chap3.html#3.1.1">3.1.1 The Root Window
Menu</a></li>
<li><a href="chap3.html#3.1.2">3.1.2 The Window List
Menu</a></li>
</ul>
</li>
<li>
<a href="chap3.html#3.2">3.2 Working with Applications</a>
<ul type="disc">
<li><a href="chap3.html#3.2.1">3.2.1 Hiding An
Application</a></li>
<li><a href="chap3.html#3.2.2">3.2.2 The Application Icon
Menu</a></li>
<li><a href="chap3.html#3.2.3">3.2.3 The Application
Dock</a></li>
</ul>
</li>
<li>
<a href="chap3.html#3.3">3.3 Working with Workspaces</a>
<ul type="disc">
<li><a href="chap3.html#3.3.1">3.3.1 The Workspace Menu</a></li>
<li><a href="chap3.html#3.3.2">3.3.2 The Workspace Clip</a></li>
</ul>
</li>
</ul><br />
<h1><a href="chap4.html">Chapter 4: Configuring WindowMaker</a></h1>
<ul type="disc">
<li>
<a href="chap4.html#4.1">4.1 The Defualts Database System</a>
<ul type="disc">
<li><a href="chap4.html#4.1.1">4.1.1 Propety List File
Format</a></li>
<li><a href="chap4.html#4.1.2">4.1.2 Value Types</a></li>
<li><a href="chap4.html#4.1.3">4.1.3 Preferences</a></li>
<li><a href="chap4.html#4.1.4">4.1.4 Window Attributes</a></li>
<li><a href="chap4.html#4.1.5">4.1.5 Applications Menu</a></li>
</ul>
</li>
</ul><br />
<br />
<h1><a href="chap5.html">Chapter 5: Tips</a></h1><br />
<br />
<h1><a href="chap6.html">Chapter 6: Glossary</a></h1><br />
<br />
<h1><a href="chap7.html">Chapter 7: Credits</a></h1><br />
<br />
<br />
<br />
<br />

12
docs/guide_toc.rst Normal file
View File

@@ -0,0 +1,12 @@
---
layout: default
title: User Guide
---
- `Chapter 1: Introduction <chap1.html>`_
- `Chapter 2: Windows <chap2.html>`_
- `Chapter 3: The Workspace <chap3.html>`_
- `Chapter 4: Configuring WindowMaker <chap4.html>`_
- `Chapter 5: Tips <chap5.html>`_
- `Chapter 6: Glossary <chap6.html>`_
- `Chapter 7: Credits <chap7.html>`_

View File

@@ -1,153 +0,0 @@
---
layout: default
title: Guided Tour - Backgrounds and Themes
---
<center>Backgrounds and Themes</center>
</strong></h1>
<strong></strong>
<center><a href="index.html">Back to index</a></center>
<ul>
<li><a href="back.html#backg" name="backg">Backgrounds</a></li>
<li><a href="back.html#style" name="style"></a><a href="#style">Styles</a></li>
<li><a href="back.html#them" name="them">Themes</a></li>
</ul>
For the purposes of this guided tour, only those appearance options that
are built-in to Window Maker will be considered. Crafting custom styles
and themes is not terribly difficult, nor do you need any special
knowledge of programming languages or other specialized skills, but
this is outside the intended scope of the guided tour.<br>
<br>
The appearance of the Window Maker GUI can easily be customized from
the applications menu item "Appearance."<br>
Themes, styles, icon sets, and backgrounds can be selected as soon as
they are installed in the right directory.
<br>
Themes should be installed in the directory
~/GNUstep/Library/WindowMaker/Themes/<br>
Styles should be installed in the directory
~/GNUstep/Library/WindowMaker/Styles/<br>
Backgrounds should be installed in the directory
~/GNUstep/Library/WindowMaker/Backgrounds/<br>
<br>
If you are working within a freshly-installed instance of Window Maker,
your Linux distribution probably provided some default themes, styles
and backgrounds. Rarely, a distribution
provides no additional themes, styles or backgrounds - expecting users
to provide these on their own.<br>
<br>
Here is the "Appearance" menu and some of its associated sub-menus,
including themes, styles and backgrounds:<br>
<br>
<div style="text-align: center;"><img style="width: 714px; height: 636px;" alt="Appearance menu items" src="images/appearancemenu.png"><br>
</div>
<br>
In the screenshot above, most of the styles are default to the Debian
GNU/Linux distribution, while most of the themes were user-installed.
Many themes are available for download on the internet.&nbsp; <br>
<h2><a name="backg">Backgrounds</a></h2>
<p>Backgrounds may be system-generated solid or gradient colors, or
they may be images from user or distibution-supplied image files. The
easiest way to change a system-generated background color or color
gradient is to select one from the "Appearance -&gt; Background -&gt; <span style="color: rgb(255, 204, 102);">&lt; Solid <span style="color: white;">or</span> Gradient &gt;</span>" menu. In most default configurations there will be six to eight selections in each category.</p>
<p>Likewise, the easiest way to change to a background image is to
select one from the "Appearance -&gt; Background -&gt; Images" menu. If
you wish to install your own images for use as backgrounds, place the
image file in your ~/GNUstep/Library/WindowMaker/Backgrounds/ directory
and they will be available from the menu immediately.</p>
<p> </p>
<h2><a name="Styles"></a>Styles</h2>
A style defines the look of the key components of the Window Maker
desktop. These components include the window titlebar and resizebar, the menu title and text field, and the icon background.<br>
<br>
The characteristics defined in a style (or theme) are&nbsp; the color
and
"texture" of key GUI elements. Texture in this context means using
multiple colors in
various color gradients - you are not limited to solid colors
only.&nbsp; <br>
<br>
The easiest method for changing the style is to select a style from the
"Appearance -&gt; Style" menu.<br>
<br>
A style may also be created using the <span style="font-style: italic;">Appearance
Preferences</span> tool in <span style="font-style: italic;">WPrefs.app</span>.
From this tool, you may configure the color and texture of window
elements (titlebars, resizebars), menu elements (menu titlebar, menu
item text colors, menu "style") and the color and texture of icon
backgrounds. The location of titlebar text and the font and text color
for window and menu text may also be configured here.<br>
<br>
<center><img style="width: 520px; height: 412px;" alt="Appearance preferences tool" src="images/prefs12.png"></center>
<br>
<br>
More information on creating a style "from scratch" may be found <a href="{{ site.baseurl }}/docs/chap4.html">in the Window Maker User's Guide.</a> (Scroll down to the section on "Appearance Options.") <br>
<br>
A step-by-step guide to crafting a custom style is available <a href="http://windowmakerandi.blogspot.com/search?updated-min=2011-01-01T00:00:00-06:00&amp;updated-max=2012-01-01T00:00:00-06:00&amp;max-results=4" target="_blank">HERE</a>.<br>
<h2><a name="them">Themes</a></h2>
<p>In its most basic form, a theme is simply a style that also
includes a background. Some Linux distributions provide one or more
default themes for use&nbsp; system-wide. You may
install your own themes in the ~/GNUstep/Library/WindowMaker/Themes/
directory. Themes installed in the correct directory will be
available for selection in the "Appearance -&gt; Themes" menu.
Selecting Themes from the Appearance menu runs the <span style="font-style: italic;">setstyle</span> program to install the
theme and record it in the <span style="font-style: italic;">~/GNUstep/Defaults/WindowMaker</span>
file.</p>
Two sites
providing preconfigured themes are <a href="http://lonelymachines.org/windowmaker-themes/" target="_blank">HERE</a>
and <a href="http://www.jessanderson.org/wmthemes/" target="_blank">HERE</a>.
An internet search for "Window Maker themes" will generate additional
results, and you should also check your Linux distribution's
repositories - some provide themes for installation using your
distribution's package management system.
<p>Themes may include images in png, jpg, xpm, and other supported image file
formats for key elements of the GUI such as titlebars, icon
backgrounds, and the workspace background. Themes that include images
cannot be stored as a single text file, and therefore must be stored in a
directory. A theme directory must contain all of the image files needed
for the theme along with a file named "style." The style file in a
theme directory will specify all of the GUI elements including any
image files used for those elements in lieu of rgb color
specifications. A theme directory must use the suffix ".themed" after
the theme name. <br>
</p>
<p> </p>
<center><a href="index.html">Back to index</a></center>

128
docs/guidedtour/back.rst Normal file
View File

@@ -0,0 +1,128 @@
---
layout: default
title: Guided Tour - Backgrounds and Themes
---
.. TODO: check for the dead links
Backgrounds and Themes
======================
.. contents::
:backlinks: none
For the purposes of this guided tour, only those appearance options that are
built-in to Window Maker will be considered. Crafting custom styles and themes
is not terribly difficult, nor do you need any special knowledge of programming
languages or other specialized skills, but this is outside the intended scope
of the guided tour.
The appearance of the Window Maker GUI can easily be customized from the
applications menu item "Appearance".
Themes, styles, icon sets, and backgrounds can be selected as soon as they are
installed in the right directory.
Themes should be installed in the directory
``~/GNUstep/Library/WindowMaker/Themes/``
Styles should be installed in the directory
``~/GNUstep/Library/WindowMaker/Styles/``
Backgrounds should be installed in the directory
``~/GNUstep/Library/WindowMaker/Backgrounds/``
If you are working within a freshly-installed instance of Window Maker, your
Linux distribution probably provided some default themes, styles and
backgrounds. Rarely, a distribution provides no additional themes, styles or
backgrounds - expecting users to provide these on their own.
Here is the "Appearance" menu and some of its associated sub-menus,
including themes, styles and backgrounds:
.. figure:: images/appearancemenu.png
:alt: Appearance menu items
:figclass: borderless
In the screenshot above, most of the styles are default to the Debian GNU/Linux
distribution, while most of the themes were user-installed. Many themes are
available for download on the internet.
Backgrounds
-----------
Backgrounds may be system-generated solid or gradient colors, or they may be
images from user or distribution-supplied image files. The easiest way to
change a system-generated background color or color gradient is to select one
from the "Appearance -> Background -> <Solid | Gradient>" menu. In most default
configurations there will be six to eight selections in each category.
Likewise, the easiest way to change to a background image is to select one from
the "Appearance -&gt; Background -&gt; Images" menu. If you wish to install
your own images for use as backgrounds, place the image file in your
``~/GNUstep/Library/WindowMaker/Backgrounds/`` directory and they will be
available from the menu immediately.
Styles
------
A style defines the look of the key components of the Window Maker desktop.
These components include the window titlebar and resizebar, the menu title and
text field, and the icon background.
The characteristics defined in a style (or theme) are the color and "texture"
of key GUI elements. Texture in this context means using multiple colors in
various color gradients - you are not limited to solid colors only.
The easiest method for changing the style is to select a style from the
"Appearance -> Style" menu.
A style may also be created using the *Appearance Preferences* tool in
*WPrefs.app*. From this tool, you may configure the color and texture of
window elements (titlebars, resizebars), menu elements (menu titlebar, menu
item text colors, menu "style") and the color and texture of icon backgrounds.
The location of titlebar text and the font and text color for window and menu
text may also be configured here.
.. figure:: images/prefs13.png
:figclass: borderless
:alt: Appearance preferences tool
Appearance preferences tool
More information on creating a style "from scratch" may be found `in the Window
Maker User's Guide <{{ site.baseurl }}/docs/chap4.html>`_. (Scroll down to the
section on "Appearance Options.")
A step-by-step guide to crafting a custom style is available `HERE
<http://windowmakerandi.blogspot.com/search?updated-min=2011-01-01T00:00:00-06:00&amp;updated-max=2012-01-01T00:00:00-06:00&amp;max-results=4
target="_blank">`__.
Themes
------
In its most basic form, a theme is simply a style that also includes a
background. Some Linux distributions provide one or more default themes for use
system-wide. You may install your own themes in the
``~/GNUstep/Library/WindowMaker/Themes/`` directory. Themes installed in the
correct directory will be available for selection in the "Appearance -&gt;
Themes" menu. Selecting Themes from the Appearance menu runs the *setstyle*
program to install the theme and record it in the
``~/GNUstep/Defaults/WindowMaker`` file.
Two sites providing preconfigured themes are `HERE
<http://lonelymachines.org/windowmaker-themes/>`__ and `HERE
<http://www.jessanderson.org/wmthemes/>`__. An internet search for "Window
Maker themes" will generate additional results, and you should also check your
Linux distribution's repositories - some provide themes for installation using
your distribution's package management system.
Themes may include images in png, jpg, xpm, and other supported image file
formats for key elements of the GUI such as titlebars, icon backgrounds, and
the workspace background. Themes that include images cannot be stored as a
single text file, and therefore must be stored in a directory. A theme
directory must contain all of the image files needed for the theme along with a
file named "style." The style file in a theme directory will specify all of the
GUI elements including any image files used for those elements in lieu of rgb
color specifications. A theme directory must use the suffix ".themed" after the
theme name.

View File

@@ -1,148 +0,0 @@
---
layout: default
title: Guided Tour - Clip
---
<h1><strong>
<center>CLIP</center>
</strong></h1>
<p>
</p>
<center><a href="index.html">Back to index</a><br>
</center>
<ul>
</ul>
<p>By default, The clip is represented by the icon on the top left of
the screen containing a paperclip image.</p>
<p style="text-align: center;"><img style="width: 64px; height: 64px;" alt="Clip icon" src="images/clip.png"><br>
</p>
<p>The clip's primary function is to serve as a workspace-specific
dock. In
other words, applications may be attached to the clip just as they are
to the dock, but the clip and its associated applications are specific
to each individual workspace - not available on all workspaces as they
are on the dock.</p>
<p>The clip's secondary function is to act as a "pager" - a utility for
changing from one workspace to another (paging). The arrows at the top
right and bottom left corners of the clip icon allow you to switch from
one workspace to the next workspace (top right) or previous workspace
(bottom left).
</p>
<p>The current workspace name (if any) and number are displayed on the
clip. <br>
</p>
<p>The clip also has a number of menu-driven features.
</p>
<h2>Clip Menu</h2>
<p>Right-clicking the clip displays a menu. </p>
<center>
<p><img src="images/clipm.jpg" alt="clip menu"> </p>
</center>
<h2>Clip Options<br>
</h2>
The first menu item allows you to select clip options. The following
options are available:<br>
<ul>
<li><span style="font-style: italic;">Keep on top</span> - do not
allow windows to cover the clip. <br>
</li>
<li><span style="font-style: italic;">Collapsed</span> - icons
attached to the clip are hidden until you left-click the clip, which
unhides them.</li>
<li><span style="font-style: italic;">Autocollapse</span> - same as
the previous option, except that mouseing over the clip unhides
application icons.</li>
<li><span style="font-style: italic;">Autoraise</span> - clicking an
icon representing a
window hidden under a larger window brings that window to the front.</li>
<li><span style="font-style: italic;">Autoattract icons</span>
- selecting this option attracts the icon of any application launched
on the current workspace. Closing the application removes the icon from
the clip.</li>
</ul>
<h2>Rename Workspace</h2>
This item gives you to ability to name (or rename) the current
workspace. <br>
<br>
Some users tend to group certain applications by workspace
and like to name the workspace to indicate the nature of the
applications on the clip. For example, a user might have a browser, an
IRC client, and a file transfer application clipped on a workspace, and
might name that workspace "internet" to indicate the workspace's
primary function. The user might have a seperate workspace with a
vector graphics application, an image manipulation application, and an
image viewer on the clip, and might name that workspace "graphics."<br>
<br>
<h2>Other Options</h2>
Right-clicking a clipped application's icon gives options specific to
that application. <br>
<ul>
<li>You may make the application's icon <span style="font-style: italic;">omnipresent</span>
(clipped on all workspaces). <br>
</li>
<li>You may <span style="font-style: italic;">select</span> one or all clipped icons. <br>
</li>
<li>You may <span style="font-style: italic;">move</span>
one or all icons to a
different workspace. <br>
</li>
<li>You may <span style="font-style: italic;">remove</span> the icon.</li>
<li>You may instruct Window Maker to have all icons "<span style="font-style: italic;">attracted</span>" to
the clip as soon as each application is launched, rather than placing them intially in the defined location on the display. </li>
</ul>
The remaining clip menu items are similar to those of the <a href="dock.html#conf" target="_blank">dock
application icon menu</a>.
As with the dock, clipped applications may be launched, hidden, or
killed and their settings (icon used, application launch
path/arguments, middle-click launch) may be
modified. <br>
<br>
From version 0.80.0 on, the clip can "steal" appicons. This feature has
nothing to
do with autoattracting icons. When you start an application from somewhere
other than either the clip or the dock (i.e., from the menu or a
terminal), and the application is already either docked or clipped, a
new application icon does not appear at the bottom
of your
screen. The icon that is already docked or clipped "steals" the icon
function. As a
result, the icon for the newly-launched application is the icon already on
the
clip or
the dock. <br>
<br>
<center><a href="index.html">Back to index</a></center>

102
docs/guidedtour/clip.rst Normal file
View File

@@ -0,0 +1,102 @@
---
layout: default
title: Guided Tour - Clip
---
CLIP
====
By default, The clip is represented by the icon on the top left of the screen
containing a paperclip image.
.. figure:: images/clip.png
:alt: Clip icon
:figclass: borderless
The clip's primary function is to serve as a workspace-specific dock. In other
words, applications may be attached to the clip just as they are to the dock,
but the clip and its associated applications are specific to each individual
workspace - not available on all workspaces as they are on the dock.
The clip's secondary function is to act as a "pager" - a utility for changing
from one workspace to another (paging). The arrows at the top right and bottom
left corners of the clip icon allow you to switch from one workspace to the
next workspace (top right) or previous workspace (bottom left).
The current workspace name (if any) and number are displayed on the
clip.
The clip also has a number of menu-driven features.
Clip Menu
---------
Right-clicking the clip displays a menu.
.. figure:: images/menu_clip.png
:alt: Clip menu
:figclass: borderless
Clip menu
Clip Options
------------
The first menu item allows you to select clip options. The following options
are available:
- *Keep on top* - do not allow windows to cover the clip.
- *Collapsed* - icons attached to the clip are hidden until you left-click the
clip, which unhides them.
- *Autocollapse* - same as the previous option, except that mouseing over the
clip unhides application icons.
- *Autoraise* - clicking an icon representing a window hidden under a larger
window brings that window to the front.
- *Autoattract icons* - selecting this option attracts the icon of any
application launched on the current workspace. Closing the application
removes the icon from the clip.
Rename Workspace
----------------
This item gives you to ability to name (or rename) the current workspace.
Some users tend to group certain applications by workspace and like to name the
workspace to indicate the nature of the applications on the clip. For example,
a user might have a browser, an IRC client, and a file transfer application
clipped on a workspace, and might name that workspace "internet" to indicate
the workspace's primary function. The user might have a seperate workspace with
a vector graphics application, an image manipulation application, and an image
viewer on the clip, and might name that workspace "graphics."
Other Options
-------------
Right-clicking a clipped application's icon gives options specific to that
application.
- You may make the application's icon *omnipresent* (clipped on all
workspaces).
- You may *select* one or all clipped icons.
- You may *move* one or all icons to a different workspace.
- You may *remove* the icon.
- You may instruct Window Maker to have all icons *attracted* to the clip as
soon as each application is launched, rather than placing them initially in
the defined location on the display.
The remaining clip menu items are similar to those of the `Dock application
icon menu <dock.html#conf>`_. As with the dock, clipped applications may be
launched, hidden, or killed and their settings (icon used, application launch
path/arguments, middle-click launch) may be modified.
From version 0.80.0 on, the clip can "steal" appicons. This feature has nothing
to do with autoattracting icons. When you start an application from somewhere
other than either the clip or the dock (i.e., from the menu or a terminal), and
the application is already either docked or clipped, a new application icon
does not appear at the bottom of your screen. The icon that is already docked
or clipped "steals" the icon function. As a result, the icon for the
newly-launched application is the icon already on the clip or the dock.

View File

@@ -1,180 +0,0 @@
---
layout: default
title: Guided Tour - Dock
---
<h1><strong>
<center>DOCK</center>
</strong></h1>
<h2><strong></strong></h2>
<strong></strong>
<center><a href="index.html">Back to index</a></center>
<ul>
<li><a href="dock.html#what" name="what">Application dock</a></li>
<li><a href="dock.html#start" name="start">Starting an application</a></li>
<li><a href="dock.html#cust" name="cust">Customizing</a></li>
<li><a href="dock.html#conf" name="conf">Configuring</a></li>
</ul>
<h2><a name="what">Application dock</a></h2>
<p>The dock is the column of icons located by default on the right
side of the screen.</p>
<p>Any application can be attached to the dock. To do this, open an
application then simply left-click-and-drag the application's icon to
the last position on the dock. The dock will "attract" the icon and it
will remain on the dock until removed by the user (left-click-and-drag
the icon off the dock - it will disappear.) If you have saved your
Window Maker session prior to logout (or set Window Maker to autosave
your session upon logout) any icons you docked will automatically
reappear at your next - and each subsequent - session.<br>
</p>
<p>The dock has it's own menu for user configuration.<br>
</p>
<p>The dock can be configured to remain on top of maximized windows. To
do this, right-click on any docked icon then select "Keep on top" from
the application icon menu. This will keep the entire dock visible
(maximized windows will not be allowed to cover the dock). To allow the
dock to be covered, uncheck the "Keep on top" item in the application
icon menu.<br>
</p>
<p>The WMDock icon (by default, with the GNUstep logo) can be dragged
sideways
to switch the
the entire dock from one side of the display to the other.<br>
</p>
<p>Dragging the WMDock icon downward will move the dock off the display
with the
exception of the WMDock icon itself, which will remain visible. To
restore dock visibility, left-click-and-drag the dock back on screen.<br>
</p>
<h2><a name="start">Starting an application</a></h2>
<p>Double-clicking the icon of a docked application starts the
application. <br>
</p>
<p>An application that has not been launched normally has an elipsis
(three dots) in the bottom-left-corner of the icon and appears in full
color as shown below.&nbsp; <br>
</p>
<p style="text-align: center;"><img style="width: 62px; height: 62px;" alt="Unlaunched application icon" src="images/iconwithelipsis.png"><br>
</p>
<p>When the application is running, the elipsis disappears from the
bottom-left-corner of the icon and the icon becomes "greyed out,"
giving a visual cue that the application is already open. <br>
</p>
<p style="text-align: center;"><img style="width: 62px; height: 62px;" alt="Launched application icon" src="images/greyedouticon.png"><br>
</p>
<p>A docked icon that continues to show an elipsis and remains "full
color" even after an instance of the
application is running indicates that the application's settings have
been modified to allow multiple launches from one docked icon. To do
this you must open the application and modify the
"application specific" settings in the <a href="win.html#menu">"commands
menu"</a> of the application to allow
"shared application icons."</p>
<p>Using the "launch" command in the "application icon menu" for the
icon is another way to start an application from the dock.<br>
<br>
From version 0.80.0 on, the dock can "steal" appicons. This feature has
nothing to
do with Autoattract Icons. When you start an application from somewhere
else
than either the clip or the dock (menu or terminal), and the appicon
exists in
one of them (clip or dock), this appicon doesn't appear at the bottom
of your
screen. The appicon existing in the clip or the dock "stole" it. As a
result, the
appicon is the same as the one used to start the application from the
clip or
the dock. </p>
<p> </p>
<h2><a name="cust">Customizing</a></h2>
<p>Left-clicking and dragging an application icon to the dock adds this
application to the dock. Obviously, this means the application is
running! <br>
</p>
<p><span style="font-style: italic;">Miniwindows</span> (windows of
minimized applications) cannot be docked. The small titlebar on the
miniwindow differentiates it from an application's icon. <br>
</p>
<p>Dragging an icon off the dock removes the docked application.&nbsp; <br>
</p>
<p> </p>
<h2><a name="conf">Configuring</a></h2>
<p>There is a dock menu for each icon. Right-clicking the icon displays
the "application icon menu." Select the "Settings..." option to
configure the application.&nbsp;</p>
<center>
<p><a href="images/docks.jpg"><img src="images/docks.jpg" alt="dock"></a></p>
</center>
<p>The application's <span style="font-style: italic;">path</span> and
its arguments, the command for middle-click launch, and the icon
employed can
be changed in this panel.<br>
</p>
<p>Shell commands such as redirection cannot be used in the command
field. <br>
</p>
<p>The desired icon must be in one of the directories displayed
in the panel while browsing. New directories can be added from the <a href="prefs.html#search">Search path preferences</a><br>
</p>
<p> A checkbox allows you to start the application when Window Maker is
first started. (Note: <span style="font-style: italic;">You want to be
careful with this</span>. If you have, for example, your terminal
emulator, your file manager, and your browser set to start when Window
Maker is started you'll get an open terminal, an open file manager and
an open browser <span style="font-style: italic;">every time</span>
you start a session! Normally you will only want to start certain
dockapps - "regular" applications like a terminal emulator or browser
can be started <span style="font-style: italic;">after</span> your
session is up and going.)<br>
</p>
<p>From version 0.62.0 on, a checkbox can be used to prevent accidental
removal from the dock. <br>
<br>
From version 0.70.0 on, a new field has been added for middle-click
launch. Entering, for example, "firefox" into a docked
application
settings panel will launch the Firefox browser.<br>
<br>
</p>
<p> </p>
<center><a href="index.html">Back to index</a></center>

135
docs/guidedtour/dock.rst Normal file
View File

@@ -0,0 +1,135 @@
---
layout: default
title: Guided Tour - Dock
---
Dock
====
.. contents::
:backlinks: none
Application dock
----------------
The dock is the column of icons located by default on the right side of the
screen.
Any application can be attached to the dock. To do this, open an application
then simply left-click-and-drag the application's icon to the last position on
the dock. The dock will "attract" the icon and it will remain on the dock until
removed by the user (left-click-and-drag the icon off the dock - it will
disappear.) If you have saved your Window Maker session prior to logout (or set
Window Maker to autosave your session upon logout) any icons you docked will
automatically reappear at your next - and each subsequent - session.
The dock can be configured to remain on top of maximized windows. To do this,
right-click on a dock or any docked icon then select appropriate option form
*Dock position* submenu. Consult `Application icon menu
<menu.html#application-icon-menu>`_ for details.
The WMDock icon (by default, with the GNUstep logo) can be dragged sideways to
switch the the entire dock from one side of the display to the other.
Dragging the WMDock icon downward will move the dock off the display with the
exception of the WMDock icon itself, which will remain visible. To restore dock
visibility, left-click-and-drag the dock back on screen.
Starting an application
-----------------------
Double-clicking the icon of a docked application starts the application.
An application that has not been launched normally has an elipsis (three dots)
in the bottom-left-corner of the icon and appears in full color as shown below.
.. figure:: images/unlaunched_app.png
:alt: Unlaunched application icon
:figclass: borderless
Unlaunched application icon
When the application is running, the elipsis disappears from the
bottom-left-corner of the icon and the icon becomes highlited.
.. figure:: images/launched_app.png
:alt: Launched application icon
:figclass: borderless
Launched application icon
Sometimes, when the application is running, instead of highlited icon, the icon
becomes "greyed out", giving a visual cue that the application is already open,
and cannot be launched again.
.. figure:: images/grayed_out_icon.png
:alt: Launched application icon
:figclass: borderless
Grayed-out application icon
A docked icon that continues to show an elipsis and remains "full color" even
after an instance of the application is running indicates that the
application's settings have been modified to allow multiple launches from one
docked icon. To do this you must open the application and modify the
"application specific" settings in the `commands menu <win.html#menu>`_ of the
application to allow "shared application icons".
Using the "launch" command in the "application icon menu" for the icon is
another way to start an application from the dock.
From version 0.80.0 on, the dock can "steal" appicons. This feature has nothing
to do with Autoattract Icons. When you start an application from somewhere else
than either the clip or the dock (menu or terminal), and the appicon exists in
one of them (clip or dock), this appicon doesn't appear at the bottom of your
screen. The appicon existing in the clip or the dock "stole" it. As a result,
the appicon is the same as the one used to start the application from the clip
or the dock.
Customizing
-----------
Left-clicking and dragging an application icon to the dock adds this
application to the dock. Obviously, this means the application is running!
*Miniwindows* (windows of minimized applications) cannot be docked. The small
titlebar on the miniwindow differentiates it from an application's icon.
Dragging an icon off the dock removes the docked application.
Configuring
-----------
There is a dock menu for each icon. Right-clicking the icon displays the
"application icon menu". Select the "Settings..." option to configure the
application.
.. figure:: images/docked_application_settings.png
:alt: Launched application icon
:figclass: borderless
Launched application icon
The application's *path* and its arguments, the command for middle-click
launch, and the icon employed can be changed in this panel.
Shell commands such as redirection cannot be used in the command field.
The desired icon must be in one of the directories displayed in the panel while
browsing. New directories can be added from the `Search path preferences
<prefs.html#search-path>`_.
A checkbox allows you to start the application when Window Maker is first
started. (Note: *You want to be careful with this*. If you have, for example,
your terminal emulator, your file manager, and your browser set to start when
Window Maker is started you'll get an open terminal, an open file manager and
an open browser *every time* you start a session! Normally you will only want
to start certain dockapps - "regular" applications like a terminal emulator or
browser can be started *after* your session is up and going.)
From version 0.62.0 on, a checkbox can be used to prevent accidental
removal from the dock.
From version 0.70.0 on, a new field has been added for middle-click launch.
Entering, for example, "firefox" into a docked application settings panel will
launch the Firefox browser.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,118 +0,0 @@
---
layout: default
title: Guided Tour - Index
---
<h1 align="center"><strong><big>Window Maker</big></strong></h1>
<h2 align="center">Guided Tour</h2>
<p>
</p>
<center><img src="images/gnusteplogo.png" alt="Amanda by Agnieszka Czajkowska" height="100" width="100"></center>
<p>
</p>
<center>
<h3><a href="http://www.windowmaker.org/">Window Maker</a></h3>
</center>
<h2><strong>Foreword</strong></h2>
This tutorial is intended to help Window Maker users gain knowledge
about the many excellent features
of this window manager.&nbsp; The official Users Guide is worth reading. It can
be reached from the <a href="{{ site.baseurl }}/docs/guide_toc.html">Window
Maker site</a>.&nbsp;
Other guides, tutorials and tips can be found at various sites on the
internet.&nbsp; An
internet search for "Window Maker guide how-to" might provide
additional worthwhile information. <br>
<br>
This guided tour is NOT supposed to be a README, INSTALL or FAQ . These
are worth reading, or more accurately, they should be considered COMPULSORY reading.
<br>
<br>
The information in the guided tour is based upon Window Maker version 0.95.3.
Check your version by opening WPrefs.app (the Window Maker Preferences
tool). The version number is shown in the initial WPrefs window just
below the "Window Maker Preferences" title. You may also run the
command "<span style="font-style: italic;">wmaker --version</span>" in
a terminal (without the quotation marks). This command returns the installed version number of Window Maker.
<br>
<h2><strong>A special word of thanks</strong></h2>
The original Window Maker Guided Tour site was created and maintained
for many years by Georges Tarbouriech. Where possible, I have retained
his original work - including the layout and structure of the pages,
the descriptions of Window Maker features,
and even some of his original graphics. I want these pages to be up-to-date,
but I also want them to be (as much as possible) a continuation
of Georges' work. <span style="font-style: italic;">Thank you, Georges</span>.
(Having said that, anything you
find in error is without question my fault - so don't blame Georges
for any mistakes!)
If you find an error, have a suggestion, or wish to make a comment, you may contact me by email at <span style="font-style: italic;">bnance&lt;atsigngoeshere&gt;uu.edu</span>.<br>
<br>
This tour will attempt to follow Window Maker development, but not
every update can be taken into account.&nbsp; In other words, this
tour can help you learn the basics, but does not pretend to provide all
of the detail or all of the latest information available in the
official README, INSTALL and FAQ documents provided by Window Maker
developers and maintainers.<br>
<h2><strong>Table of contents</strong></h2>
<ul>
<li><a href="prefs.html">Preferences</a><a href="prefs.html"><br>
</a></li>
<li><a href="win.html">Windows</a></li>
<li><a href="menu.html">Menus</a></li>
<li><a href="dock.html">Dock</a></li>
<li><a href="clip.html">Clip</a></li>
<li><a href="back.html">Backgrounds and themes</a></li>
<li><a href="misc.html">Miscellaneous</a></li>
<li><a href="news.html">News</a></li>
</ul>
<p>
</p>
<h2><strong>Archives</strong></h2>
<p>
</p>
<p>
Two archives are available: HTML and pictures.
<br>
<a href="tut.tar.gz">tut.tar.gz (12K) HTML files</a> <br>
<a href="img.tar.gz">img.tar.gz (613K) Picture files</a> </p>
<p>
</p>
<h2><strong>Links of interest</strong></h2><a href="https://www.youtube.com/watch?v=dIkbxMbhBpc" target="_blank">Window Maker on Debian 6 (YouTube)</a> by fourandnine<br>
<a href="https://wiki.archlinux.org/index.php/Window_Maker" target="_blank">Arch Linux Window Maker Wiki Entry</a><br>
<a href="http://packages.debian.org/squeeze/wmaker">Debian Stable (Squeeze) Package Listing</a><br>
<a href="http://www.youtube.com/watch?v=T7VFjW8p9NU" target="_blank">Window Maker on Mageia Linux (YouTube)</a> by St. Louis Mageia Users' Group<br>
<br>
<p>
</p>
<center><a href="http://www.windowmaker.org"><strong><span class="">Window
Maker</span></strong></a></center>
<p>
</p>

100
docs/guidedtour/index.rst Normal file
View File

@@ -0,0 +1,100 @@
---
layout: default
title: Guided Tour - Index
---
Window Maker
============
.. class:: center
Guided Tour
-----------
.. class:: screenshot center
.. image:: images/gnusteplogo.png
:height: 100
:width: 100
Foreword
--------
This tutorial is intended to help Window Maker users gain knowledge about the
many excellent features of this window manager. The official Users Guide is
worth reading. It can be reached from the `Window Maker site <{{ site.baseurl
}}/docs/guide_toc.html>`_. Other guides, tutorials and tips can be found at
various sites on the internet. An internet search for "Window Maker guide
how-to" might provide additional worthwhile information.
This guided tour is NOT supposed to be a README, INSTALL or FAQ. These are
worth reading, or more accurately, they should be considered COMPULSORY
reading.
The information in the guided tour is based upon Window Maker version 0.95.3.
Check your version by opening WPrefs.app (the Window Maker Preferences tool).
The version number is shown in the initial WPrefs window just below the "Window
Maker Preferences" title. You may also run the command "*wmaker --version*" in
a terminal (without the quotation marks). This command returns the installed
version number of Window Maker.
A special word of thanks
------------------------
The original Window Maker Guided Tour site was created and maintained for many
years by Georges Tarbouriech. Where possible, I have retained his original
work - including the layout and structure of the pages, the descriptions of
Window Maker features, and even some of his original graphics. I want these
pages to be up-to-date, but I also want them to be (as much as possible) a
continuation of Georges' work. *Thank you, Georges*. (Having said that,
anything you find in error is without question my fault - so don't blame
Georges for any mistakes!) If you find an error, have a suggestion, or wish to
make a comment, you may contact me by email at
*bnance&lt;atsigngoeshere&gt;uu.edu*.
This tour will attempt to follow Window Maker development, but not
every update can be taken into account. In other words, this
tour can help you learn the basics, but does not pretend to provide all
of the detail or all of the latest information available in the
official README, INSTALL and FAQ documents provided by Window Maker
developers and maintainers.
Table of contents
~~~~~~~~~~~~~~~~~
.. class:: contents
- `Preferences <prefs.html>`_
- `Windows <win.html>`_
- `Menus <menu.html>`_
- `Dock <dock.html>`_
- `Clip <clip.html>`_
- `Backgrounds and themes <back.html>`_
- `Miscellaneous <misc.html>`_
Archives
--------
Two archives are available: HTML and pictures.
.. TODO: figure out what's the status of those archives.
- `tut.tar.gz (12K) HTML files <tut.tar.gz>`_
- `img.tar.gz (613K) Picture files <img.tar.gz>`_
Links of interest
-----------------
- `Window Maker on Debian 6 (YouTube)
<https://www.youtube.com/watch?v=dIkbxMbhBpc>`_ by fourandnine
- `Arch Linux Window Maker Wiki Entry
<https://wiki.archlinux.org/index.php/Window_Maker>`_
- `Debian Stable (Squeeze) Package Listing
<http://packages.debian.org/squeeze/wmaker>`_
- `Window Maker on Mageia Linux (YouTube)
<http://www.youtube.com/watch?v=T7VFjW8p9NU>`_ by St. Louis Mageia Users' Group
.. class:: center
`Window Maker <http://www.windowmaker.org>`_

View File

@@ -1,185 +0,0 @@
---
layout: default
title: Guided Tour - Menus
---
</head>
<h1>
<center>Menus</center>
</h1>
<center><a href="index.html">Back
to Index</a></center>
<ul>
<li><a href="#menu">Menu list</a></li>
<li><a href="#root">Root window menu</a></li>
<li><a href="#list">Window list menu</a></li>
<li><a href="#wspace">Workspaces menu</a></li>
<li><a href="#apps">Application icon menu</a></li>
</ul>
<h2><a id="menu">Menu list</a></h2>
<p>Different menus are available within Window Maker:</p>
<ul>
<li>The root window menu or applications menu</li>
<li>The window list menu</li>
<li>The workspace menu</li>
<li>The application icon menu<br>
</li>
</ul>
<p>Menus provide a list of applications or commands for execution. They
can be used to launch applications, to get information, to configure
the workspace...<br>
</p>
<p>Menus are opened by right-clicking either in the "blank" area of the
workspace or in a window's titlebar or in docked icons. The <em>window
list menu</em> is the only one opened with the middle mouse button.
With a two-button mouse, pressing both buttons at once usually does the
trick. A number of keyboard shortcuts are provided. These shortcuts are
indicated by the modifier key + letter shown to the right of a menu
item.</p>
<p>The keyboard can be used to open and move through some of the menus.
For instance, the root menu can be opened using F12 (default setting).
The Up and Down arrow keys can then be used to navigate through the
menu or the Left and Right arrow keys to jump between parent menus and
submenus. Hitting the <em>Enter</em> key executes the selected item.
the <em>Escape</em> key closes the menu or stops menu traversal.</p>
<p>Menus can be forced to remain open on the workspace by left-clicking
the titlebar. This creates a <em>close</em> button on the titlebar.</p>
<h2><a id="root">Root window menu</a></h2>
<center><img style="width: 107px; height: 261px;" alt="Root window menu (applications menu)" src="images/apm.png"></center>
<br>
The root window menu or applications menu is opened by right-clicking
on an empty area of the workspace or by hitting the pre-defined
keyboard shortcut (default is F12). This menu launches applications,
allows for the customization of the workspace (backgrounds, themes...),
and the management of other workspace characteristics using standard X
utilities (xprop, xfontsel, xcmap...).
<p>The menu content is totally configurable, either using WPrefs.app or
by editing the plain text menu file. Instructions on how to configure
one or the other can be found in the WindowMaker directory of the
distribution. To use WPrefs.app, menus must be in property list format
(plmenu). A script is available to convert plain text menus to property
list menus and it's called wm-oldmenu2new. </p>
<h2><a id="list">Window list menu</a></h2>
<center><img style="width: 265px; height: 141px;" alt="Window list menu" src="images/wlm.png"></center>
<br>
Middle-clicking an empty area of the workspace opens the window list
menu. With a two-button mouse, clicking both buttons at once usually
gives the same result. F11 is the default keyboard shorcut to open the
window list menu.
<p>This menu lists all windows - whether active or inactive - in every
workspace. The workspace containing each window is indicated at the
right of the window name. The current focused window is marked by a
diamond sign to the left of the window's name. Clicking any window in
the list focuses and raises the corresponding window and moves you to
the workspace where it's located.</p>
<h2><a id="wspace">Workspaces menu</a></h2>
<center><img style="width: 101px; height: 121px;" alt="Workspaces menu" src="images/wksm.png"></center>
<br>
<br>
The workspaces menu is part of the root menu (applications menu).
This item has two options: <em>new</em> and <em>destroy last</em>.
<p>The first option creates a new workspace and automatically switches
you to it. </p>
<p>The second option destroys the last workspace as soon as there are
no windows opened in it.</p>
<p>Each workspace has a corresponding item in this menu. The active
workspace is indicated by a diamond to the left of the workspace name
or number.</p>
<p>Clicking a workspace entry switches from the current workspace to
the selected workspace.</p>
<p>To change the name of a workspace, first "stick" the menu by
left-clicking the menu titlebar. Then <em>Ctrl + click</em> the menu
item to make it editable and type in the new name. Hitting <em>Return</em>
saves the new name, hitting <em>Escape</em> cancels the operation.</p>
<p>Key bindings allow movement from one workspace to another. Usually <em>Meta
+ (number)</em>. The <span style="font-style: italic;">Meta</span> key
is normally the "<span style="font-style: italic;">Alt</span>" key,
while <em>(number)</em> represents a number
key that corresponds to the workspace number. For instance 1 can be
the default workspace (workspace 1), 2 the second workspace and so on.
Thus,
<span style="font-style: italic;">Meta + 2</span> switches to workspace
2.</p>
<p>These key bindings can be set (or changed) from the keyboard
shortcut dialog in
WPrefs.app. </p>
<h2><a id="apps">Application icon menu</a></h2>
<center><img style="width: 98px; height: 119px;" alt="Icon application menu" src="images/dockm.png"></center>
<br>
<br>
Clicking an icon in the dock with the right mouse button brings a
menu for modifying that icon's application. There are six options
available in the application icon menu for docked applications. (Some
applications will not have all six&nbsp; options available.&nbsp; If an
option is not available, it will appear "greyed out" in the menu.) <br>
<ol>
<li>
<p>Clicking "Keep on top" places a check-mark beside that option,
which means that the icon will always be on "top" of
opened windows. If "Keep on top" is unchecked, windows will be allowed
to cover the icons in the dock. Selecting "Keep on top" for one icon
automatically affects all of the items in the dock. You cannot keep
just one docked icon on top of windows - it's all or nothing, one way
or the other.<br>
</p>
</li>
<li>
<p>"Launch" opens the application without double-clicking the icon.</p>
</li>
<li>
<p>"Bring here" unhides the application in the current workspace.</p>
</li>
<li>
<p>"Hide" hides the application or unhides it if already hidden.
Unhiding opens the application in the workspace where it is located.
(This option may not work if the application has it's own hiding menu
option.)</p>
</li>
<li>
<p>"Settings" allows the modification of application path and
arguments, the command line, and the icon used.</p>
</li>
<li>
<p>"Kill" closes the application immediately and should only be
used if absolutely necessary.</p>
</li>
</ol>
<center><a href="index.html">Back
to Index</a></center>

168
docs/guidedtour/menu.rst Normal file
View File

@@ -0,0 +1,168 @@
---
layout: default
title: Guided Tour - Menus
---
Menus
=====
.. contents::
:depth: 1
:backlinks: none
:local:
Menu list
---------
Different menus are available within Window Maker:
- The root window menu or applications menu
- The window list menu
- The workspace menu
- The application icon menu
Menus provide a list of applications or commands for execution. They can be
used to launch applications, to get information, to configure the workspace...
Menus are opened by right-clicking either in the "blank" area of the workspace
or in a window's titlebar or in docked icons. The *window list menu* is the
only one opened with the middle mouse button. With a two-button mouse,
pressing both buttons at once usually does the trick. A number of keyboard
shortcuts are provided. These shortcuts are indicated by the modifier key +
letter shown to the right of a menu item.
The keyboard can be used to open and move through some of the menus. For
instance, the root menu can be opened using F12 (default setting). The Up and
Down arrow keys can then be used to navigate through the menu or the Left and
Right arrow keys to jump between parent menus and submenus. Hitting the *Enter*
key executes the selected item. The *Escape* key closes the menu or stops menu
traversal.
Menus can be forced to remain open on the workspace by left-clicking the
titlebar. This creates a *close* button on the titlebar.
Root window menu
----------------
.. figure:: images/menu_applications.png
:alt: Root window menu (applications menu)
:figclass: borderless
Root window menu (applications menu)
The root window menu or applications menu is opened by right-clicking on an
empty area of the workspace or by hitting the pre-defined keyboard shortcut
(default is F12). This menu launches applications, allows for the customization
of the workspace (backgrounds, themes...), and the management of other
workspace characteristics using standard X utilities (xprop, xfontsel,
xcmap...).
The menu content is totally configurable, either using WPrefs.app or by editing
the plain text menu file. Instructions on how to configure one or the other can
be found in the WindowMaker directory of the distribution. To use WPrefs.app,
menus must be in property list format (plmenu). A script is available to
convert plain text menus to property list menus and it's called wm-oldmenu2new.
Window list menu
----------------
.. figure:: images/menu_window_list.png
:alt: Window list menu
:figclass: borderless
Window list menu
Middle-clicking an empty area of the workspace opens the window list menu. With
a two-button mouse, clicking both buttons at once usually gives the same
result. F11 is the default keyboard shortcut to open the window list menu.
This menu lists all windows - whether active or inactive - in every workspace.
The workspace containing each window is indicated at the right of the window
name. The current focused window is marked by a diamond sign to the left of the
window's name. Clicking any window in the list focuses and raises the
corresponding window and moves you to the workspace where it's located.
Workspaces menu
---------------
.. figure:: images/menu_workspaces.png
:alt: Workspaces menu
:figclass: borderless
Workspaces menu
The workspaces menu is part of the root menu (applications menu). This item
has three options: *new*, *destroy last* and *last used*.
The first option creates a new workspace and automatically switches you to it.
The second option destroys the last workspace as soon as there are no windows
opened in it.
The third option switches to last visited workspace.
Each workspace has a corresponding item in this menu. The active workspace is
indicated by a diamond to the left of the workspace name or number.
Clicking a workspace entry switches from the current workspace to the selected
workspace.
To change the name of a workspace, first "stick" the menu by left-clicking the
menu titlebar. Then *Ctrl + click* the menu item to make it editable and type
in the new name. Hitting *Return* saves the new name, hitting *Escape* cancels
the operation.
Key bindings allow movement from one workspace to another. Usually *Meta +
(number)*. The *Meta* key is normally the "*Alt*" key, while *(number)*
represents a number key that corresponds to the workspace number. For instance
1 can be the default workspace (workspace 1), 2 the second workspace and so on.
Thus, *Meta + 2* switches to workspace 2.
These key bindings can be set (or changed) from the keyboard shortcut dialog in
WPrefs.app.
Application icon menu
---------------------
.. figure:: images/menu_application_icon.png
:alt: Icon application menu
:figclass: borderless
Icon application menu
Clicking an icon in the dock with the right mouse button brings a menu for
modifying that icon's application. There are several options available in the
application icon menu for docked applications. Docked, but not running
applications will not have all options available - they will appear "greyed
out" in the menu.
#. First option is a global Dock submenu, which have three items:
#. *Normal* will not change dock behaviour - it can be covered by windows,
while clicking on any docked items will bring it up.
#. *Auto raise & lower* is similar for the first options, although you don't
have to click on dock - it's enough to hover mouse pointer on visible
part of dock or it's items.
#. *Keep on top* means that the dock will always be on "top" of opened
windows.
#. *Add a drawer* will add special dockapp which can be used for aggregating
applications. See `Dock <dock.html>`_ for more details about drawers.
#. "Launch" opens the application without double-clicking the icon.
#. "Bring here" unhides the application in the current workspace.
#. "Hide" hides the application or unhides it if already hidden. Unhiding opens
the application in the workspace where it is located. (This option may not
work if the application has it's own hiding menu option.)
#. "Settings" allows the modification of application path and arguments, the
command line, and the icon used.
#. "Kill" closes the application immediately and should only be used if
absolutely necessary.

View File

@@ -1,88 +0,0 @@
---
layout: default
title: Guided Tour - Miscellaneous
---
<h1><strong>
<center>Miscellaneous</center>
</strong></h1>
<strong></strong>
<center><a href="index.html">Back to index</a></center>
<ul>
<li><a href="misc.html#loc" name="loc">Localization</a></li>
<li><a href="misc.html#font" name="font">Fonts</a></li>
<li><a href="misc.html#util" name="util">Utilities</a></li>
</ul>
<h2><a name="loc">Localization</a></h2>
As soon as Window Maker is compiled with some options and gettext
installed, it
is fully localizable. Check the INSTALL file. <br>
However, localization of menus can be used without the LANG environment
variable
set. Using pl menu allows to get menus in any available language
without setting
this variable. <br>
Why do such a "thing" instead of setting the localization the "right"
way? <br>
For some reasons users may want to keep the system default language
instead of
defining a new localization. One of the main reason is that most
software doesn't
exist in all languages. <br>
<h2><a name="font">Fonts</a></h2>
It's possible to change the fonts in Window Maker, editing the
WindowMaker file
or the WMGLOBAL file in ~/GNUstep/Defaults. <br>
Once again the INSTALL file gives instructions on how to do it. <br>
The specific file to edit varies according to the fonts to be changed. <br>
The script <span style="font-style: italic;">wsetfont</span> is
provided to do the job.
<h2><a name="util">Utilities</a></h2>
Window Maker provides the user with some useful utilities. <br>
There is a README file concerning these scripts in the util directory. <br>
Almost each script has it's own man page recommended reading. <br>
These utilities mainly concern the GUI: icons, styles, fonts, menus,
backgrounds. <br>
A few of them deserve special interest as many users don't seem to know
about them. <br>
The <span style="font-style: italic;">wdwrite</span> script, for
instance, writes data into the
configuration
files. <br>
The <span style="font-style: italic;">setstyle</span> (or <span style="font-style: italic;">getstyle</span>) scripts are used to
manage themes. <br>
<span style="font-style: italic;">Wxcopy</span> and <span style="font-style: italic;">wxpaste</span> allows copying and pasting
using the X cutbuffer. <br>
The first one makes part of the default applications menu, in the
selection
item. <br>
For KDE users, wkdemenu.pl is worth using. <br>
From version 0.63.0 on, a new utility is available : <span style="font-style: italic;">wmagnify</span>. It allows magnification
of the area under the mouse pointer.<br>
<br>
<center><a href="index.html">Back to index</a></center>

68
docs/guidedtour/misc.rst Normal file
View File

@@ -0,0 +1,68 @@
---
layout: default
title: Guided Tour - Miscellaneous
---
Miscellaneous
=============
.. contents::
:backlinks: none
Localization
------------
As soon as Window Maker is compiled with some options and gettext installed, it
is fully localizable. Check the INSTALL file.
However, localization of menus can be used without the LANG environment
variable set. Using pl menu allows to get menus in any available language
without setting this variable.
Why do such a "thing" instead of setting the localization the "right" way?
For some reasons users may want to keep the system default language instead of
defining a new localization. One of the main reason is that most software
doesn't exist in all languages.
Fonts
-----
It's possible to change the fonts in Window Maker, editing the WindowMaker file
or the WMGLOBAL file in ``~/GNUstep/Defaults``.
Once again the INSTALL file gives instructions on how to do it.
The specific file to edit varies according to the fonts to be changed.
The script *wsetfont* is provided to do the job.
Utilities
---------
Window Maker provides the user with some useful utilities.
There is a README file concerning these scripts in the util directory.
Almost each script has it's own man page recommended reading.
These utilities mainly concern the GUI: icons, styles, fonts, menus,
backgrounds.
A few of them deserve special interest as many users don't seem to know about
them.
The *wdwrite* script, for instance, writes data into the configuration files.
The *setstyle* (or *getstyle*) scripts are used to manage themes.
*Wxcopy* and *wxpaste* allows copying and pasting using the X cutbuffer.
The first one makes part of the default applications menu, in the selection
item.
For KDE users, wkdemenu.pl is worth using.
From version 0.63.0 on, a new utility is available : *wmagnify*. It allows
magnification of the area under the mouse pointer.

View File

@@ -1,168 +0,0 @@
---
layout: default
title: Guided Tour - News
---
<h1><strong>
<center>News</center></strong></h1>
<strong>
</strong>
<p>
</p>
<center><a href="index.html">Back to index</a></center>
<p>
<strong>This page has been added to allow easy discovery of the main
changes from one
version to another. The original text is drawn directly from the <a href="{{ site.baseurl }}/news">windowmaker.org site</a>.
Moving forward, it is anticipated that additional comments and
observations on Window Maker development news will be provided as well.</strong>
</p>
<h3>Version 0.95.4 released</h3>
<p> Window Maker 0.95.4 was released on January 3rd 2013. There was a major code cleanup related to icons, some changes
in WPrefs, the addition of a new "Center" placement strategy, support for _NET_FRAME_EXTENTS, the removal of CPP
dependency to process menu files and small fixes and improvements all around.</p>
<h3>Version 0.95.3 released</h3>
<p> Window Maker 0.95.3 was released on May 16th 2012. This release fixes a regression
which would cause more than one instance of an application to start (under some circunstances) when using menu
shortcuts. The window maximization procedures now have a more intuitive behavior with respect to remembering
the old geometry and going back to it. Furthermore, there are some other small fixes and cleanups.</p>
<h3>Version 0.95.2 released</h3>
<p> Window Maker 0.95.2 was released on February 14th 2012, and it contains just a few
commits on top of 0.95.1. They were necessary to fix a few issues like 'make dist' not compiling.
Furthermore a few more code cleanups slipped in.</p>
<h3>Version 0.95.1 released</h3>
<p>Window Maker 0.95.1 was released on January 29th 2012.</p>
<p>The last official Window Maker release was version 0.92.0 from 2005, and version 0.95.1 contains many bug fixes and
also a few new features.</p>
<h3>New features and highlights</h3>
<p>The following list is incomplete, but should give a first-order approximation to the new features in this release.
For the truly curious among you, reading through <code>git log</code> is the only complete source of information.</p>
<ul>
<li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/6924454836b3a9432def2749f093ea060ac82e97">Left Half / Right
Half Maximize</a>.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/cf62d1591f5aef1e6760a8c0881a6de97ae26e92">Maximus: tiled
maximization</a>. Maximizes a window such that it occupies the largest area without overlapping others.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/a063338175511c4e6af211cef9f2c8a555d7cb44">New mouse-resizing
functionality</a>. Windows can now be resized vertically (horizontally) using MOD+Wheel (CTRL+Wheel).</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/05720d97076ffc1569e50d904b998ec99c3d3d4e">History and TAB
completion in dialogs</a>. To use this new functionality in your old WMRootMenu, replace %a by %A in the relevant
entry. It will look like this <code>(Run..., SHEXEC, "%A(Run, Type command:)")</code>. Or use
<code>wmgenmenu</code> to generate a new menu.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/a257e16593bb471662ce46f65d489c2ba6d87813">Bouncing appicon
effect</a>.</p>
</li><li>
<p>New applications (<a href="http://repo.or.cz/w/wmaker-crm.git/commit/1861880239634774bf898175a3155b7c7cd9b59c">wmgenmenu</a> and wmmenugen)
to generate the root menu automatically by looking which applications you have on your $PATH. Translations to
German, <a href="http://repo.or.cz/w/wmaker-crm.git/commit/077a2eaa71623421eaffc234c30e6d40a52f0220">Spanish and
French</a> of menus generated by wmgenmenu.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/56d856878743ec2d3b8d98ab6a0b61a6b2c99129">Automatic detection
of configuration changes</a>. Linux users whose kernel supports the <a href="http://en.wikipedia.org/wiki/Inotify">inotify</a> mechanism have their configuration changes detected
automatically without polling, reducing the number of CPU wakeups.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/9318a7f42870753bd6b8c306573936369aa819f4">Improved dockapp
recognition.</a></p>
</li><li>
<p>And many trivial things which reduce little annoyances one might have. For example, an option was added to
control whether or not Window Maker should do <a href="http://repo.or.cz/w/wmaker-crm.git/commit/d6c134f420bfa1cd6b6a9474d01548933b559901">automatic workspace
switching</a> to satisfy a focus request from a window located in another workspace.</p>
</li><li>
<p>(For developers). The <a href="http://repo.or.cz/w/wmaker-crm.git/commit/442e3876c6e5a78c6ed385ec204647553f45c168">addition</a> of a debian/
folder which allows the creation of a debian package for wmaker using the git sources.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/b6689a0108fd06ba4d7bf22b789b3de531c2ad70">Added keyboard
shortcut to uncover/cover the dock</a>.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/18408fff93468c533bf4aef3ce6c9808b415adde">Mac OS X-style
window cycling</a>.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/c201e1612c1798106ccc2f806669a90b0bbb7a19">Preliminary XRandR
support</a> (needs a bit more work to be bug-free; not compiled in by default. Use --enable-xrandr if you want to
test it).</p>
</li>
</ul>
<h3>Bug fixes</h3>
<p>Window Maker 0.92.0 was already very stable, but many bugs were fixed in this release. A <strong>very</strong>
incomplete list is given below, and as time permits it will be updated (including links to the commits) in the future.
But the message now is that if you don't like bugs, use version 0.95.1.</p>
<ul>
<li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/37829a7c60ca09eb47d4d82b00070f6f6c0fb277">Fix loading saved
states on 64-bit systems</a></p>
</li><li>
<p>Fix to avoid a segfault when creating more than 81 workspaces, as reported on youtube <a href="http://www.youtube.com/watch?v=fkNJZvKwmhE">here</a>.</p>
</li><li>
<p><a href="http://repo.or.cz/w/wmaker-crm.git/commit/c91bb1ba1360006c568db37438779e525868cf17">Periodic focus
bug</a>.</p>
</li>
</ul>
<h3>Summary of changes</h3>
<p>A lot of effort was put into cleaning up the code, with lots of code removal and tidying things up. The following
output should give you an idea of the development in the last cycle:</p>
<pre>git diff --shortstat wmaker-0.92.0+..wmaker-0.95.1<br> 592 files changed, 118361 insertions(+), 133342 deletions(-)<br>git diff --shortstat 688a56e8ab67b..wmaker-0.95.1<br> 566 files changed, 37676 insertions(+), 41817 deletions(-)<br></pre>
The first shortstat is really everything, including the (huge) patch generated in this <a href="http://repo.or.cz/w/wmaker-crm.git/commit/688a56e8ab67b56550e2874d9d7423f0d435bfd9">commit</a> from 2009, which changed the old
sources to the linux kernel coding style. The second shortstat contains the summary of development afterwards -- but included is
the addition of a debian folder with files summing around ~20k lines. The full diffstat for the second command can be seen
<a href="{{ site.baseurl }}/news/fulldiffstat.html">here</a>.
<p>
</p>
<center><a href="index.html">Back to index</a></center>

View File

@@ -1,476 +0,0 @@
---
layout: default
title: Guided Tour - Prefs
---
<h1>
<center>Preferences</center>
</h1>
<p>
</p>
<center><img style="width: 64px; height: 64px;" src="images/wprefs.jpg" alt="Amanda by Agnieszka Czajkowska"></center>
<p>
</p>
<center><a href="index.html">Back
to Index</a>
<h2 style="text-align: left;">WPrefs.app</h2>
</center>
<p>WPrefs.app is the heart of the configuration process in Window Maker.</p>
<p>Upon installing Window Maker and running it for the first time, the
WPrefs icon is already docked. By default, it's the one with the
GNUstep logo in the background and a few tools in the foreground
(although your distibution may use the plain GNUstep icon or something
enitrely different). Normally Linux distributions position WPrefs as
the second or third icon in the
Dock column by default, just above or below the terminal icon. <br>
</p>
<center>
<p><img style="width: 64px; height: 64px;" alt="GNUstep Logo with Tools" src="images/wmakerconf.png" align="middle" hspace="20"><img style="width: 64px; height: 64px;" alt="GNUstep Logo" src="images/gnustep_64.png" align="middle" hspace="20"><br>
</p>
</center>
<p>Double-clicking on this icon opens the WPrefs.app window.
Across the top of the window there is a row of icons, each one
corresponding to a group of settings options. There is a checkbox for
balloon help on the bottom left of the WPrefs.app window. Most of the
following is taken directly from the content of the ballon help dialogs.</p>
<h2>Available preference settings</h2>
<ul>
<li><a href="#wplace">Window handling</a></li>
<li><a href="#switch">Window Focus</a></li>
<li><a href="#menu">Menu</a></li>
<li><a href="#icon">Icon</a></li>
<li><a href="#ergo">Ergonomy</a></li>
<li><a href="#search">Search path</a></li>
<li><a href="#worksp">Workspace</a></li>
<li><a href="#other">Other</a></li>
<li><a href="#appmenu">Applications menu</a></li>
<li><a href="#keyb">Keyboard shortcut</a></li>
<li><a href="#mouse">Mouse</a></li>
<li><a href="#appear">Appearance</a></li>
<li><a href="#exp">Expert user</a></li>
<li><a href="#font">Font configuration</a></li>
<li><a href="#edit">Editing the configuration file</a></li>
</ul>
<h2><a id="whand">Window handling</a></h2>
<center><img style="width: 519px; height: 414px;" alt="WPrefs.app window handling preferences" src="images/prefs1.png"></center>
<br>
Clicking the second icon allows you to select the window handling
options. Clicking on this icon opens a panel allowing you to define the
default placement and properties of windows in the workspace.
<ul>
<li>
<p><em>Window placement</em><br>
You can use the sliders around the screen representation to modify the
original placement.
The gadget tells Window Maker how to order windows on the screen: <span style="font-style: italic;">Random</span>, <span style="font-style: italic;">Manual</span>, <span style="font-style: italic;">Cascade</span> or <span style="font-style: italic;">Smart</span>. <span style="font-style: italic;">Automatic</span> is the default.</p>
</li>
<li>
<p><em>Edge resistance</em><br>
To set the edge resistance and whether it resists or attracts windows.
According to the selection, windows resist or attract when moved
against other windows or the edges of the screen. The slider defines
the threshold. Some applications' title bars may disappear
at the top of the screen, with the window being too high for the screen
area. Setting the edge
resistance to "0" may solve this problem.</p>
</li>
<li>
<p><em>Open dialogs in the same workspace as their owners</em><br>
Obviously, whether to force dialog boxes "spawned" by an application to
open in same workspace as their owners.</p>
</li>
<li>
<p><em>Opaque move/resize</em><br>
Clicking on <span style="font-style: italic;">opaque move</span>
causes windows to be moved with their contents visible. If not checked,
only the frame is displayed during the move. <span style="font-style: italic;">Opaque resize</span> makes window contents
visible during resizing, otherwise only the frame is displayed.<br>
</p>
</li>
<li>
<p><em>When maximizing</em><br>
This option allows the window to cover (or not) icons or the dock when
maximizing. </p>
</li>
</ul>
<h2><a id="switch">Window focus</a></h2>
<center><img style="width: 519px; height: 411px;" alt="WPrefs.app window focus controls" src="images/prefs2.png"></center>
<br>
The first icon from the left-hand side controls the way windows get
their focus (how they are activated).
<ul>
<li>
<p><em>Input focus mode</em> (two choices are available): <br>
<strong>Manual</strong> - click on the window to set keyboard input
focus.<br>
<strong>Auto</strong> - set keyboard input focus to the window
under the mouse pointer.</p>
</li>
<li>
<p><em>Install colormap in the window</em><br>
Select either (a) install the colormap in the window that has the input
focus or (b) that is under the mouse pointer.</p>
</li>
<li>
<p><em>Automatic window raise delay</em><br>
Setting the delay (in msec) for automatic window raising</p>
</li>
<li>
<p><em>Checkboxes</em><br>
The topmost check box prevents applications from receiving the focusing
mouse-click (I don't know why you would use this, but some people
obviously find it useful).&nbsp;
The bottom checkbox allows you to choose whether newly-opened
application windows automatically receive the focus, or must be clicked
to gain focus. </p>
</li>
</ul>
<h2><a id="menu">Menu</a></h2>
<center><img style="width: 519px; height: 412px;" alt="WPrefs.app menu preferences" src="images/prefs3.png"></center>
<br>
This panel allows you to set menu scrolling speed and submenu
alignment with the parent menu. In addition, two checkboxes are
provided:
<ul>
<li>The topmost box forces submenus to open inside the screen instead
of scrolling&nbsp; when they would otherwise be off-screen.<br>
</li>
<li>The middle box allows submenus to open off-screen, but causes
off-screen menus to scroll when the mouse pointer is
moved over them. This setting is also of value if you "tear off" a menu
and leave it positioned on the desktop. In that case, you might wish to
"park" the menu off-screen (with only the titlebar showing, for
example) and have it reappear when you mouse over it. This is
convenient in some workflows, as when you have multiple applications
open and you are using the window list menu to switch between
applications.</li>
<li>The bottom box allows you to assign EMACS-like keybindings for
the selection of menu items.<br>
</li>
</ul>
<h2><a id="icon">Icon</a></h2>
<center><img style="width: 516px; height: 410px;" alt="WPrefs.app icon preferences" src="images/prefs4.png"></center>
<br>
<br>
<p>Set icon or miniwindow handling options.<br>
</p>
<ul>
<li><em>Icon positioning</em><br>
This area defines the initial placement of miniwindows or icons will be
displayed: <span style="font-style: italic;">bottom, top, right, left</span>...<br>
</li>
<li>
<p><em>Checkboxes</em><br>
The topmost box enables/disables auto-arrangement of icons.&nbsp; The
bottom box places miniwindows for opened applications on all existing
workspaces (<span style="font-style: italic;">omnipresent</span>).</p>
</li>
<li>
<p><em>Iconification animation</em><br>
When an application's window is miniaturized, <span style="font-style: italic;">miniaturization animation style</span>
offers four animation choices.</p>
</li>
<ul>
<li>Shrinking/Zooming,<br>
</li>
<li>Spinning/Twisting,<br>
</li>
<li>3D Flipping, or<br>
</li>
<li>None </li>
</ul>
<li>
<p><em>Icon size</em><br>
Selects the size of the icons shown when a window is miniaturized and
for application icons. Dockapp developers usually assume that tiles
will be 64x64 pixels, so it's
probably a good idea to leave it at that size, unless you know you
won't be using dockapps.</p>
</li>
</ul>
<h2><a id="ergo">Ergonomy</a></h2>
<center><img style="width: 518px; height: 413px;" alt="WPrefs.app ergonomic settings" src="images/prefs5.png"></center>
<br>
Various types of information are defined in this panel.
<ul>
<li>
<p><em>Size display</em> <br>
Window Maker provides a box that informs you about the size of a window
during resizing. You may choose to have this display (a) in the center
of the screen, (b) the center of the screen, (c) the center of the
resized window, (d) the side and bottom of the window as a technical
drawing-like size display or (e) not at all.</p>
</li>
<li>
<p><em>Position display</em><br>
Same information as above but regarding the screen placement of a
window while moving (no technical drawing-like option).<br>
</p>
</li>
<li>
<p><em>Workspace border</em><br>
You can set a small border for the workspace. This allows you to easily
access the clip (for instance) when windows are maximized.</p>
</li>
<li>
<p><em>Show balloon text for</em><br>
Selecting
checkboxes displays balloon text for: incomplete window
titles, miniwindow titles, application and dock icons, or internal
help. This may be useful for new users but many people find having help
balloons pop out all over the desktop gets annoying quickly. I use the <span style="font-style: italic;">incomplete window title</span> and the <span style="font-style: italic;">miniwindow title</span> options and none
of the others.<br>
</p>
</li>
<li>
<p><em>Checkbox</em><br>
The top check bos, if selected, raises a window when switching focus
with the keyboard. The bottom box enables a keyboard language selection
button on window titlebars (must have multiple keyboard maps/locales
defined - this is handy if you are working in multiple languages in
applications such as word processors, for example).<br>
</p>
</li>
</ul>
<h2><a id="search">Search Path</a></h2>
<center><img style="width: 521px; height: 408px;" alt="WPrefs.app icon and pixmap search path settings" src="images/prefs6.png"></center>
<br>
This panel is used to add or delete directory paths to search for
icons and pixmaps. These paths are used in the <span style="font-style: italic;">settings</span>
dialogs for dockapps and docked application icons, so having a good,
complete set of defined paths is important.&nbsp; This may require some
manual intervention, especially upon initial setup, since some default
paths will not be present on your system, while others not predefined
will be present.&nbsp; Use the <span style="font-style: italic;">add</span>
and <span style="font-style: italic;">remove</span> dialogs to
configure according to what is actually available.<br>
<h2><a id="worksp">Workspace</a></h2>
<center><img style="width: 520px; height: 410px;" alt="WPrefs.app workspace preference settings" src="images/prefs7.png"></center>
<br>
This panel defines navigation features within the workspace.
<ul>
<li>
<p><em>Workspace navigation</em><br>
Selecting the first
checkbox allows switching to the first workspace when
switching past the last workspace and vice-versa. Selecting the second
checkbox allows windows to be dragged from one workspace to another.
Selecting the third checkbox
cause a new workspace to be created when windows are dragged off the
last existing workspace. A selection menu allows you to define where
the workspace name&nbsp; is displayed each time you move from one
workspace to another (or not to display the workspace name at all).</p>
</li>
<li>
<p><em>Dock and clip</em><br>
Enables / disables the dock and/or the clip. I have seen some
interesting configurations using no dock but having the clip present.
For users who prefer a bottom or top "panel" of application launchers,
system monitors and other tools, this is a very valuable bit of
flexibility.<br>
</p>
</li>
</ul>
<h2><a id="other">Other</a></h2>
<center><img style="width: 516px; height: 413px;" alt="WPrefs.app other workspace configuration settings" src="images/prefs8.png"></center>
<br>
<br>
<p>This panel sets icon slide speed, shade animation speed, smooth
scaling and titlebar control (button) style. Animations and sound are
also defined here.</p>
<ul>
<li>
<p><em>Icon slide speed</em><br>
Selecting the left icon gives the slowest result, selecting the right
one gives the fastest.</p>
</li>
<li>
<p><em>Shade animation speed</em><br>
Same as icon slide</p>
</li>
<li>
<p><em>Smooth scaling</em><br>
If selected, neutralizes pixelization effect on background images. The
side-effect is to slow down background image loading.</p>
</li>
<li>
<p><em>Titlebar style</em><br>
To choose a more or less "NeXTish" titlebar. (The top version is
"newer," while the bottom left is ca. 1990 and the bottom right is ca.
1988.)<br>
</p>
</li>
<li>
<p><em>Animations</em><br>
Selecting the animations icon enables animations for window
miniaturization, shading and so on.<br>
Selecting
the superfluous icon enables "ghosting" of dock (when moved -
especially when moved from one side of the screen to the other) and
explosion
animation for icons you remove from the dock.<br>
</p>
</li>
<li>
<p><em>Dithering colormap for 8bpp</em><br>
For 8-bit displays (anyone still have one of these?) this enables
dithering and changes the number of colors to reserve either for
applications or for Window Maker. The Default setting almost always
gives the best result.</p>
</li>
</ul>
<h2><a id="appmenu">Applications menu</a></h2>
<center><img style="width: 517px; height: 413px;" alt="WPrefs.app application menu configuration" src="images/prefs9.png"></center>
<br>
<br>
<p>In this panel the applications menu and the commands to launch each
application can be defined. This panel has been changed in version
0.63.and later. It now displays the actual menu thus allowing direct
editing. This can be done only if the menu is in property list format.
Menus in plain text format can't be edited in WPrefs. Check the README
file in the Window Maker directory on how to use one or the other.</p>
<h2><a id="keyb">Keyboard shortcut</a></h2>
<center><img style="width: 518px; height: 412px;" alt="WPrefs.app keyboard shortcut settings" src="images/prefs10.png"></center>
<br>
Many actions in Window Maker have predefined keyboard shortcuts.
These actions mainly concern windows and workspaces.
Modifying, adding or removing shortcuts can be done in this panel.
Defining a shortcut can be done interactively, capturing the key
combination.
<h2><a id="mouse">Mouse</a></h2>
<center><img style="width: 520px; height: 413px;" alt="WPrefs.app mouse configuration" src="images/prefs11.png"></center>
<br>
This panel sets the mouse speed and double-click delay.
Mouse button bindings can be defined and can be disabled or enabled.
<p>The default setting binds the right mouse button to the applications
menu, middle button to the window list menu and left button to window
selection (focus). Of course, with a two button mouse, the middle
button binding will not work. However, on some OSes pressing both
buttons at once gives the same result as the one obtained with middle
button.</p>
<p>Starting from version 0.65 on, the mouse wheel can be used to switch
workspaces. This is not default behavior and must be enabled here.</p>
<p>The mouse grab modifier represents the keyboard shortcut to use for
actions like dragging windows with the mouse or clicking inside the
window. Mod1 (Alt) is the default.</p>
<h2><a id="appear">Appearance</a></h2>
<center><img style="width: 520px; height: 412px;" alt="WPrefs.app appearance settings" src="images/prefs12.png"></center>
<br>
In this panel, everything related to the appearance of the GUI (except
the background color or image) can
be configured. Windows, menus and icons can have their own background
"texture," meaning color gradients of various types can be configured
here. Texture, color, menu style, and title alignment can be fully
customized.
<h2><a id="exp">Expert user</a></h2>
<center><img style="width: 519px; height: 411px;" alt="WPrefs.app expert user settings" src="images/prefs13.png"></center>
<br>
Using this panel implies some knowledge. Many options are available.
Among these are:
<ul>
<li>Disabling miniwindows (useful when using with KDE and GNOME)</li>
<li>Using (or not) xset</li>
<li>Saving session on exit (highly recommended!)</li>
<li>Using SaveUnder in different objects</li>
<li>Using Win style cycling (added from version 0.63.0)</li>
<li>Disabling confirmation panel for the kill command</li>
<li>Disabling cycling colors highlighting of icons</li>
</ul>
<h2><a id="font">Font configuration</a></h2>
<center><img style="width: 517px; height: 411px;" alt="Wprefs.app font configuration options" src="images/prefs14.png"></center>
<br>
This panel allows you to configure fonts for the window and menu
titlebars, for the menu body text, and for the icon and clip
text.&nbsp; In addition, a font may be defined for desktop messages.<br>
<h2><a id="edit">Editing the configuration file</a></h2>
<p>If needed, the defaults configuration file found in
$(HOME)/GNUstep/Defaults/WindowMaker can be edited by hand. This file
is a database with a property list syntax. When selecting an option in
WPrefs.app, it's written down into this file. When modifying this
defaults file, it's very important to follow the syntax.<br>
</p>
<center><a href="index.html">Back
to Index</a>
</center>

483
docs/guidedtour/prefs.rst Normal file
View File

@@ -0,0 +1,483 @@
---
layout: default
title: Guided Tour - Prefs
---
===========
Preferences
===========
.. figure:: images/wprefs.jpg
:figclass: borderless
:height: 64
:width: 64
WPrefs.app
----------
WPrefs.app is the heart of the configuration process in Window Maker.
Upon installing Window Maker and running it for the first time, the WPrefs
application is available under dock icon by default:
.. figure:: images/dock_tile.png
:figclass: borderless
:alt: GNUstep Logo
although, depending on your distibution, location, menu entry or icon may be
different. Ususally Linux distributions position WPrefs as the second or third
icon in the Dock column by default, just above or below the terminal icon.
Double-clicking on this icon opens the WPrefs.app window. Across the top of
the window there is a row of icons, each one corresponding to a group of
settings options. There is a checkbox for balloon help on the bottom left of
the WPrefs.app window. Most of the following is taken directly from the content
of the ballon help dialogs.
.. figure:: images/prefs0.png
:alt: WPrefs.app after launching
:figclass: borderless
WPrefs.app after launching
.. contents:: Available preference settings
:backlinks: none
:local:
Window focus
~~~~~~~~~~~~
.. figure:: images/prefs1.png
:alt: WPrefs.app window focus controls
:figclass: borderless
WPrefs.app window focus controls
The first icon from the left-hand side controls the way windows get
their focus (how they are activated).
- *Input focus mode* (two choices are available):
- **Manual** - click on the window to set keyboard input focus.
- **Auto** - set keyboard input focus to the window under the mouse pointer.
- *Install colormap in the window*
Select either (a) install the colormap in the window that has the input focus
or (b) that is under the mouse pointer.
- *Automatic window raise delay*
Setting the delay (in msec) for automatic window raising
- *Checkboxes*
The topmost check box prevents applications from receiving the focusing
mouse-click (I don't know why you would use this, but some people obviously
find it useful). The middle checkbox allows you to choose whether
newly-opened application windows automatically receive the focus, or must be
clicked to gain focus. The bottom allows you to bring window up while using
keyboard.
Window handling
~~~~~~~~~~~~~~~
.. figure:: images/prefs2.png
:alt: WPrefs.app window handling preferences
:figclass: borderless
WPrefs.app window handling preferences
Clicking the second icon allows you to select the window handling options.
Clicking on this icon opens a panel allowing you to define the default
placement and properties of windows in the workspace.
- *Window placement*
You can use the sliders around the screen representation to modify the
original placement. The gadget tells Window Maker how to order windows on the
screen: *Random*, *Manual*, *Cascade* or *Smart*. *Automatic* is the default.
- *Dragging a maximized window*
Set the behaviour of maximized window when click on titlebar and drag with
the mouse. Possible actions can be set for a window to:
- *changes its position*
- *restores its unmaximized geometry*
- *considers the window now unmaximized*
- *does not move the window*
- *Edge resistance*
To set the edge resistance and whether it resists or attracts windows.
According to the selection, windows resist or attract when moved against
other windows or the edges of the screen. The slider defines the threshold.
Some applications' title bars may disappear at the top of the screen, with
the window being too high for the screen area. Setting the edge resistance to
"0" may solve this problem
- *Mod+Wheel*
You can define, how many pixels window should increment/decrement by using
modifer keys + mouse wheel. By default, CTRL+wheel will change window size
horizontally, while SUPER+wheel vertically.
..
1. *Open dialogs in the same workspace as their owners*
Obviously, whether to force dialog boxes "spawned" by an application to open
in same workspace as their owners.
- *When maximizing*
This option allows the window to cover (or not) icons or the dock when
maximizing.
- *Opaque move/resize*
Clicking on *opaque move* causes windows to be moved with their contents
visible. If not checked, only the frame is displayed during the move. *Opaque
resize* makes window contents visible during resizing, otherwise only the
frame is displayed.
Menu
~~~~
.. figure:: images/prefs3.png
:figclass: borderless
:alt: WPrefs.app menu preferences
WPrefs.app menu preferences
This panel allows you to set menu scrolling speed and submenu alignment with
the parent menu. In addition, two checkboxes are provided:
- The topmost box forces submenus to open inside the screen instead of
scrolling when they would otherwise be off-screen.
- The middle box allows submenus to open off-screen, but causes off-screen
menus to scroll when the mouse pointer is moved over them. This setting is
also of value if you "tear off" a menu and leave it positioned on the
desktop. In that case, you might wish to "park" the menu off-screen (with
only the titlebar showing, for example) and have it reappear when you mouse
over it. This is convenient in some workflows, as when you have multiple
applications open and you are using the window list menu to switch between
applications.
- The bottom box allows you to assign Vim-like keybindings for the selection
of menu items.
Icon
~~~~
.. figure:: images/prefs4.png
:figclass: borderless
:alt: WPrefs.app icon preferences
WPrefs.app icon preferences
Set icon or miniwindow handling options.
- *Icon positioning*
This area defines the initial placement of miniwindows or icons will be
displayed: *bottom, top, right, left*...
- *Icon size*
Selects the size of the icons shown when a window is miniaturized and for
application icons. Dockapp developers usually assume that tiles will be 64x64
pixels, so it's probably a good idea to leave it at that size, unless you
know you won't be using dockapps.
- *Mini-Previews for Icons*
Allows to display content of the window, while hovering the mouse on
minimised application icon. The slider allows to set the size of the preview.
- *Iconification animation*
When an application's window is miniaturized, *miniaturization animation
style* offers four animation choices.
- Shrinking/Zooming,
- Spinning/Twisting,
- 3D Flipping, or
- None
- *Checkboxes*
The topmost box enables/disables auto-arrangement of icons. The middle box
places miniwindows for opened applications on all existing workspaces
(*omnipresent*). The bottom box, allows to use single click for minimized or
docked icons isntead of double clicking.
Ergonomy
~~~~~~~~
.. figure:: images/prefs5.png
:figclass: borderless
:alt: WPrefs.app ergonomic settings
WPrefs.app ergonomic settings
Various types of information are defined in this panel.
- *Size display*
Window Maker provides a box that informs you about the size of a window
during resizing. You may choose to have this display (a) in the center of the
screen, (b) the center of the screen, (c) the center of the resized
window, (d) the side and bottom of the window as a technical drawing-like
size display or (e) not at all.
- *Position display*
Same information as above but regarding the screen placement of a
window while moving (no technical drawing-like option).
- *Appicon bouncing*
You can set the behaviour of AppIcons bounce here.
- *Show balloon text for*
Selecting checkboxes displays balloon text for: incomplete window titles,
miniwindow titles, application and dock icons, or internal help. This may be
useful for new users but many people find having help balloons pop out all
over the desktop gets annoying quickly. I use the *incomplete window title*
and the *miniwindow title* options and none of the others.
- *Workspace border*
You can set a small border for the workspace. This allows you to easily
access the clip (for instance) when windows are maximized.
..
- *Checkbox*
The top check box, if selected, raises a window when switching focus with the
keyboard. The bottom box enables a keyboard language selection button on
window titlebars (must have multiple keyboard maps/locales defined - this is
handy if you are working in multiple languages in applications such as word
processors, for example).
Search Path
~~~~~~~~~~~
.. figure:: images/prefs6.png
:figclass: borderless
:alt: WPrefs.app icon and pixmap search path settings
WPrefs.app icon and pixmap search path settings
This panel is used to add or delete directory paths to search for icons and
pixmaps. These paths are used in the *settings* dialogs for dockapps and docked
application icons, so having a good, complete set of defined paths is
important. This may require some manual intervention, especially upon initial
setup, since some default paths will not be present on your system, while
others not predefined will be present. Use the *add* and *remove* dialogs to
configure according to what is actually available.
Dock
~~~~
.. figure:: images/prefs7.png
:figclass: borderless
:alt: WPrefs.app dock preference settings
WPrefs.app dock preference settings
In this panel you can fine-tune Dock/Clip/Drawer behaviour.
- *Clip autocollapsing delays* and *Clip autoraising delays* lets you choose
delays for expansion, collapsing, raising and lowering the Clip
- *Dock/Clip/Drawer*
First icon enables/disables thr Dock, vertical bar for your appicons and
applications. Second allows to enables/disables Clip, the tile with the
paperclip icon. Last one enables/disables Drawer - a special dockapp for
keeping the applications icons horizontally.
Workspace
~~~~~~~~~
.. figure:: images/prefs8.png
:figclass: borderless
:alt: WPrefs.app workspace preference settings
WPrefs.app workspace preference settings
This panel defines navigation features within the workspace.
- *Workspace navigation*
Selecting the first checkbox allows switching to the first workspace when
switching past the last workspace and vice-versa. Selecting the second
checkbox allows windows to be dragged from one workspace to another.
Selecting the third checkbox cause a new workspace to be created when windows
are dragged off the last existing workspace. A selection menu allows you to
define where the workspace name is displayed each time you move from one
workspace to another (or not to display the workspace name at all).
Other
~~~~~
.. figure:: images/prefs9.png
:figclass: borderless
:alt: WPrefs.app other workspace configuration settings
WPrefs.app other workspace configuration settings
This panel sets icon slide speed, shade animation speed, smooth scaling and
titlebar control (button) style. Animations and sound are also defined here.
- *Icon slide speed*
Selecting the left icon gives the slowest result, selecting the right one
gives the fastest.
- *Shade animation speed*
Same as icon slide
- *Titlebar style*
To choose a more or less "NeXTish" titlebar. (The top version is "newer,"
while the bottom left is ca. 1990 and the bottom right is ca. 1988.)
- *Animations*
Selecting the animations icon enables animations for window miniaturization,
shading and so on. Selecting the superfluous icon enables "ghosting" of dock
(when moved - especially when moved from one side of the screen to the other)
and explosion animation for icons you remove from the dock.
- *Smooth scaling*
If selected, neutralizes pixelization effect on background images. The
side-effect is to slow down background image loading.
- *Dithering colormap for 8bpp*
For 8-bit displays (anyone still have one of these?) this enables dithering
and changes the number of colors to reserve either for applications or for
Window Maker. The Default setting almost always gives the best result.
Applications menu
~~~~~~~~~~~~~~~~~
.. figure:: images/prefs10.png
:figclass: borderless
:alt: WPrefs.app application menu configuration
WPrefs.app application menu configuration
In this panel the applications menu and the commands to launch each application
can be defined. This panel has been changed in version 0.63.and later. It now
displays the actual menu thus allowing direct editing. This can be done only if
the menu is in property list format. Menus in plain text format can't be
edited in WPrefs. Check the README file in the Window Maker directory on how to
use one or the other.
Keyboard shortcut
~~~~~~~~~~~~~~~~~
.. figure:: images/prefs11.png
:figclass: borderless
:alt: WPrefs.app keyboard shortcut settings
WPrefs.app keyboard shortcut settings
Many actions in Window Maker have predefined keyboard shortcuts. These actions
mainly concern windows and workspaces. Modifying, adding or removing shortcuts
can be done in this panel. Defining a shortcut can be done interactively,
capturing the key combination.
Mouse
~~~~~
.. figure:: images/prefs12.png
:figclass: borderless
:alt: WPrefs.app mouse configuration
WPrefs.app mouse configuration
The mouse grab modifier represents the keyboard shortcut to use for actions
like dragging windows with the mouse or clicking inside the window. Mod1 (Alt)
is the default.
This panel sets the mouse speed and double-click delay. Mouse button bindings
can be defined and can be disabled or enabled.
The default setting binds the right mouse button to the applications menu,
middle button to the window list menu and left button to window selection
(focus). Of course, with a two button mouse, the middle button binding will not
work. However, on some OSes pressing both buttons at once gives the same result
as the one obtained with middle button.
Starting from version 0.65 on, the mouse wheel can be used to switch
workspaces. This is not default behavior and must be enabled here.
If mouse have more than 3 buttons and/or tilt, they can be bound to some
actions.
Appearance
~~~~~~~~~~
.. figure:: images/prefs13.png
:figclass: borderless
:alt: WPrefs.app appearance settings
WPrefs.app appearance settings
In this panel, everything related to the appearance of the GUI (except the
background color or image) can be configured. Windows, menus and icons can have
their own background "texture," meaning color gradients of various types can be
configured here. Texture, color, menu style, and title alignment can be fully
customized.
Font configuration
~~~~~~~~~~~~~~~~~~
.. figure:: images/prefs14.png
:figclass: borderless
:alt: Wprefs.app font configuration options
Wprefs.app font configuration options
This panel allows you to configure fonts for the window and menu titlebars, for
the menu body text, and for the icon and clip text. In addition, a font may be
defined for desktop messages.
Expert user
~~~~~~~~~~~
.. figure:: images/prefs15.png
:figclass: borderless
:alt: WPrefs.app expert user settings
WPrefs.app expert user settings
Using this panel implies some knowledge. Many options are available. Among
these are:
- Disabling miniwindows (useful when using with KDE and GNOME)
- Using (or not) xset
- Saving session on exit (highly recommended!)
- Using SaveUnder in different objects
- Using Win style cycling (added from version 0.63.0)
- Disabling confirmation panel for the kill command
- Disabling cycling colors highlighting of icons
- Multi head related options
- Screen edge snapping
Editing the configuration file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If needed, the defaults configuration file found in
$(HOME)/GNUstep/Defaults/WindowMaker can be edited by hand. This file is a
database with a property list syntax. When selecting an option in WPrefs.app,
it's written down into this file. When modifying this defaults file, it's very
important to follow the syntax.

View File

@@ -1,366 +0,0 @@
---
layout: default
title: Guided Tour - Windows
---
<h1>
<center>Windows</center>
</h1>
<center><a href="index.html">Back
to Index</a>
</center>
<ul>
<li><a href="#desc">Description</a></li>
<li><a href="#focus">Focusing</a></li>
<li><a href="#order">Reordering</a></li>
<li><a href="#move">Moving</a></li>
<li><a href="#max">Maximizing</a></li>
<li><a href="#mini">Miniturizing</a></li>
<li><a href="#size">Resizing</a></li>
<li><a href="#shade">Shading</a></li>
<li><a href="#hide">Hiding</a></li>
<li><a href="#close">Closing</a></li>
<li><a href="#menu">Commands menu</a></li>
</ul>
<h2><a id="desc">Description</a></h2>
<p>General layout of a window:</p>
<ul>
<li>
<p><em>Titlebar</em>: Gives the name of the application, document
or window. It's color (usually) indicates the focus state (active or
inactive window). I say (usually) because some styles and themes do not
provide different colors for focused or unfocused windows - although
this is rare (and, I might add, cruel!).</p>
</li>
<li>
<p><em>Miniaturize button</em>:
Clicking on the left button of the titlebar iconifies the window.</p>
</li>
<li>
<p><em>Close button</em>:
Clicking on the right button of the titlebar closes the window or kills
the application.</p>
</li>
<li>
<p><em>Resizebar</em>:
The bottom part of the window. Dragging the resizebar with the mouse
resizes the window.</p>
</li>
<li><em>Client area</em>:
The window content. It can be an application, some text, a picture... </li>
</ul>
<h2><a id="focus">Focusing</a></h2>
<p>A window can be in two states: focused or unfocused. The focused
window is the active window, the one receiving keystrokes. It's
titlebar has a differentiated color (usually!). Dialog windows or
panels opened
from a main window, automatically get the focus. As soon as they are
closed, the main window gets the focus back.</p>
<p>Two modes are available to focus a window:</p>
<ul>
<li>
<p><em>Click to focus mode</em>: clicking on any part of the window
activates it.</p>
</li>
<li>
<p><em>Focus follows mouse mode</em>: moving the mouse pointer over
the window activates it. </p>
</li>
</ul>
<h2><a id="order">Reordering</a></h2>
<p>Windows can overlap other windows, in which case some will hide all
or part of others. Clicking on the titlebar or resizebar with the left
mouse button brings a window to the "front" (gives that window focus).
Selecting a window from the window list menu does the same.</p>
<p>Some key bindings are provided and are very useful when a window is
hidden behind others.</p>
<ul>
<li>
<p><em>Meta key + click on the titlebar with left mouse button</em>-<br>
sends the window to the back and gives focus to the topmost window.</p>
</li>
<li>
<p><em>Meta key + click on the client area with left mouse button</em>-<br>
brings the window to the front and focuses it.</p>
</li>
<li>
<p><em>Meta key + Up Arrow key</em>-<br>
brings the current focused window to the front.</p>
</li>
<li>
<p><em>Meta key + Down Arrow key</em>-<br>
sends the current focused window to the back.</p>
</li>
</ul>
<p>Many window attributes can be modified from the attributes panel in
the window commands menu (clicking the right mouse button on the
titlebar). From version 0.62.0, window cycling was changed to Windows
style (Alt-Tab).</p>
<h2><a id="move">Moving</a></h2>
<p>Clicking on the titlebar of a window and dragging it with the left
mouse button pressed moves the window.
The little box in the middle indicates the current position in pixels
relative to the top left corner of the screen (+0 +0).
Extra key bindings give more flexibility.
- Dragging the titlebar with middle mouse button: moves the window
without changing it's stacking order.
- Dragging the titlebar + Ctrl key: moves the window without focusing
it.
- Dragging the client area or the resizebar + Meta key: moves the
window.</p>
<h2><a id="max">Maximizing</a></h2>
<p>Double-clicking the titlebar while holding the Ctrl key resizes the
window's height to full screen.</p>
<p>Double-clicking the titlebar while holding the Shift key resizes the
window's width to full screen.</p>
<p>Double-clicking the titlebar while holding both Ctrl and Shift keys
resizes the window's height and width to full screen.
Double-clicking the titlebar while holding Ctrl or Shift key restores
the initial size of the window.</p>
<p>To prevent a maximized window from covering the dock, the "Keep on
top" option must be selected from the dock menu.</p>
<h2><a id="mini">Miniaturizing</a></h2>
<p>Clicking the miniaturize button (the left one on the titlebar)
shrinks the window into a miniwindow with an icon and a title and
places it at the bottom of the screen. Hitting the assigned shortcut
does the same. (Default is Meta + m.)</p>
<p>The miniwindow is different from the application icon in that the
miniwindow cannot be docked.</p>
<p>Double-clicking in the miniwindow restores a miniaturized window.
Double-clicking in an application icon with the middle mouse button
restores all miniaturized and hidden windows of this application.</p>
<h2><a id="size">Resizing</a></h2>
<p>The resizebar, at the bottom of the window, is divided into three
regions: left end region, middle region and right end region.</p>
<p>Depending upon the region you click, the resize operation is
constrained to one direction. </p>
<p>Clicking in the middle region of the resizebar and dragging it
vertically changes the window's height.</p>
<p>Clicking in either the left or right region of the resizebar and
dragging it horizontally changes the window's width. </p>
<p>Dragging with Shift key pressed gives the same result. Clicking in
either end region of the resizebar and dragging it diagonally changes
both height and width.</p>
<p>Key bindings give more options.</p>
<ul>
<li>
<p>Dragging the window in the client area with the right mouse
button + Meta key resizes the window.</p>
</li>
<li>
<p>Dragging the resizebar with the middle mouse button resizes the
window without bringing it to the front.</p>
</li>
<li>
<p>Dragging the resizebar + Ctrl key resizes the window without
focusing it.</p>
</li>
</ul>
<h2><a id="shade">Shading</a></h2>
<p>Double-clicking on the titlebar of a window shades it.
This means the window rolls up to it's titlebar. A shaded window has
almost the same properties as a normal window. It can be miniaturized
or closed.</p>
<p>From version 0.80.0, you can shade/unshade a window using a mouse
wheel on its titlebar. This of course, assumes your system is able to
manage a mouse wheel. The WMGLOBAL file in you $HOME/GNUstep/Defaults
should contain two new directives : MouseWheelUp and MouseWheelDown.</p>
<h2><a id="hide">Hiding</a></h2>
<p>Clicking the the miniaturize button (the left one on the titlebar)
with the right mouse button hides the application.
Using the middle mouse button unhides the application, simultaneously
opening the windows list menu and selecting the hidden application.
(Pressing both buttons at once with a two buttons mouse does the same
on some OSes.) If this doesn't work, use the F11 key binding (the
default) to open the windows list menu.</p>
<h2><a id="close">Closing</a></h2>
<p>Clicking the close button (the right one on the titlebar) closes the
window. When the close button has a different form (not an X), it means
an application is running in that window.
Double-clicking in this close button kills the application. This can be
done too with <em>Ctrl key + clicking the close button</em>.</p>
<p>Usually, it's much better to exit an application from inside
(through it's menu, for instance).</p>
<h2><a id="menu">Commands menu</a></h2>
<p>Clicking on the titlebar of a window with the right mouse button
opens a menu containing commands applying to this window. The keyboard
shortcut Ctrl + Esc can replace the click on the titlebar. Esc closes
this menu.</p>
<p><strong>List of Commands Menu commands:</strong></p>
<p><em>Maximize/Unmaximize</em>:<br>
Either maximizes or returns the window to it's initial state.</p>
<p><em>Miniaturize</em>:<br>
Miniaturizes the window (miniwindow). The keyboard shortcut is Meta + m.</p>
<p><em>Shade/Unshade</em>: Shades (or unshades) the window.</p>
<p><em>Hide</em>:<br>
Hides all windows of the application. Clicking on the application icon
unhides the windows.</p>
<p><em>Hide Others</em>:<br>
From version 0.80.1 it is possible to hide all others windows. The
window list menu allows to unhide selecting the window to redisplay.</p>
<p><em>Resize/Move</em>:<br>
When this menu option is selected, the window is ready to be moved or
resized (the little box with coordinates is displayed inside the
window). Clicking on the titlebar deselects the option.</p>
<p><em>Select</em>:<br>
Obviously selects the window which then can be moved or resized...
Reselecting this option deselects the window.</p>
<p><em>Move to</em>:<br>
Allows to move the window to another workspace (if existing!).</p>
<p><em>Attributes</em>:<br>
Opens the attributes panel to edit attributes and options for the
window.</p>
<p>Five options are available in this panel: Window specification,
Window attributes, Advanced options, Icon and initial workspace and
application specific.</p>
<ul>
<li>Window specification: Defines that the configuration will apply
to windows having their WM_CLASS property set to the selected name.
This is because windows can have different names.
From version 0.65.0, you can select the window to get the right
specification.</li>
<li>
<p>Window attributes: selecting the corresponding checkbox allows
to: </p>
<ul>
<li>disable titlebar</li>
<li>disable resizebar</li>
<li>disable close button</li>
<li>disable miniaturize button</li>
<li>disable border</li>
<li>keep on top</li>
<li>keep at bottom</li>
<li>omnipresent</li>
<li>start miniaturized</li>
<li>start maximized</li>
<li>full screen maximization</li>
</ul>
</li>
<li>
<p>Advanced options: selecting the corresponding checkbox allows
to: </p>
<ul>
<li>don't bind keyboard shortcuts</li>
<li>don't bind mouse clicks</li>
<li>don't show in the window list</li>
<li>don't let the window take focus</li>
<li>keep inside screen</li>
<li>ignore "Hide others"</li>
<li>ignore "Save session"</li>
<li>emulate application icon</li>
</ul>
</li>
<li>
<p>Icon and initial workspace: allow to </p>
<ul>
<li>choose an icon browsing directories</li>
<li>ignore client supplied icon when selecting the checkbox</li>
<li>define initial workspace</li>
</ul>
</li>
<li>
<p>Application specific: selecting checkboxes allows to:</p>
<ul>
<li>start hidden or with no application icon</li>
<li>collapse application icons (from version 0.65.0)</li>
</ul>
</li>
<li>
<p>From version 0.80.0 a new checkbox is available : "Shared
application icon". It replaces the "Collapse application icon"
checkbox. That is, you can have many open windows from the same
application with only one appicon. This feature is on by default except
for some incompatible applications. This behavior can be defined for
all windows in the Window Specification inspector selecting the
Defaults for all windows checkbox.</p>
</li>
</ul>
<p>You can revert to the old behavior changing SharedAppIcon to "No" in
the WMWindowAttributes file, either in the global domain or in the
local domain : $HOME/GNUstep/Defaults.</p>
<p><em>Options</em>:</p>
<p>Submenu options allow to:</p>
<ul>
<li>to keep the window on top</li>
<li>to keep the window at bottom</li>
<li>to keep the window omnipresent</li>
<li>to set shortcuts for the window</li>
</ul>
<p>Ten shortcuts are available as soon as they have been set in the
keyboard shortcut dialog. The shortcuts to define are those named
"Shortcut for window + figure". Then, using the defined shortcut gives
the focus to the window.</p>
<p><em>Close</em>:<br>
Closes the window</p>
<p><em>Kill</em>:<br>
Kills the application.
Usually, an application must be closed from inside (menu or other
means). This option is especially reserved for "emergency" cases.</p>

308
docs/guidedtour/win.rst Normal file
View File

@@ -0,0 +1,308 @@
---
layout: default
title: Guided Tour - Windows
---
Windows
=======
.. contents::
:depth: 1
:backlinks: none
:local:
Description
-----------
General layout of a window:
- *Titlebar*: Gives the name of the application, document or window. It's color
(usually) indicates the focus state (active or inactive window). I say
(usually) because some styles and themes do not provide different colors for
focused or unfocused windows - although this is rare (and, I might add,
cruel!).
- *Miniaturize button*: Clicking on the left button of the titlebar iconifies
the window.
- *Close button*: Clicking on the right button of the titlebar closes the
window or kills the application.
- *Resizebar*: The bottom part of the window. Dragging the resizebar with the
mouse resizes the window.
- *Client area*: The window content. It can be an application, some text, a
picture...
Focusing
--------
A window can be in two states: focused or unfocused. The focused window is the
active window, the one receiving keystrokes. It's titlebar has a differentiated
color (usually!). Dialog windows or panels opened from a main window,
automatically get the focus. As soon as they are closed, the main window gets
the focus back.
Two modes are available to focus a window:
- *Click to focus mode*: clicking on any part of the window activates it.
- *Focus follows mouse mode*: moving the mouse pointer over the window
activates it.
Reordering
----------
Windows can overlap other windows, in which case some will hide all or part of
others. Clicking on the titlebar or resizebar with the left mouse button brings
a window to the "front" (gives that window focus). Selecting a window from the
window list menu does the same.
Some key bindings are provided and are very useful when a window is hidden
behind others.
- *Meta key + click on the titlebar with left mouse button*-
sends the window to the back and gives focus to the topmost window.
- *Meta key + click on the client area with left mouse button*-
brings the window to the front and focuses it.
- *Meta key + Up Arrow key*-
brings the current focused window to the front.
- *Meta key + Down Arrow key*-
sends the current focused window to the back.
Many window attributes can be modified from the attributes panel in the window
commands menu (clicking the right mouse button on the titlebar). From version
0.62.0, window cycling was changed to Windows style (Alt-Tab).
Moving
------
Clicking on the titlebar of a window and dragging it with the left mouse button
pressed moves the window. The little box in the middle indicates the current
position in pixels relative to the top left corner of the screen (+0 +0). Extra
key bindings give more flexibility.
- Dragging the titlebar with middle mouse button: moves the window
without changing it's stacking order.
- Dragging the titlebar + Ctrl key: moves the window without focusing it.
- Dragging the client area or the resizebar + Meta key: moves the window.
Maximizing
----------
Double-clicking the titlebar while holding the Ctrl key resizes the window's
height to full screen.
Double-clicking the titlebar while holding the Shift key resizes the window's
width to full screen.
Double-clicking the titlebar while holding both Ctrl and Shift keys resizes the
window's height and width to full screen. Double-clicking the titlebar while
holding Ctrl or Shift key restores the initial size of the window.
To prevent a maximized window from covering the dock, the "Keep on top" option
must be selected from the dock menu.
Miniaturizing
-------------
Clicking the miniaturize button (the left one on the titlebar) shrinks the
window into a miniwindow with an icon and a title and places it at the bottom
of the screen. Hitting the assigned shortcut does the same. (Default is Meta +
m.)
The miniwindow is different from the application icon in that the miniwindow
cannot be docked.
Double-clicking in the miniwindow restores a miniaturized window.
Double-clicking in an application icon with the middle mouse button restores
all miniaturized and hidden windows of this application.
Resizing
--------
The resizebar, at the bottom of the window, is divided into three regions: left
end region, middle region and right end region.
Depending upon the region you click, the resize operation is constrained to one
direction.
Clicking in the middle region of the resizebar and dragging it vertically
changes the window's height.
Clicking in either the left or right region of the resizebar and dragging it
horizontally changes the window's width.
Dragging with Shift key pressed gives the same result. Clicking in either end
region of the resizebar and dragging it diagonally changes both height and
width.
Key bindings give more options.
- Dragging the window in the client area with the right mouse button + Meta key
resizes the window.
- Dragging the resizebar with the middle mouse button resizes the window
without bringing it to the front.
- Dragging the resizebar + Ctrl key resizes the window without focusing it.
Shading
-------
Double-clicking on the titlebar of a window shades it. This means the window
rolls up to it's titlebar. A shaded window has almost the same properties as a
normal window. It can be miniaturized or closed.
From version 0.80.0, you can shade/unshade a window using a mouse wheel on its
titlebar. This of course, assumes your system is able to manage a mouse wheel.
The WMGLOBAL file in you $HOME/GNUstep/Defaults should contain two new
directives : MouseWheelUp and MouseWheelDown.
Hiding
------
Clicking the the miniaturize button (the left one on the titlebar) with the
right mouse button hides the application. Using the middle mouse button unhides
the application, simultaneously opening the windows list menu and selecting the
hidden application. (Pressing both buttons at once with a two buttons mouse
does the same on some OSes.) If this doesn't work, use the F11 key binding (the
default) to open the windows list menu.
Closing
-------
Clicking the close button (the right one on the titlebar) closes the window.
When the close button has a different form (not an X), it means an application
is running in that window. Double-clicking in this close button kills the
application. This can be done too with *Ctrl key + clicking the close button*.
Usually, it's much better to exit an application from inside (through it's
menu, for instance).
Commands menu
-------------
Clicking on the titlebar of a window with the right mouse button opens a menu
containing commands applying to this window. The keyboard shortcut Ctrl + Esc
can replace the click on the titlebar. Esc closes this menu.
List of Commands Menu commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Maximize/Unmaximize*:
Either maximizes or returns the window to it's initial state.
*Miniaturize*:
Miniaturizes the window (miniwindow). The keyboard shortcut is Meta + m.
*Shade/Unshade*: Shades (or unshades) the window.
*Hide*:
Hides all windows of the application. Clicking on the application icon unhides
the windows.
*Hide Others*:
From version 0.80.1 it is possible to hide all others windows. The window list
menu allows to unhide selecting the window to redisplay.
*Resize/Move*:
When this menu option is selected, the window is ready to be moved or resized
(the little box with coordinates is displayed inside the window). Clicking on
the titlebar deselects the option.
*Select*:
Obviously selects the window which then can be moved or resized... Reselecting
this option deselects the window.
*Move to*:
Allows to move the window to another workspace (if existing!).
*Attributes*:
Opens the attributes panel to edit attributes and options for the window.
Five options are available in this panel: Window specification, Window
attributes, Advanced options, Icon and initial workspace and application
specific.
- Window specification: Defines that the configuration will apply to windows
having their WM_CLASS property set to the selected name. This is because
windows can have different names. From version 0.65.0, you can select the
window to get the right specification.
- Window attributes: selecting the corresponding checkbox allows to:
- disable titlebar
- disable resizebar
- disable close button
- disable miniaturize button
- disable border
- keep on top
- keep at bottom
- omnipresent
- start miniaturized
- start maximized
- full screen maximization
- Advanced options: selecting the corresponding checkbox allows to:
- don't bind keyboard shortcuts
- don't bind mouse clicks
- don't show in the window list
- don't let the window take focus
- keep inside screen
- ignore "Hide others"
- ignore "Save session"
- emulate application icon
- Icon and initial workspace: allow to
- choose an icon browsing directories
- ignore client supplied icon when selecting the checkbox
- define initial workspace
- Application specific: selecting checkboxes allows to:
- start hidden or with no application icon
- collapse application icons (from version 0.65.0)
- From version 0.80.0 a new checkbox is available : "Shared application icon".
It replaces the "Collapse application icon" checkbox. That is, you can have
many open windows from the same application with only one appicon. This
feature is on by default except for some incompatible applications. This
behavior can be defined for all windows in the Window Specification inspector
selecting the Defaults for all windows checkbox.
You can revert to the old behavior changing SharedAppIcon to "No" in the
WMWindowAttributes file, either in the global domain or in the local domain :
$HOME/GNUstep/Defaults.
*Options*:
Submenu options allow to:
- to keep the window on top
- to keep the window at bottom
- to keep the window omnipresent
- to set shortcuts for the window
Ten shortcuts are available as soon as they have been set in the keyboard
shortcut dialog. The shortcuts to define are those named "Shortcut for window +
figure". Then, using the defined shortcut gives the focus to the window.
*Close*:
Closes the window
*Kill*:
Kills the application. Usually, an application must be closed from inside (menu
or other means). This option is especially reserved for "emergency" cases.

View File

@@ -1,49 +0,0 @@
---
layout: default
title: Documentation
---
<br />
<br />
<h3>Documentation</h3><br />
<p>It's a fact that one of the biggest problems with today's software is lack of good documentation, or any
documentation for that matter. Programmers generally don't have a lot of time to document their work, and the things
they do document are usually oriented towards other programmers. While we can appreciate the programmers point of view,
we feel it's necessary to cater to a larger audience (i.e our users) by providing clear, concise information on how to
use our software. The sections below will bring all of these pieces of information together for you.</p>
<p>Before you get started with Window Maker, you need to have an understanding of how to make use of the documentation
that comes with the source distribution. The main objective to using documentation is to <strong>understand</strong>
it, which coincidentally requires that you <strong>read</strong> it. A common mistake is for new or novice users to
overlook this information, leading them to frustration and a bad first impression. Please take a moment to peruse the
sections below, which should make the experience of learning Window Maker a more pleasant one.</p>
<ul>
<li><a href="installation.html">Installation Basics</a></li>
<li><a href="wmaker_install.html">Window Maker Compilation and Installation</a></li>
<li><a href="wmaker_i18n.html">Window Maker Internationalisation</a></li>
<li><a href="guidedtour/index.html">Guided Tour</a></li>
<li><a href="guide_toc.html">User Guide</a></li>
<!-- <li><a href="desktop.php">Desktop/X Integration</a></li> -->
<li><a href="FAQ.html">FAQ</a></li>
<li><a href="wings.html">WINGs</a></li>
</ul>
<h3>Very frequently asked question </h3>
<h2> Can I easily mount my external drives or connect to the internet with Window Maker?</h2>
<p> Yes, you can. Mounting external media is not the problem of a window manager to solve, but
a tipical Window Maker user can mount external media just as easily as any other desktop user.
If you use a dockapp like <a href="https://github.com/raorn/wmvolman">wmvolman</a> or
<a href="http://sourceforge.net/projects/wmudmount">wmudmount</a> you are just a click away from
having your external media mounted on /media/VOLUME_LABEL.</p>
<p> And you can just as easily manage your network connections using the standard <code>nm-applet</code> running
in a system tray like <a href="http://sourceforge.net/projects/wmsystemtray">wmsystemtray</a> on your dock.</p>
<div align="center"><img src="/img/essential_dockapps.png" alt="Essential dockapps" width="66" height="135" /><div>wmvolman and wmsystemtray with nm-applet</div></div>

58
docs/index.rst Normal file
View File

@@ -0,0 +1,58 @@
---
layout: default
title: Documentation
---
Documentation
=============
It's a fact that one of the biggest problems with today's software is lack of
good documentation, or any documentation for that matter. Programmers generally
don't have a lot of time to document their work, and the things they do
document are usually oriented towards other programmers. While we can
appreciate the programmers point of view, we feel it's necessary to cater to a
larger audience (i.e our users) by providing clear, concise information on how
to use our software. The sections below will bring all of these pieces of
information together for you.
Before you get started with Window Maker, you need to have an understanding of
how to make use of the documentation that comes with the source distribution.
The main objective to using documentation is to **understand** it, which
coincidentally requires that you **read** it. A common mistake is for new or
novice users to overlook this information, leading them to frustration and a
bad first impression. Please take a moment to peruse the sections below, which
should make the experience of learning Window Maker a more pleasant one.
.. class:: contents
- `Installation Basics <installation.html>`_
- `Window Maker Compilation and Installation <wmaker_install.html>`_
- `Window Maker Internationalisation <wmaker_i18n.html>`_
- `Guided Tour <guidedtour/index.html>`_
- `User Guide <guide_toc.html>`_
- `FAQ <FAQ.html>`_
- `WINGs <wings.html>`_
.. - `Desktop/X Integration <desktop.php>`_
Very frequently asked question
------------------------------
- **Can I easily mount my external drives or connect to the internet with
Window Maker?**
Yes, you can. Mounting external media is not the problem of a window manager
to solve, but a tipical Window Maker user can mount external media just as
easily as any other desktop user. If you use a dockapp like
`wmvolman <https://github.com/raorn/wmvolman>`_ or
`wmudmount <http://sourceforge.net/projects/wmudmount>`_ you are just a
click away from having your external media mounted on `/media/VOLUME_LABEL`.
And you can just as easily manage your network connections using the standard
`nm-applet` running in a system tray like `wmsystemtray
<http://sourceforge.net/projects/wmsystemtray>`_ on your dock.
.. figure:: /img/essential_dockapps.png
:alt: essential dockapps
wmvolman and wmsystemtray with nm-applet

View File

@@ -1,103 +0,0 @@
---
layout: default
title: Documentation
---
<br />
<br />
<h3>Installation Basics</h3>
<h3>Downloading and Extracting</h3>
<p>The first necessary step is to <a href="http://windowmaker.org/pub/source/release/WindowMaker-0.95.5.tar.gz">download</a>
the Window Maker source distribution. From this point on, we'll assume it has
been retrieved and is residing on the local hard disk. The next step is to extract it, and change into the source
directory.</p>
<pre>
<code># cd /path/to/your/download
# gunzip WindowMaker-0.xx.xx.tar.gz
# tar -xf WindowMaker-0.xx.xx.tar
# cd WindowMaker-0.xx.xx
</code>
</pre>
<p>Now that things are extracted, it's time to look at the relevant pieces of documentation. Most UNIX oriented free
software packages come with a README file, and Window Maker is no exception. The README file contains a summary
overview of what the distribution is, what the various directories contain, and other general information.</p>
<p>Moving along, we have the NEWS file. For now, we just want to point out its existence. It will become more useful to
novice users over time. Veteran Window Maker users will find it handy for keeping their configuration files up to date,
and learning about various changes which affect Window Maker's behavior.</p>
<p>The two remaining files we need to look at are INSTALL and BUGS. The INSTALL file provides additional information
that is necessary to install Window Maker successfully. The BUGS file contains a list of known Window Maker bugs. If a
user feels they've found a bug in Window Maker, they should consult the BUGS file first. If the bug isn't listed,
proceed to the Bug Tracker and see if its there.</p>
<h3>Compiling</h3>
<p>After extracting the latest version of Window Maker using the previous instructions, the next step is to compile it.
First of all, the configure script should be run. It will test to make sure all the necessary libraries, compilers and
build tools are available on the local system. The configure script allows for various arguments to be passed to it
which relate to Window Maker's installation. For a complete list of all configurable settings, enter:</p>
<pre>
<code>$ ./configure --help
</code>
</pre>
<p>Commonly used configuration options are:</p>
<pre>
<code>--prefix=DIR --enable-modelock --enable-xinerama --enable-silent-rules
</code>
</pre>
<p>The first configuration option lets Window Maker be installed into a non-default installation directory (e.g if
Window Maker cannot be installed system wide for some reason, a user can specify a path under his/her home directory).
The default installation directory is /usr/local/bin. Note that root access
will be needed later on during the installation process if the defaults were used.</p>
<p>So if a user johndoe would like to install the wmaker binary into /home/johndoe/wmaker/bin instead of the default
/usr/local/bin, the following argument would be passed to the configure script:</p>
<pre>
<code> $ ./configure --prefix=/home/johndoe/wmaker
</code>
</pre>
<p>After the configure script has been successfully executed, Window Maker can now be compiled with the make command;
simply enter:</p>
<pre>
<code>$ make
</code>
</pre>
<p>The final step is to install the binaries and other support files. This is accomplished by entering: # make install</p>
<p>Note that this is the step that needs to be performed by root if the default installation directory was used, or if
a directory was specified that the running user cannot write to. If the installing user has root access, they should
first become root by issuing <code>su - root</code>. Otherwise, reconfigure and recompile Window Maker by specifying a
different installation directory, or kindly ask the local system administator to install it system wide.</p>
<p>Once Window Maker is installed system-wide, a default configuration can be installed on a per-user basis, through
the bundled installation script, <code>wmaker.inst</code>. Enter <code>wmaker.inst</code> in a terminal emulator to
configure Window Maker for your user.</p>
<p>This script copies the default Window Maker configuration to your user's home directory and sets Window Maker as the
default window manager. It is recommended to create ~/GNUstep before executing the script.</p>
<h3> Final tweaks</h3>
<p> Edit your ~/.xinitrc to load your newly installed Window Maker using the line
<code> exec /usr/local/bin/wmaker</code>.</p>
<p> Generate a new root menu (accessible with F12) with <code>wmgenmenu</code>, for example
<pre>
<code> $ wmgenmenu > $HOME/GNUstep/Defaults/WMRootMenu </code>
</pre>
<p> Another recommended step is to install a few dockapps like wmvolman, wmmixer and wmsystemtray which allow one to
easily mount external media on /media among other things. Visit <a href="http://www.dockapps.net">dockapps</a>
for many more choices.</p>
<br><br><br>

130
docs/installation.rst Normal file
View File

@@ -0,0 +1,130 @@
---
layout: default
title: Documentation
---
Installation Basics
===================
Downloading and Extracting
--------------------------
The first necessary step is to `download
<http://windowmaker.org/pub/source/release/WindowMaker-0.95.5.tar.gz>`_ the
Window Maker source distribution. From this point on, we'll assume it has been
retrieved and is residing on the local hard disk. The next step is to extract
it, and change into the source directory.
.. code:: console
:class: highlight
# cd /path/to/your/download
# gunzip WindowMaker-0.xx.xx.tar.gz
# tar -xf WindowMaker-0.xx.xx.tar
# cd WindowMaker-0.xx.xx
Now that things are extracted, it's time to look at the relevant pieces of
documentation. Most UNIX oriented free software packages come with a README
file, and Window Maker is no exception. The README file contains a summary
overview of what the distribution is, what the various directories contain, and
other general information.
Moving along, we have the NEWS file. For now, we just want to point out its
existence. It will become more useful to novice users over time. Veteran Window
Maker users will find it handy for keeping their configuration files up to
date, and learning about various changes which affect Window Maker's behavior.
The two remaining files we need to look at are INSTALL and BUGS. The INSTALL
file provides additional information that is necessary to install Window Maker
successfully. The BUGS file contains a list of known Window Maker bugs. If a
user feels they've found a bug in Window Maker, they should consult the BUGS
file first. If the bug isn't listed, proceed to the Bug Tracker and see if its
there.
Compiling
---------
After extracting the latest version of Window Maker using the previous
instructions, the next step is to compile it. First of all, the configure
script should be run. It will test to make sure all the necessary libraries,
compilers and build tools are available on the local system. The configure
script allows for various arguments to be passed to it which relate to Window
Maker's installation. For a complete list of all configurable settings, enter:
.. code:: console
:class: highlight
$ ./configure --help
Commonly used configuration options are:
.. code:: console
:class: highlight
--prefix=DIR --enable-modelock --enable-xinerama --enable-silent-rules
The first configuration option lets Window Maker be installed into a
non-default installation directory (e.g if Window Maker cannot be installed
system wide for some reason, a user can specify a path under his/her home
directory). The default installation directory is /usr/local/bin. Note that
root access will be needed later on during the installation process if the
defaults were used.
So if a user johndoe would like to install the wmaker binary into
/home/johndoe/wmaker/bin instead of the default /usr/local/bin, the following
argument would be passed to the configure script:
.. code:: console
:class: highlight
$ ./configure --prefix=/home/johndoe/wmaker
After the configure script has been successfully executed, Window Maker can now
be compiled with the make command; simply enter:
.. code:: console
:class: highlight
$ make
The final step is to install the binaries and other support files. This is
accomplished by entering:
.. code:: console
:class: highlight
# make install
Note that this is the step that needs to be performed by root if the default
installation directory was used, or if a directory was specified that the
running user cannot write to. If the installing user has root access, they
should first become root by issuing ``su - root``. Otherwise, reconfigure and
recompile Window Maker by specifying a different installation directory, or
kindly ask the local system administator to install it system wide.
Once Window Maker is installed system-wide, a default configuration can be
installed on a per-user basis, through the bundled installation script,
``wmaker.inst``. Enter ``wmaker.inst`` in a terminal emulator to configure
Window Maker for your user.
This script copies the default Window Maker configuration to your user's home
directory and sets Window Maker as the default window manager. It is
recommended to create ``~/GNUstep`` before executing the script.
Final tweaks
------------
Edit your ~/.xinitrc to load your newly installed Window Maker using the line
``exec /usr/local/bin/wmaker``.
Generate a new root menu (accessible with F12) with ``wmgenmenu``, for example
.. code:: console
:class: highlight
$ wmgenmenu > $HOME/GNUstep/Defaults/WMRootMenu
Another recommended step is to install a few dockapps like wmvolman, wmmixer
and wmsystemtray which allow one to easily mount external media on /media among
other things. Visit `dockapps <http://www.dockapps.net>`_ for many more
choices.

View File

@@ -1,66 +0,0 @@
---
layout: default
title: WINGs
---
<br />
<br />
<h3>WINGs Is Not GNUstep</h3>
<p>While GNUstep is our ideal development framework, it's overkill for a window manager like Window Maker. We had a
need for a quick, lightweight toolkit to handle basic window manager tasks, which is how WINGs was born, and why it has
become an integral part of Window Maker's core.</p>
<p>Unlike the general uses of the GNUstep development environment, the WINGs toolkit was designed as a specific
solution for Window Maker. It is not implemented in an object-oriented language, but was designed with OO schemas in
mind. It is encapsulated in objects that have various methods (functions), which in turn can be accessed like real
objects (i.e it's unknown what they contain, and they only have the interface functions to alter their data). As much
as C will allow, that is. What really matters is that it's functional and small enough for our purposes.</p>
<p>Surprisingly, there have been several developers who think WINGs is mature and functional enough to write full
fledged applications with it. For developers who are interested in creating real applications, we would encourage them
to look at GNUstep instead. GNUstep is written in Objective-C, and anyone with a solid C++ background shouldn't need
more than an hour to begin programming in Objective-C. For more information on this, please visit the <a href=
"http://www.gnustep.org/developers/documentation.html">GNUstep Developer Documentation</a> section.</p>
<p>So, what does WINGs do for us, specifically? It contains many necessary widgets, such as the buttons, file browser,
color chooser, and text editor dialog that are all used for creating the UI. It is currently missing a few important
items, such as DnD, treeview, and application menus, but those will be integrated in future releases.</p>
<p>One of the more important aspects of WINGs is that it now provides proplist functionality. proplist, short for
<a href="http://en.wikipedia.org/wiki/Property_list">property list</a>, is what Window Maker uses to generate and
maintain structured configuration files. This data is stored as plain ASCII text under a user's ~/GNUstep directory.
These files are what make up the menus, the current state and appearance of the desktop, the Dock, the Clip, and the
values set in WPrefs.</p>
<p>As an example, here is a short snippet from the proplist version of the default menu:</p>
<pre>
<code>(
Applications,
(
Info,
("Info Panel", INFO_PANEL),
(Legal, LEGAL_PANEL),
("System Console", EXEC, xconsole),
("System Load", SHEXEC, "xosview || xload"),
("Process List", EXEC, "xterm -e top"),
("Manual Browser", EXEC, xman)
),
(Run..., EXEC, "%a(Run,Type command to run:)"),
...
)
</code>
</pre>
<h3>External sources of information</h3>
<p>As this section evolves, we will be providing more documentation on the internals of WINGs. For the time being,
developers interested in WINGs should see Alexey Voinov's <a href=
"http://voins.program.ru/windowmaker/wingsman.html">WINGsman documentation project</a>. Starters may find <a href=
"/WINGs_tutorial/WINGtoc.html">this tutorial</a>, which includes a library
listing based on Voinov's work, useful. We'll try to cover some examples and/or more tutorials on how to program small
applications in WINGs in the near future. For anyone already using WINGs for a project, please <a href=
"{{ site.baseurl }}/lists">contact us</a>, as we'd like to get an idea of its popularity and practical uses, as well as some
additional material to place here.</p><br />
<br />
<br />

78
docs/wings.rst Normal file
View File

@@ -0,0 +1,78 @@
---
layout: default
title: WINGs
---
WINGs Is Not GNUstep
====================
While GNUstep is our ideal development framework, it's overkill for a window
manager like Window Maker. We had a need for a quick, lightweight toolkit to
handle basic window manager tasks, which is how WINGs was born, and why it has
become an integral part of Window Maker's core.
Unlike the general uses of the GNUstep development environment, the WINGs
toolkit was designed as a specific solution for Window Maker. It is not
implemented in an object-oriented language, but was designed with OO schemas in
mind. It is encapsulated in objects that have various methods (functions),
which in turn can be accessed like real objects (i.e it's unknown what they
contain, and they only have the interface functions to alter their data). As
much as C will allow, that is. What really matters is that it's functional and
small enough for our purposes.
Surprisingly, there have been several developers who think WINGs is mature and
functional enough to write full fledged applications with it. For developers
who are interested in creating real applications, we would encourage them to
look at GNUstep instead. GNUstep is written in Objective-C, and anyone with a
solid C++ background shouldn't need more than an hour to begin programming in
Objective-C. For more information on this, please visit the `GNUstep Developer
Documentation <http://www.gnustep.org/developers/documentation.html>`_ section.
So, what does WINGs do for us, specifically? It contains many necessary
widgets, such as the buttons, file browser, color chooser, and text editor
dialog that are all used for creating the UI. It is currently missing a few
important items, such as DnD, treeview, and application menus, but those will
be integrated in future releases.
One of the more important aspects of WINGs is that it now provides proplist
functionality. proplist, short for `property list
<http://en.wikipedia.org/wiki/Property_list>`_, is what Window Maker uses to
generate and maintain structured configuration files. This data is stored as
plain ASCII text under a user's ~/GNUstep directory. These files are what make
up the menus, the current state and appearance of the desktop, the Dock, the
Clip, and the values set in WPrefs.
As an example, here is a short snippet from the proplist version of the default
menu:
.. code::
:class: highlight
(
Applications,
(
Info,
("Info Panel", INFO_PANEL),
(Legal, LEGAL_PANEL),
("System Console", EXEC, xconsole),
("System Load", SHEXEC, "xosview || xload"),
("Process List", EXEC, "xterm -e top"),
("Manual Browser", EXEC, xman)
),
(Run..., EXEC, "%a(Run,Type command to run:)"),
...
)
External sources of information
===============================
As this section evolves, we will be providing more documentation on the
internals of WINGs. For the time being, developers interested in WINGs should
see Alexey Voinov's `WINGsman documentation project
<http://voins.program.ru/windowmaker/wingsman.html>`_. Starters may find `this
tutorial </WINGs_tutorial/WINGtoc.html>`_, which includes a library listing
based on Voinov's work, useful. We'll try to cover some examples and/or more
tutorials on how to program small applications in WINGs in the near future. For
anyone already using WINGs for a project, please `contact us <{{ site.baseurl
}}/lists>`_, as we'd like to get an idea of its popularity and practical uses,
as well as some additional material to place here.

View File

@@ -1,486 +0,0 @@
---
layout: default
title: Internationalisation
---
<a name="Top"></a>
<a name="Window-Maker-Internationalisation"></a>
<h1 class="top">Window Maker Internationalisation</h1>
<p>A guide to enable support for language translations
in <small>WINDOW MAKER</small> and to the contributors
who want to help translating.
</p>
<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
<ul class="no-bullet">
<li><a name="toc-Enabling-Languages-support-1" href="#Enabling-Languages-support">1 Enabling Languages support</a>
<ul class="no-bullet">
<li><a name="toc-Getting-the-list-of-supported-languages" href="#Getting-the-list-of-supported-languages">1.1 Getting the list of supported languages</a></li>
<li><a name="toc-Translations-for-Menus" href="#Translations-for-Menus">1.2 Translations for Menus</a></li>
<li><a name="toc-Setting-LINGUAS-at-system-level" href="#Setting-LINGUAS-at-system-level">1.3 Setting <code>LINGUAS</code> at system level</a></li>
</ul></li>
<li><a name="toc-Choosing-the-Language-1" href="#Choosing-the-Language">2 Choosing the Language</a></li>
<li><a name="toc-Troubleshooting-1" href="#Troubleshooting">3 Troubleshooting</a></li>
<li><a name="toc-Contribute-to-Translations-1" href="#Contribute-to-Translations">4 Contribute to Translations</a>
<ul class="no-bullet">
<li><a name="toc-Install-the-latest-sources" href="#Install-the-latest-sources">4.1 Install the latest sources</a></li>
<li><a name="toc-Updating-the-Translations" href="#Updating-the-Translations">4.2 Updating the Translations</a></li>
<li><a name="toc-Translate-the-Man-Pages" href="#Translate-the-Man-Pages">4.3 Translate the Man Pages</a></li>
<li><a name="toc-Checking-the-Result" href="#Checking-the-Result">4.4 Checking the Result</a></li>
<li><a name="toc-Submitting-your-Contribution" href="#Submitting-your-Contribution">4.5 Submitting your Contribution</a></li>
</ul></li>
</ul>
</div>
<br>
<p>This manual is for Window Maker, version git#next.
</p>
<hr>
<a name="Enabling-Languages-support"></a>
<a name="Enabling-Languages-support-1"></a>
<h2 class="chapter">1 Enabling Languages support</h2>
<p><small>WINDOW MAKER</small> has the possibility to be translated in many languages, but by default none of
them will be installed, and the support for translation will not be compiled.
</p>
<p>To enable the translation capabilities, you have to specify which language(s) you want to be
installed: this is done with the variable <code>LINGUAS</code> when running the <code>configure</code> script.
This variable should contain the space-separated list of languages you want to install.
</p>
<p>You could for instance enable both French (<code>fr</code>) and Dutch (<code>nl</code>) with this:
</p>
<div class="example">
<pre class="example">./configure LINGUAS=&quot;fr nl&quot;
</pre></div>
<p>You can of course add any other option that you want to the <code>configure</code> command.
From the moment you specify the variable, the <code>configure</code> script will check that you have
the appropriate dependencies for this (basically the <code>gettext</code> function and the <code>libintl</code>
library); when you run <code>make</code> to compile the project, it will also compile the translation
(<code>mo</code> files) for the language(s) you asked (if available, of course), and during
<code>make install</code> it will install them in the usual directory.
</p>
<p>The installation directory can be changed with the standard option <samp>--localedir</samp> to the
<code>configure</code> script, the default path being
<samp><em>&lt;prefix&gt;</em>/share/locale/<em>&lt;lang&gt;</em>/LC_MESSAGES</samp>).
</p>
<a name="Getting-the-list-of-supported-languages"></a>
<h3 class="section">1.1 Getting the list of supported languages</h3>
<p>The naming convention for the languages follows the <cite>ISO 639-1</cite> standard,
for which you can find a summary list in the
<a href="https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html">GNU gettext manual</a>.
</p>
<p>But as <small>WINDOW MAKER</small> does not support all of them, the <code>configure</code> script will print a
warning for each language you specify that it does not know, and sum up at the end the list of
enabled languages that will be installed.
</p>
<p>There is a non-standard possibility to set <code>LINGUAS</code> to <code>list</code>, in which case the
<code>configure</code> script will provide you the list of languages it supports, and stop:
</p>
<div class="example">
<pre class="example">./configure LINGUAS=&quot;list&quot;
</pre></div>
<p>There is also another non-standard possibility to enable all the languages that <small>WINDOW MAKER</small>
supports by setting <code>LINGUAS</code> to <code>*</code>.
This is an internal trick implemented so the development team can have the command
<code>make distcheck</code> include some checks on translations:
</p>
<div class="example">
<pre class="example">./configure LINGUAS='*'
</pre></div>
<a name="Translations-for-Menus"></a>
<h3 class="section">1.2 Translations for Menus</h3>
<p>In order to propose an <em>Application Menu</em> (also called <em>Root Menu</em>) that is also
translated in the language of the interface, <small>WINDOW MAKER</small> implements two complementary
mechanisms:
</p>
<p>The first, always enabled when i18n support is enabled, is to look for the menu file containing the
name of the locale.
For example, if the file is called <samp>menu</samp> and the language is set as <code>LANG=fr_FR.utf-8</code>,
then <small>WINDOW MAKER</small> will search for, and use the first match found:
</p>
<ul>
<li> <code>menu.fr_FR.utf-8</code>
</li><li> <code>menu.fr_FR</code>
</li><li> <code>menu.fr</code>
</li><li> <code>menu</code>
</li></ul>
<p>The second possibility, which is not enabled by default, is to be able to use a custom <samp>po</samp>
file which contains the translations for the text of the menu.
This feature is enabled at compile time, using the option <samp>--with-menu-textdomain</samp> to the
<code>configure</code> script. For example, if you specify:
</p>
<div class="example">
<pre class="example">./configure --with-menu-textdomain=WMMenu
</pre></div>
<p>then the translations for the menu will be searched in the file <samp>WMMenu.mo</samp> located
at the standard location, the default path being
<samp><em>&lt;prefix&gt;</em>/share/locale/<em>&lt;lang&gt;</em>/LC_MESSAGES/<em>WMMenu</em>.mo</samp>.
</p>
<p>If you do not enable the feature (the default behaviour, or with an explicit
<samp>--without-menu-textdomain</samp>), then <small>WINDOW MAKER</small> will <b>not</b> try to translate the
strings, even using its own domain file (<samp>WindowMaker.mo</samp>).
</p>
<a name="Setting-LINGUAS-at-system-level"></a>
<h3 class="section">1.3 Setting <code>LINGUAS</code> at system level</h3>
<p>As the variable <code>LINGUAS</code> is quite standard, you also have the possibility to set its value in
the <samp>config.site</samp> file for <small>AUTOCONF</small>.
This file can be placed in one of these paths:
</p>
<ul>
<li> <samp><em>&lt;prefix&gt;</em>/share/config.site</samp>
</li><li> <samp><em>&lt;prefix&gt;</em>/etc/config.site</samp>
</li></ul>
<p>This way, the same language list will be used for all the programs that use <small>AUTOCONF</small> that you
would compile.
Please note that if you also specify a value on the command line, it will have precedence over the
value in that file.
</p>
<hr>
<a name="Choosing-the-Language"></a>
<a name="Choosing-the-Language-1"></a>
<h2 class="chapter">2 Choosing the Language</h2>
<p>If you have compiled and installed <small>WINDOW MAKER</small> with support for your language,
the effective translation is done is the very same way as any other application on an <small>UNIX</small>
system, you just have to set the shell variable <code>LANG</code> to your language before <code>wmaker</code>
is started.
In <code>sh</code> type of shell (<small>SH</small>, <small>KSH</small>, <small>BASH</small>, ...), this is done for example with
(<code>fr</code> is for French):
</p>
<div class="example">
<pre class="example">export LANG=fr
</pre></div>
<p>There is also a command line option <samp>--locale</samp> for <small>WINDOW MAKER</small> which may be used to set
the language:
</p>
<div class="example">
<pre class="example">wmaker --locale fr
</pre></div>
<p>When using this option, <small>WINDOW MAKER</small> will use the locale you specified, redefining the
<code>LANG</code> environment variable to this value so all program started from <small>WINDOW MAKER</small> will
inherit its value.
</p>
<p>If your system is using <small>SYSTEMD</small>, you can also configure the locale at system level using the
command:
</p>
<div class="example">
<pre class="example">localectl set-locale LANG=fr
</pre></div>
<p>You can check if the current value is properly supported with the command:
</p>
<div class="example">
<pre class="example">locale
</pre></div>
<p>If this does not work, you may need first to activate the support for your locale in the system;
you can get the list of currently enabled locales with the command:
</p>
<div class="example">
<pre class="example">locale -a
</pre></div>
<p>You should be able to enable a new language support by editing the file <samp>/etc/locale.gen</samp> to
uncomment the locale(s) you need (by removing the <code>#</code> character and space(s) in front of it,
and by running the command <code>locale-gen</code> as root.
</p>
<p>For further information, you may wish to read dedicated documentation, for example from
<a href="http://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html">the Linux Documentation Project</a>
or through pages like
<a href="http://www.shellhacks.com/en/HowTo-Change-Locale-Language-and-Character-Set-in-Linux">Shell Hacks&rsquo; note on Changing Locale</a>.
</p>
<hr>
<a name="Troubleshooting"></a>
<a name="Troubleshooting-1"></a>
<h2 class="chapter">3 Troubleshooting</h2>
<p>If I18N support does not work for you, check these:
</p>
<ul class="no-bullet">
<li>- the <code>LANG</code> environment variable is set to your locale, and
the locale is supported by your OS&rsquo;s locale or X&rsquo;s locale
emulation. you can display all supported locales by
executing &quot;<code>locale -a</code>&quot; command if it is available; you
can check if your locale is supported by X&rsquo;s locale emulation,
see <samp>/usr/share/X11/locale/locale.alias</samp>
</li><li>- check if you are using an appropriate fonts for the locale you
chose. If you&rsquo;re using a font set that has a different
encoding than the one used by <small>XLIB</small> or <small>LIBC</small>, bad things can
happen. Try specifically putting the encoding in the <code>LANG</code>
variable, like <code>ru_RU.KOI8-R</code>. Again, see
<samp>/usr/share/X11/locale/locale.alias</samp>
</li><li>- the fonts you&rsquo;re using support your locale. if your font
setting on <samp>$HOME/GNUstep/Defaults/WindowMaker</samp> is like...
<div class="example">
<pre class="example"> WindowTitleFont = &quot;Trebuchet MS:bold:pixelsize=12&quot;;
MenuTitleFont = &quot;Trebuchet MS:bold:pixelsize=12&quot;;
</pre></div>
<p>then you can&rsquo;t display Asian languages (<code>ja</code>, <code>ko</code>, <code>ch</code>, ...) characters using
<code>Trebuchet MS</code>. A font that is guaranteed to work for any language is
<code>sans</code> (or <code>sans-serif</code>). <code>sans</code> is not a font itself, but an alias which
points to multiple fonts and will load the first in that list that
has the ability to show glyphs in your language. If you don&rsquo;t know
a font that is suited for your language you can always set all your
fonts to something like:
</p>
<div class="example">
<pre class="example"> &quot;sans:pixelsize=12&quot;
</pre></div>
<p>However, please note that if your font is something like:
</p>
<div class="example">
<pre class="example"> &quot;Trebuchet MS,sans serif:pixelsize=12&quot;
</pre></div>
<p>this will not be able to display Asian languages if any of the
previous fonts before sans are installed. This is because unlike
the proper font pickup that <code>sans</code> guarantees for your language,
this construct only allows a font fallback mechanism, which tries
all the fonts in the list in order, until it finds one that is
available, even if it doesn&rsquo;t support your language.
</p>
<p>Also you need to change font settings in style files in
the <samp>$HOME/Library/WindowMaker/Style</samp> directory.
</p>
</li><li>- the <code>LC_CTYPE</code> environment variable is unset or it has the correct
value. If you don&rsquo;t know what is the correct value, unset it.
</li></ul>
<hr>
<a name="Contribute-to-Translations"></a>
<a name="Contribute-to-Translations-1"></a>
<h2 class="chapter">4 Contribute to Translations</h2>
<p>You may have noticed that many translations are not up to date, because the code has evolved but the
persons who initially contributed may not have had the time to continue, so any help is welcome.
</p>
<p>Since <small>WINDOW MAKER</small> 0.95.7 there are some targets to <code>make</code> that can help you in that
task.
</p>
<a name="Install-the-latest-sources"></a>
<h3 class="section">4.1 Install the latest sources</h3>
<p>If you want to contribute, the first step is get the development branch of the code;
this is done using <code>git</code>.
If you do not feel confident at all with using <code>git</code>, you may also try to ask for a
<em>snapshot</em> on the developer&rsquo;s mailing list <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>.
With <code>git</code> the procedure is:
</p>
<div class="example">
<pre class="example"># Get your working copy of the sources
git clone git://repo.or.cz/wmaker-crm.git
# Go into that newly created directory
cd wmaker-crm
# Switch to the branch where everything happens
git checkout next
# Generate the configuration script
./autogen.sh
</pre></div>
<p>Now you should have an up-to-date working copy ready to be compiled;
you will not need to go the full way but you should run the <code>configure</code> script, so it will
create the <samp>Makefile</samp>s, and you may want to compile the code once so it will not do it again
automatically later while you are doing something else:
</p>
<div class="example">
<pre class="example"># Setup the build, enabling at least the language you want to work on
./configure LINGUAS=&quot;&lt;list of iso 639 country code&gt;&quot;
# Compile the code once
make
</pre></div>
<a name="Updating-the-Translations"></a>
<h3 class="section">4.2 Updating the Translations</h3>
<p>The typical process for translating one program is:
</p>
<ul>
<li> generate a POT file (PO Template):
this is done with <code>xgettext</code> which searches for all the strings from the sources that can be
translated;
</li><li> update the PO file for your language:
this is done with <code>msgmerge</code> which compares the PO file and aligns it to the latest
template;
</li><li> edit the new PO file:
this is done by you with your favourite editor, to add the missing <code>msgstr</code>, review the
possible <em>fuzzy matches</em>, ...
</li><li> check the PO file:
unfortunately there is no definitive method for this;
</li><li> submit your contribution to the project:
this is done with <code>git</code>.
</li></ul>
<p>In <small>WINDOW MAKER</small>, you have actually 4 <code>po</code> files to take care of:
</p>
<ul class="no-bullet">
<li>- <samp>po/<em>&lt;lang&gt;</em>.po</samp>: for <small>WINDOW MAKER</small> itself
</li><li>- <samp>WPrefs.app/po/<em>&lt;lang&gt;</em>.po</samp>: for the Preference Editor program
</li><li>- <samp>WINGs/po/<em>&lt;lang&gt;</em>.po</samp>: for the graphic toolkit library
</li><li>- <samp>util/po/<em>&lt;lang&gt;</em>.po</samp>: for the command-line tools of <small>WINDOW MAKER</small>
</li></ul>
<p>As stated previously, there is a <code>make</code> target that can help you to automatically generate
the POT and update the PO for these 4 cases:
</p>
<div class="example">
<pre class="example">make update-lang PO=&lt;lang&gt;
</pre></div>
<p>Once run, it will have updated as needed the 4 <code>po</code> files against the latest source code.
You may wish to use the command <code>git gui</code> to view the changes;
you can now edit the files to complete the translation, correct them, remove deprecated stuff, ...
Please note that the encoding should be set to <em>UTF-8</em> as this is now the standard.
</p>
<p>If you think an error message is too obscure, just ask on the developer mailing list
<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>: in addition to clarifications there&rsquo;s even a chance for the original message
to be improved!
</p>
<p>You may find some information on working with <code>po</code> file in the
<a href="https://www.gnu.org/software/gettext/manual/html_node/Editing.html">GNU gettext documentation</a>.
</p>
<a name="Translate-the-Man-Pages"></a>
<h3 class="section">4.3 Translate the Man Pages</h3>
<p>You may want to extend the translation to the documentation that is provided to users in the form
of Unix <i>man pages</i>.
The sources of the man pages are located in the <samp>doc/</samp> directory;
the translation should be placed in the directory <samp>doc/<i>lang</i>/</samp> with the same file name.
</p>
<p>The directory will also need a file <samp>Makefile.am</samp> which provides the list of man pages to be
included in the distribution package and to be installed.
You can probably get inspiration from an existing one from another language;
if you do not feel confident about it do not hesitate to ask on the project&rsquo;s mailing list
(<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>), either for help or to ask someone to make it for you.
</p>
<p>Please note that although most man pages sources are directly in man page format
(<em>nroff</em>, the file extension being a number), a few of them are processed by a script
(those with the <samp>.in</samp> extension, like <samp>wmaker.in</samp>).
This is done because in some case we want the man page to reflect the actual compilation options.
</p>
<p>You may not want to bother with this hassle, in which case you can simply name your translation
file with the <samp>.1</samp> and remove the special <code>@keyword@</code> marks.
If you are sure you want to keep that processing but do not feel confident about hacking the
<samp>Makefile.am</samp> do not hesitate to ask on the project&rsquo;s mailing list (<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>).
</p>
<a name="Checking-the-Result"></a>
<h3 class="section">4.4 Checking the Result</h3>
<p>In the <small>WINDOW MAKER</small> build tree you also have another target that can help you, it is
<code>make check</code>.
</p>
<p>At current time, it does not check much, but if during the <code>make update-lang</code> new <code>po</code>
file have been created you may get some errors, because you have to add these new files to the
variable <var>EXTRA_DIST</var> in the corresponding <samp>Makefile</samp>.
</p>
<p>If you do not feel confident about doing it, do not worry, just tell about it when you submit your
work, and some developer on the mailing list will just be happy to do it for you when integrating
your valuable contribution (we always like when someone helps making <small>WINDOW MAKER</small> better).
</p>
<a name="Submitting-your-Contribution"></a>
<h3 class="section">4.5 Submitting your Contribution</h3>
<p><em>Preliminary Remark</em>: if the update process made changes in a <code>po</code> file but you did not
change any <code>msgstr</code> content, it is probably a good idea to not submit the changes to that
<code>po</code> file because it would just add noise.
</p>
<p>When you feel ready to send your changes, the first step is to prepare them.
This is done with <code>git</code>: if you have not run the <code>git gui</code> previously then it is a
good time to do it now.
This window offers you the possibility to show your changes and to decide what you want to send.
</p>
<p>The window is divided in 4 panes:
</p><ul>
<li> top-right show the current changes you have selected, for review
(and also for cherry-picking stuff if you want to select precisely)
</li><li> top-left (&quot;Unstaged Changes&quot;) the list of files with changes to be send,
you can click on the name of the file to see the changes,
you can click on the icon of the file if you want to send all the changes in this file;
an icon in blue shows a file that have been changed and an icon in black shows a file that is new
</li><li> bottom-left (&quot;Staged Changes&quot;) the list of files with changes that you have chosen to send so far,
you can click on the file name to view these changes,
you can click on the icon if you want to remove the changes from this file from the list to send
</li><li> bottom-right (&quot;Commit Message&quot;) the message you want to attach to your changes when you submit them
to the development team
</li></ul>
<p>The idea here is to pick your changes to the <code>po</code> files;
for the <em>commit message</em> you may wish to stuck to a simple, single line:
</p>
<blockquote>
<p>&quot;Updated translations for <em>&lt;lang&gt;</em>&quot;
</p></blockquote>
<p>The penultimate step is to click on the button <tt class="key">Sign Off</tt> (it will add a line in the commit
message), and then click on the button <tt class="key">Commit</tt>.
From this time, the commit message will clear itself and the &quot;Staged Changes&quot; also, showing that
your action was done.
</p>
<p>You may now quit the <code>git gui</code>, the final step begins by running this command:
</p>
<div class="example">
<pre class="example">git format-patch HEAD^
</pre></div>
<p>This will generate a file named like <samp>0001-<em>updated-translations-for-XX</em>.patch</samp>
which contains your changes, ready for sending.
The goal will now be to email this file to <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>.
If you feel confident in having <code>git</code> send it for you, you may want to read the file
<samp>The-perfect-Window-Maker-patch.txt</samp> to see how to configure <code>git</code> for mailing, so you
can run:
</p>
<div class="example">
<pre class="example">git send-email 0001-<em>updated-translations-for-XX</em>.patch
</pre></div>
<hr>

466
docs/wmaker_i18n.rst Normal file
View File

@@ -0,0 +1,466 @@
---
layout: default
title: Internationalisation
---
Window Maker Internationalisation
=================================
A guide to enable support for language translations in WINDOW MAKER and to the
contributors who want to help translating.
.. sectnum::
.. contents:: Table of Contents
:backlinks: none
This manual is for Window Maker, version git#next.
----
Enabling Languages support
--------------------------
WINDOW MAKER has the possibility to be translated in many languages, but by
default none of them will be installed, and the support for translation will
not be compiled.
To enable the translation capabilities, you have to specify which language(s)
you want to be installed: this is done with the variable ``LINGUAS`` when
running the ``configure`` script. This variable should contain the
space-separated list of languages you want to install.
You could for instance enable both French (``fr``) and Dutch (``nl``) with
this:
.. code:: console
:class: highlight
$ ./configure LINGUAS="fr nl"
You can of course add any other option that you want to the ``configure``
command. From the moment you specify the variable, the ``configure`` script
will check that you have the appropriate dependencies for this (basically the
``gettext`` function and the ``libintl`` library); when you run ``make`` to
compile the project, it will also compile the translation (``mo`` files) for
the language(s) you asked (if available, of course), and during ``make
install`` it will install them in the usual directory.
The installation directory can be changed with the standard option
``--localedir`` to the ``configure`` script, the default path being
``PREFIX/share/locale/<lang>/LC_MESSAGES``).
Getting the list of supported languages
.......................................
The naming convention for the languages follows the ``ISO 639-1`` standard, for
which you can find a summary list in the `GNU gettext manual
<https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html>`_.
But as WINDOW MAKER does not support all of them, the ``configure`` script will
print a warning for each language you specify that it does not know, and sum up
at the end the list of enabled languages that will be installed.
There is a non-standard possibility to set ``LINGUAS`` to ``list``, in which
case the ``configure`` script will provide you the list of languages it
supports, and stop:
.. code:: console
:class: highlight
./configure LINGUAS="list"
There is also another non-standard possibility to enable all the languages that
WINDOW MAKER supports by setting ``LINGUAS`` to ``*``. This is an internal
trick implemented so the development team can have the command ``make
distcheck`` include some checks on translations:
.. code:: console
:class: highlight
./configure LINGUAS='*'
Translations for Menus
......................
In order to propose an *Application Menu* (also called *Root Menu*) that is
also translated in the language of the interface, WINDOW MAKER implements two
complementary mechanisms:
The first, always enabled when i18n support is enabled, is to look for the menu
file containing the name of the locale. For example, if the file is called
``menu`` and the language is set as ``LANG=fr_FR.utf-8``, then WINDOW MAKER
will search for, and use the first match found:
- ``menu.fr_FR.utf-8``
- ``menu.fr_FR``
- ``menu.fr``
- ``menu``
The second possibility, which is not enabled by default, is to be able to use a
custom ``po`` file which contains the translations for the text of the menu.
This feature is enabled at compile time, using the option
``--with-menu-textdomain`` to the ``configure`` script. For example, if you
specify:
.. code:: console
:class: highlight
./configure --with-menu-textdomain=WMMenu
then the translations for the menu will be searched in the file ``WMMenu.mo``
located at the standard location, the default path being
`PREFIX/share/locale/[lang]/LC_MESSAGES/WMMenu.mo`.
If you do not enable the feature (the default behaviour, or with an explicit
``--without-menu-textdomain``), then WINDOW MAKER will **not** try to translate
the strings, even using its own domain file (``WindowMaker.mo``).
Setting ``LINGUAS`` at system level
...................................
As the variable ``LINGUAS`` is quite standard, you also have the possibility to
set its value in the ``config.site`` file for AUTOCONF. This file can be placed
in one of these paths:
- ``PREFIX/share/config.site``
- ``PREFIX/etc/config.site``
This way, the same language list will be used for all the programs that use
AUTOCONF that you would compile. Please note that if you also specify a value
on the command line, it will have precedence over the value in that file.
----
Choosing the Language
---------------------
If you have compiled and installed WINDOW MAKER with support for your language,
the effective translation is done is the very same way as any other application
on an UNIX system, you just have to set the shell variable ``LANG`` to your
language before ``wmaker`` is started. In ``sh`` type of shell (SH, KSH, BASH,
...), this is done for example with (``fr`` is for French):
.. code:: console
:class: highlight
export LANG=fr
There is also a command line option ``--locale`` for WINDOW MAKER which may be
used to set the language:
.. code:: console
:class: highlight
wmaker --locale fr
When using this option, WINDOW MAKER will use the locale you specified,
redefining the ``LANG`` environment variable to this value so all program
started from WINDOW MAKER will inherit its value.
If your system is using SYSTEMD, you can also configure the locale at system
level using the command:
.. code:: console
:class: highlight
localectl set-locale LANG=fr
You can check if the current value is properly supported with the command:
.. code:: console
:class: highlight
locale
If this does not work, you may need first to activate the support for your
locale in the system; you can get the list of currently enabled locales with
the command:
.. code:: console
:class: highlight
locale -a
You should be able to enable a new language support by editing the file
``/etc/locale.gen`` to uncomment the locale(s) you need (by removing the ``#``
character and space(s) in front of it, and by running the command
``locale-gen`` as root.
For further information, you may wish to read dedicated documentation, for
example from `the Linux Documentation Project
<http://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html>`_ or through pages like
`Shell Hacks' note on Changing Locale
<http://www.shellhacks.com/en/HowTo-Change-Locale-Language-and-Character-Set-in-Linux>`_.
----
Troubleshooting
---------------
If I18N support does not work for you, check these:
- the ``LANG`` environment variable is set to your locale, and
the locale is supported by your OS's locale or X's locale
emulation. you can display all supported locales by
executing "``locale -a``" command if it is available; you
can check if your locale is supported by X's locale emulation,
see ``/usr/share/X11/locale/locale.alias``
- check if you are using an appropriate fonts for the locale you chose. If
you're using a font set that has a different encoding than the one used by
XLIB or LIBC, bad things can happen. Try specifically putting the encoding in
the ``LANG`` variable, like ``ru_RU.KOI8-R``. Again, see
``/usr/share/X11/locale/locale.alias``
- the fonts you're using support your locale. if your font setting on
``$HOME/GNUstep/Defaults/WindowMaker`` is like...
.. code:: ini
:class: highlight
WindowTitleFont = "Trebuchet MS:bold:pixelsize=12";
MenuTitleFont = "Trebuchet MS:bold:pixelsize=12";
then you can't display Asian languages (``ja``, ``ko``, ``ch``, ...)
characters using ``Trebuchet MS``. A font that is guaranteed to work for any
language is ``sans`` (or ``sans-serif``). ``sans`` is not a font itself, but
an alias which points to multiple fonts and will load the first in that list
that has the ability to show glyphs in your language. If you don't know a
font that is suited for your language you can always set all your fonts to
something like:
.. code:: ini
:class: highlight
"sans:pixelsize=12"
However, please note that if your font is something like:
.. code:: ini
:class: highlight
"Trebuchet MS,sans serif:pixelsize=12"
this will not be able to display Asian languages if any of the previous fonts
before sans are installed. This is because unlike the proper font pickup that
``sans`` guarantees for your language, this construct only allows a font
fallback mechanism, which tries all the fonts in the list in order, until it
finds one that is available, even if it doesn't support your language.
Also you need to change font settings in style files in the
``$HOME/Library/WindowMaker/Style`` directory.
- the ``LC_CTYPE`` environment variable is unset or it has the correct value.
If you don't know what is the correct value, unset it.
----
Contribute to Translations
--------------------------
You may have noticed that many translations are not up to date, because the
code has evolved but the persons who initially contributed may not have had the
time to continue, so any help is welcome.
Since WINDOW MAKER 0.95.7 there are some targets to ``make`` that can help you
in that task.
Install the latest sources
..........................
If you want to contribute, the first step is get the development branch of the code;
this is done using ``git``. If you do not feel confident at all with using
``git``, you may also try to ask for a *snapshot* on the developer's mailing
list `wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`_. With ``git`` the procedure is:
.. code:: bash
:class: highlight
# Get your working copy of the sources
git clone git://repo.or.cz/wmaker-crm.git
# Go into that newly created directory
cd wmaker-crm
# Switch to the branch where everything happens
git checkout next
# Generate the configuration script
./autogen.sh
Now you should have an up-to-date working copy ready to be compiled; you will
not need to go the full way but you should run the ``configure`` script, so it
will create the ``Makefile`s``, and you may want to compile the code once so it
will not do it again automatically later while you are doing something else:
.. code:: console
:class: highlight
# Setup the build, enabling at least the language you want to work on
./configure LINGUAS="<list of iso 639 country code>"
# Compile the code once
make
Updating the Translations
.........................
The typical process for translating one program is:
- generate a POT file (PO Template): this is done with ``xgettext`` which
searches for all the strings from the sources that can be translated;
- update the PO file for your language: this is done with ``msgmerge`` which
compares the PO file and aligns it to the latest template;
- edit the new PO file: this is done by you with your favourite editor, to add
the missing ``msgstr``, review the possible *fuzzy matches*, …
- check the PO file: unfortunately there is no definitive method for this;
- submit your contribution to the project: this is done with ``git``.
In WINDOW MAKER, you have actually 4 ``po`` files to take care of:
- ``po/<LANG>.po``: for WINDOW MAKER itself
- ``WPrefs.app/po/<LANG>.po``: for the Preference Editor program
- ``WINGs/po/<LANG>.po``: for the graphic toolkit library
- ``util/po/<LANG>.po``: for the command-line tools of WINDOW MAKER
As stated previously, there is a ``make`` target that can help you to
automatically generate the POT and update the PO for these 4 cases:
.. code:: console
:class: highlight
make update-lang PO=<LANG>
Once run, it will have updated as needed the 4 ``po`` files against the latest
source code. You may wish to use the command ``git gui`` to view the changes;
you can now edit the files to complete the translation, correct them, remove
deprecated stuff, … Please note that the encoding should be set to *UTF-8* as
this is now the standard.
.. TODO: change mailing list address
If you think an error message is too obscure, just ask on the developer mailing
list `wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`_: in addition to clarifications
there's even a chance for the original message to be improved!
You may find some information on working with ``po`` file in the `GNU gettext
documentation
<https://www.gnu.org/software/gettext/manual/html_node/Editing.html>`_.
Translate the Man Pages
.......................
You may want to extend the translation to the documentation that is provided to
users in the form of Unix *man pages*. The sources of the man pages are located
in the ``doc/`` directory; the translation should be placed in the directory
``doc/LANG/`` with the same file name.
.. TODO: change mailing list address
The directory will also need a file ``Makefile.am`` which provides the list of
man pages to be included in the distribution package and to be installed. You
can probably get inspiration from an existing one from another language; if you
do not feel confident about it do not hesitate to ask on the project's mailing
list (`wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`_), either for help or to ask someone
to make it for you.
Please note that although most man pages sources are directly in man page
format (*nroff*, the file extension being a number), a few of them are
processed by a script (those with the ``.in`` extension, like ``wmaker.in``).
This is done because in some case we want the man page to reflect the actual
compilation options.
You may not want to bother with this hassle, in which case you can simply name
your translation file with the ``.1`` and remove the special ``@keyword@``
marks. If you are sure you want to keep that processing but do not feel
confident about hacking the ``Makefile.am`` do not hesitate to ask on the
project's mailing list (`wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`_).
Checking the Result
...................
In the WINDOW MAKER build tree you also have another target that can help you,
it is ``make check``.
At current time, it does not check much, but if during the ``make update-lang``
new ``po`` file have been created you may get some errors, because you have to
add these new files to the variable ``EXTRA_DIST`` in the corresponding
``Makefile``.
If you do not feel confident about doing it, do not worry, just tell about it
when you submit your work, and some developer on the mailing list will just be
happy to do it for you when integrating your valuable contribution (we always
like when someone helps making WINDOW MAKER better).
Submitting your Contribution
............................
*Preliminary Remark*: if the update process made changes in a ``po`` file but
you did not change any ``msgstr`` content, it is probably a good idea to not
submit the changes to that ``po`` file because it would just add noise.
When you feel ready to send your changes, the first step is to prepare them.
This is done with ``git``: if you have not run the ``git gui`` previously then
it is a good time to do it now. This window offers you the possibility to show
your changes and to decide what you want to send.
The window is divided in 4 panes:
- top-right show the current changes you have selected, for review (and also
for cherry-picking stuff if you want to select precisely)
- top-left ("Unstaged Changes") the list of files with changes to be send, you
can click on the name of the file to see the changes, you can click on the
icon of the file if you want to send all the changes in this file; an icon in
blue shows a file that have been changed and an icon in black shows a file
that is new
- bottom-left ("Staged Changes") the list of files with changes that you have
chosen to send so far, you can click on the file name to view these changes,
you can click on the icon if you want to remove the changes from this file
from the list to send
- bottom-right ("Commit Message") the message you want to attach to your
changes when you submit them to the development team
The idea here is to pick your changes to the ``po`` files; for the *commit
message* you may wish to stuck to a simple, single line:
| "Updated translations for <LANG>"
The penultimate step is to click on the button ``Sign Off`` (it will add a line
in the commit message), and then click on the button ``Commit``. From this
time, the commit message will clear itself and the "Staged Changes" also,
showing that your action was done.
You may now quit the ``git gui``, the final step begins by running this
command:
.. code:: console
:class: highlight
git format-patch HEAD^
.. TODO: change mailing list address
This will generate a file named like ``0001-updated-translations-for-XX.patch``
which contains your changes, ready for sending. The goal will now be to email
this file to `wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`_. If you feel confident in having
``git`` send it for you, you may want to read the file
``The-perfect-Window-Maker-patch.txt`` to see how to configure ``git`` for
mailing, so you can run:
.. code:: console
:class: highlight
git send-email 0001-updated-translations-for-XX.patch

View File

@@ -1,801 +0,0 @@
---
layout: default
title: Compilation and Installation
---
<a name="Top"></a>
<a name="Window-Maker-Compilation-and-Installation"></a>
<h1 class="top">Window Maker Compilation and Installation</h1>
<p>A guide to configure, compile and install
<small>WINDOW MAKER</small> from sources.
</p>
<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
<ul class="no-bullet">
<li><a name="toc-Prerequisites-1" href="#Prerequisites">1 Prerequisites</a>
<ul class="no-bullet">
<li><a name="toc-Supported-Platforms" href="#Supported-Platforms">1.1 Supported Platforms</a></li>
<li><a name="toc-Software-Dependencies-1" href="#Software-Dependencies-1">1.2 Software Dependencies</a></li>
<li><a name="toc-Special-Dependencies-1" href="#Special-Dependencies-1">1.3 Special Dependencies</a></li>
<li><a name="toc-Optional-Dependencies-1" href="#Optional-Dependencies-1">1.4 Optional Dependencies</a></li>
</ul></li>
<li><a name="toc-Building-WINDOW-MAKER" href="#Building-Window-Maker">2 Building <small>WINDOW MAKER</small></a>
<ul class="no-bullet">
<li><a name="toc-Getting-the-Sources" href="#Getting-the-Sources">2.1 Getting the Sources</a></li>
<li><a name="toc-Build-and-Install" href="#Build-and-Install">2.2 Build and Install</a></li>
<li><a name="toc-User-specific-configuration" href="#User-specific-configuration">2.3 User specific configuration</a></li>
<li><a name="toc-Locales_002fInternationalisation" href="#Locales_002fInternationalisation">2.4 Locales/Internationalisation</a></li>
<li><a name="toc-Configure-Options-1" href="#Configure-Options-1">2.5 Configure Options</a>
<ul class="no-bullet">
<li><a name="toc-Installation-Directory" href="#Installation-Directory">2.5.1 Installation Directory</a></li>
<li><a name="toc-External-Libraries" href="#External-Libraries">2.5.2 External Libraries</a></li>
<li><a name="toc-X11-and-Extensions" href="#X11-and-Extensions">2.5.3 X11 and Extensions</a></li>
<li><a name="toc-Feature-Selection" href="#Feature-Selection">2.5.4 Feature Selection</a></li>
<li><a name="toc-Developer-Stuff" href="#Developer-Stuff">2.5.5 Developer Stuff</a></li>
</ul></li>
</ul></li>
<li><a name="toc-Miscellaneous-1" href="#Miscellaneous">3 Miscellaneous</a>
<ul class="no-bullet">
<li><a name="toc-Platform-Specific-Notes" href="#Platform-Specific-Notes">3.1 Platform Specific Notes</a></li>
<li><a name="toc-I-don_0027t-have-the-root-password-_003a_0028" href="#I-don_0027t-have-the-root-password-_003a_0028">3.2 I don&rsquo;t have the <em>root</em> password :(</a></li>
<li><a name="toc-Upgrading" href="#Upgrading">3.3 Upgrading</a></li>
</ul></li>
<li><a name="toc-Troubleshooting-1" href="#Troubleshooting">4 Troubleshooting</a>
<ul class="no-bullet">
<li><a name="toc-Error-with-loading-fonts_002c-even-if-they-exist" href="#Error-with-loading-fonts_002c-even-if-they-exist">4.1 Error with loading fonts, even if they exist</a></li>
<li><a name="toc-configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries" href="#configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries">4.2 configure doesn&rsquo;t detect <em>libtiff</em>, or other graphic libraries</a></li>
<li><a name="toc-configure-doesn_0027t-detect-libXpm" href="#configure-doesn_0027t-detect-libXpm">4.3 configure doesn&rsquo;t detect <em>libXpm</em></a></li>
<li><a name="toc-Segmentation-fault-on-startup" href="#Segmentation-fault-on-startup">4.4 Segmentation fault on startup</a></li>
<li><a name="toc-_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022" href="#g_t_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022">4.5 &quot;...: your machine is misconfigured. gethostname() returned (none)&quot;</a></li>
<li><a name="toc-The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029" href="#The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029">4.6 The root menu contains only 2 entries. (&quot;XTerm&quot; and &quot;Exit...&quot;)</a></li>
</ul></li>
</ul>
</div>
<br>
<p>This manual is for Window Maker, version git#next.
</p>
<hr>
<a name="Prerequisites"></a>
<a name="Prerequisites-1"></a>
<h2 class="chapter">1 Prerequisites</h2>
<a name="Supported-Platforms"></a>
<h3 class="section">1.1 Supported Platforms</h3>
<ul class="no-bullet">
<li>- Intel GNU/Linux Systems in general, <tt>ix86</tt> and <tt>x86_64</tt> but other architectures should work
</li><li>- BSD systems
</li><li>- Solaris, at least on release 10 and 11
</li></ul>
<p>Patches to make it work on other platforms are welcome.
</p>
<a name="Software-Dependencies-1"></a>
<h3 class="section">1.2 Software Dependencies</h3>
<a name="Software-Dependencies"></a>
<p>The following software is required to use <small>WINDOW MAKER</small>:
</p><ul class="no-bullet">
<li>- X11R6.x
<p>Window Maker can be compiled in older versions of <em>X</em>, like <em>X11R5</em> (<em>Solaris</em>)
or <em>X11R4</em> (<em>OpenWindows</em>) but it will not work 100% correctly.
In such servers there will not be application icons and you&rsquo;ll have trouble using the dock.
Upgrading the client libraries (<em>Xlib</em>, <em>Xt</em>, etc.) will help if you can&rsquo;t upgrade
the server.
</p></li></ul>
<p>The following is required to build <small>WINDOW MAKER</small>:
</p><ul class="no-bullet">
<li>- Basic obvious stuff
<ul>
<li> <em>gcc</em> (or some other ANSI C compiler, supporting some C99 extensions)
</li><li> <em>glibc</em> development files (usually <samp>glibc-devel</samp> in Linux distributions)
</li><li> <em>X</em> development files (<samp>XFree86-devel</samp> or something similar)
</li></ul>
</li><li>- <em>Xft2</em> and its dependencies
<p>Dependencies include <em>freetype2</em> and <em>fontconfig</em>.
You will also need the development files for them (<samp>xft2-devel</samp>).
Sources are available at: <a href="http://www.freedesktop.org/wiki/Software/Xft/">http://www.freedesktop.org/wiki/Software/Xft/</a>
</p>
</li></ul>
<p><b>Note</b>:
<small>WINDOW MAKER</small> is known to compile with <em>gcc</em> and <em>clang</em>;
the code source is mostly ANSI C (also known as C89 and C90) but is uses very few of the C99
novelties;
it also uses a few attributes introduced in the C11 standard but those are detected automatically,
so most compilers should work.
</p>
<a name="Special-Dependencies-1"></a>
<h3 class="section">1.3 Special Dependencies</h3>
<a name="Special-Dependencies"></a>
<p>If you want to compile using the sources from the git repository instead of the distribution
package, you will also need:
</p><ul>
<li> <em>git</em>
</li><li> <em>autoconf</em> 2.69
</li><li> <em>automake</em> 1.12
</li><li> <em>libtool</em> 1.4.2
</li></ul>
<a name="Optional-Dependencies-1"></a>
<h3 class="section">1.4 Optional Dependencies</h3>
<a name="Optional-Dependencies"></a>
<p>These libraries are not required to make <small>WINDOW MAKER</small> work, but they are supported in case you
want to use them. Version numbers are indicative, but other versions might work too.
</p>
<ul class="no-bullet">
<li>- <em>libXPM</em> 4.7 or newer
<p>Older versions may not work!
</p>
<p>Available from <a href="http://xlibs.freedesktop.org/release/">http://xlibs.freedesktop.org/release/</a>
</p>
<p>There is built-in support for <em>XPM</em> files, but it will not
load images in some uncommon encodings.
</p>
</li><li>- <em>libpng</em> 0.96 or newer and <em>zlib</em>
<p>For <em>PNG</em> image support,
<a href="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a>
</p>
</li><li>- <em>libtiff</em> 3.4 or newer
<p>For <em>TIFF</em> image support,
<a href="http://www.libtiff.org/">http://www.libtiff.org/</a>
</p>
</li><li>- <em>libjpeg</em> 6.0.1 or newer
<p>For <em>JPEG</em> image support,
<a href="http://www.ijg.org/">http://www.ijg.org/</a>
</p>
<p>Note that if you don&rsquo;t have it, <code>configure</code> will issue a big warning in the end,
this is because JPEG images are often used in themes and for background images
so you probably want this format supported.
</p>
</li><li>- <em>libgif</em> 2.2 or <em>libungif</em>
<p>For <em>GIF</em> image support,
<a href="http://giflib.sourceforge.net/">http://giflib.sourceforge.net/</a>
</p>
</li><li>- <em>WebP</em> 0.4.1 or newer
<p>The reference library from <em>Google</em> for their image format,
<a href="https://developers.google.com/speed/webp/download">https://developers.google.com/speed/webp/download</a>
</p>
</li><li>- <em>GNU xgettext</em>
<p>If you want to use translated messages, you will need <em>GNU gettext</em>.
Other versions of <em>gettext</em> are not compatible and will not work.
Get the <em>GNU</em> version from <a href="http://www.gnu.org/software/gettext/">http://www.gnu.org/software/gettext/</a>
</p>
</li><li>- <em>Pango</em> 1.36.8 or newer
<p>This library can be used by the <em>WINGs</em> toolkit to improve support for <em>UTF-8</em> and for
languages written in right-to-left direction, in some widgets.
You have to explicitly ask for its support through (see <a href="#Configure-Options">Configure Options</a>).
You can get it from <a href="http://www.pango.org/Download">http://www.pango.org/Download</a>
</p>
</li><li>- <em>libbsd</em>
<p>This library can be used by the <em>WINGs</em> utility library to make use of <code>strlcat</code> and
<code>strlcpy</code> instead of using built-in functions if your system does not provide them in its
core <em>libc</em>.
You should let <small>WINDOW MAKER</small>&rsquo;s <code>configure</code> detect this for you.
You can get it from <a href="http://libbsd.freedesktop.org/wiki/">http://libbsd.freedesktop.org/wiki/</a>
</p>
</li><li>- <em>Inotify</em>
<p>If you have Linux&rsquo;s <em>inotify</em> support, <small>WINDOW MAKER</small> will use it to check for configuration
updates instead of polling regularly the file.
The needed header comes with the kernel, typical packages names include:
</p><ul>
<li> <samp>kernel-headers</samp> for <em>Slackware</em> and <em>Fedora</em>
</li><li> <samp>linux-userspace-headers</samp> for <em>Mageia</em>
</li><li> <samp>linux-libc-dev</samp> for <em>Debian</em> and <em>Ubuntu</em>
</li><li> <samp>linux-glibc-devel</samp> for <em>OpenSuSE</em>
</li></ul>
</li><li>- <em>MagickWand</em> 6.8.9-9 or newer
<p>If found, then the library <em>WRaster</em> can use the <em>ImageMagick</em> library to let
<small>WINDOW MAKER</small> support more image formats, like <em>SVG</em>, <em>BMP</em>, <em>TGA</em>, ...
You can get it from <a href="http://www.imagemagick.org/">http://www.imagemagick.org/</a>
</p>
</li><li>- <em>Boehm GC</em>
<p>This library can be used by the <em>WINGs</em> utility toolkit to use a
<cite>Boehm-Demers-Weiser Garbage Collector</cite> instead of the traditional
<code>malloc</code>/<code>free</code> functions from the <em>libc</em>.
You have to explicitly ask for its support though (see <a href="#Configure-Options">Configure Options</a>).
You can get it from <a href="http://www.hboehm.info/gc/">http://www.hboehm.info/gc/</a>
</p>
</li></ul>
<hr>
<a name="Building-Window-Maker"></a>
<a name="Building-WINDOW-MAKER"></a>
<h2 class="chapter">2 Building <small>WINDOW MAKER</small></h2>
<a name="Getting-the-Sources"></a>
<h3 class="section">2.1 Getting the Sources</h3>
<p>The latest version of <small>WINDOW MAKER</small> (<tt>-crm</tt>) can be downloaded from
<a href="http://www.windowmaker.org/">http://www.windowmaker.org/</a>
</p>
<p>Alternatively, the development branch, called <tt>#next</tt> is in the <em>git</em> repository at
<a href="http://repo.or.cz/w/wmaker-crm.git">http://repo.or.cz/w/wmaker-crm.git</a>
</p>
<p>If you want to use the <em>git</em> versions, you can get it with:
</p><div class="example">
<pre class="example">git clone -b next git://repo.or.cz/wmaker-crm.git
</pre></div>
<p>then, assuming you have the dependencies listed in <a href="#Special-Dependencies">Special Dependencies</a>, you have to
type:
</p><div class="example">
<pre class="example">./autogen.sh
</pre></div>
<p>to generate the configuration script.
</p>
<a name="Build-and-Install"></a>
<h3 class="section">2.2 Build and Install</h3>
<p>For a quick start, type the following in your shell prompt:
</p>
<div class="example">
<pre class="example">./configure
make
</pre></div>
<p>then, login as <em>root</em> and type:
</p>
<div class="example">
<pre class="example">make install
ldconfig
</pre></div>
<p>or if you want to strip the debugging symbols from the binaries to make them smaller,
you can type instead:
</p>
<div class="example">
<pre class="example">make install-strip
ldconfig
</pre></div>
<p>This will build and install <small>WINDOW MAKER</small> with default parameters.
</p>
<p>If you want to customise some compile-time options, you can do the following:
</p>
<ol>
<li> (optional) Look at the <a href="#Configure-Options">Configure Options</a>, for the options available.
Also run:
<div class="example">
<pre class="example">./configure --help
</pre></div>
<p>to get a complete list of options that are available.
</p>
</li><li> Run configure with the options you want.
For example, if you want to use the <samp>--enable-modelock</samp> option, type:
<div class="example">
<pre class="example">./configure --enable-modelock
</pre></div>
</li><li> (optional) Edit <samp>src/wconfig.h</samp> with your favourite text editor and browse through it for some
options you might want to change.
</li><li> Compile. Just type:
<div class="example">
<pre class="example">make
</pre></div>
</li><li> Login as root (if you can&rsquo;t do that, read the <a href="#No-Root-Password">I don&rsquo;t have the <em>root</em> password</a>)
and install <small>WINDOW MAKER</small> in your system:
<div class="example">
<pre class="example">su root
make install
</pre></div>
</li></ol>
<a name="User-specific-configuration"></a>
<h3 class="section">2.3 User specific configuration</h3>
<p>These instructions do not need to be followed when upgrading <small>WINDOW MAKER</small>
from an older version, unless stated differently in the <cite>NEWS</cite> file.
</p>
<p>Every user on your system that wishes to run <small>WINDOW MAKER</small> must do the
following:
</p>
<ol>
<li> Install Window Maker configuration files in your home directory.
Type:
<div class="example">
<pre class="example">wmaker.inst
</pre></div>
<p><code>wmaker.inst</code> will install <small>WINDOW MAKER</small> configuration files and will
setup X to automatically launch <small>WINDOW MAKER</small> at startup.
</p>
</li></ol>
<p>That&rsquo;s it!
</p>
<p>You can type <code>man wmaker</code> to get some general help for configuration
and other stuff.
</p>
<p>Read the <cite>User Guide</cite> for a more in-depth explanation of <small>WINDOW MAKER</small>.
</p>
<p>You might want to take a look at the <cite>FAQ</cite> too.
</p>
<a name="Locales_002fInternationalisation"></a>
<h3 class="section">2.4 Locales/Internationalisation</h3>
<p><small>WINDOW MAKER</small> has national language support. The procedure to enable national
language support is described in the dedicated
<a href="wmaker_i18n.html#Enabling-Languages-support">Enabling Languages support</a> in <cite><samp>README.i18n</samp></cite>.
</p>
<a name="Configure-Options-1"></a>
<h3 class="section">2.5 Configure Options</h3>
<a name="Configure-Options"></a>
<p>These options can be passed to the configure script to enable/disable
some <small>WINDOW MAKER</small> features. Example:
</p><div class="example">
<pre class="example">./configure --enable-modelock --disable-gif
</pre></div>
<p>will configure <small>WINDOW MAKER</small> with <em>modelock</em> supported and disable <em>gif</em> support.
Normally, you won&rsquo;t need any of them.
</p>
<p>To get the list of all options, run <code>./configure --help</code>
</p>
<a name="Installation-Directory"></a>
<h4 class="subsection">2.5.1 Installation Directory</h4>
<p>The default installation path will be in the <samp>/usr/local</samp> hierarchy;
a number of option can customise this:
</p>
<dl compact="compact">
<dt><samp>--prefix=<i>PREFIX</i></samp></dt>
<dt><samp>--exec-prefix=<i>EPREFIX</i></samp></dt>
<dt><samp>--bindir=<i>DIR</i></samp></dt>
<dt><samp>--sysconfdir=<i>DIR</i></samp></dt>
<dt><samp>--libdir=<i>DIR</i></samp></dt>
<dt><samp>--includedir=<i>DIR</i></samp></dt>
<dt><samp>--datarootdir=<i>DIR</i></samp></dt>
<dt><samp>--datadir=<i>DIR</i></samp></dt>
<dt><samp>--localedir=<i>DIR</i></samp></dt>
<dt><samp>--mandir=<i>DIR</i></samp></dt>
<dd><p>Standard options from <em>autoconf</em> to define target paths,
you probably want to read Installation Names in <cite><samp>INSTALL</samp></cite>.
</p>
</dd>
<dt><samp>--sbindir=<i>DIR</i></samp></dt>
<dt><samp>--libexecdir=<i>DIR</i></samp></dt>
<dt><samp>--sharedstatedir=<i>DIR</i></samp></dt>
<dt><samp>--localstatedir=<i>DIR</i></samp></dt>
<dt><samp>--oldincludedir=<i>DIR</i></samp></dt>
<dt><samp>--infodir=<i>DIR</i></samp></dt>
<dt><samp>--docdir=<i>DIR</i></samp></dt>
<dt><samp>--htmldir=<i>DIR</i></samp></dt>
<dt><samp>--dvidir=<i>DIR</i></samp></dt>
<dt><samp>--pdfdir=<i>DIR</i></samp></dt>
<dt><samp>--psdir=<i>DIR</i></samp></dt>
<dd><p>More standard options from <em>autoconf</em>, today these are not used by <small>WINDOW MAKER</small>;
they are provided automatically by <em>autoconf</em> for consistency.
</p>
</dd>
<dt><samp>--with-gnustepdir=<i>PATH</i></samp></dt>
<dd><p>Specific to <small>WINDOW MAKER</small>, defines the directory where <samp>WPrefs.app</samp> will be installed,
if you want to install it like a <em>GNUstep</em> applications.
If not specified, it will be installed like usual programs.
</p>
</dd>
<dt><samp>--with-pixmapdir=<i>DIR</i></samp></dt>
<dd><p>Specific to <small>WINDOW MAKER</small>, this option defines an additional path where <em>pixmaps</em> will be
searched. Nothing will be installed there; the default path taken is <samp><em>DATADIR</em>/pixmaps</samp>,
where <var>DATADIR</var> is the path defined from <samp>--datadir</samp>.
</p>
</dd>
<dt><samp>--with-defsdatadir=<i>DIR</i></samp></dt>
<dd><p>Specific to <small>WINDOW MAKER</small>, defines the directory where system configuration
files, e.g., <samp>WindowMaker</samp>, <samp>WMRootMenu</samp>, etc., are installed. The
default value is <samp><em>SYSCONFDIR</em>/WindowMaker</samp>, where <var>SYSCONFDIR</var> is
the path defined from <samp>--sysconfdir</samp>.
</p>
</dd>
</dl>
<a name="External-Libraries"></a>
<h4 class="subsection">2.5.2 External Libraries</h4>
<p>Unless specifically written, <code>configure</code> will try to detect automatically for the libraries;
if you explicitly provide <samp>--enable-<em>FEATURE</em></samp> then it will break with an error message
if the library cannot be linked;
if you specify <samp>--disable-<em>FEATURE</em></samp> then it will not try to search for the library.
You can find more information about the libraries in the
<a href="#Optional-Dependencies">Optional Dependencies</a>.
</p>
<dl compact="compact">
<dt><samp>--enable-boehm-gc</samp></dt>
<dd><p>Never enabled by default, use Boehm GC instead of the default <em>libc</em> <code>malloc()</code>
</p>
</dd>
<dt><samp>--disable-gif</samp></dt>
<dd><p>Disable GIF support in <em>WRaster</em> library; when enabled use <samp>libgif</samp> or <samp>libungif</samp>.
</p>
</dd>
<dt><samp>--disable-jpeg</samp></dt>
<dd><p>Disable JPEG support in <em>WRaster</em> library; when enabled use <samp>libjpeg</samp>.
</p>
</dd>
<dt><samp>--without-libbsd</samp></dt>
<dd><p>Refuse use of the <samp>libbsd</samp> compatibility library in <em>WINGs</em> utility library,
even if your system provides it.
</p>
</dd>
<dt><samp>--disable-magick</samp></dt>
<dd><p>Disable <em>ImageMagick&rsquo;s MagickWand</em> support in <em>WRaster</em>, used to support for image formats.
</p>
</dd>
<dt><samp>--enable-pango</samp></dt>
<dd><p>Disabled by default, enable <em>Pango</em> text layout support in <em>WINGs</em>.
</p>
</dd>
<dt><samp>--disable-png</samp></dt>
<dd><p>Disable PNG support in <em>WRaster</em>; when enabled use <samp>libpng</samp>.
</p>
</dd>
<dt><samp>--disable-tiff</samp></dt>
<dd><p>Disable TIFF support in <em>WRaster</em>. when enabled use <samp>libtiff</samp>.
</p>
</dd>
<dt><samp>--disable-webp</samp></dt>
<dd><p>Disable WEBP support in <em>WRaster</em>. when enabled use <samp>libwebp</samp>.
</p>
</dd>
<dt><samp>--disable-xpm</samp></dt>
<dd><p>Disable use of <samp>libXpm</samp> for XPM support in <em>WRaster</em>, use internal code instead.
</p>
</dd>
</dl>
<p>The following options can be used to tell <code>configure</code> about extra paths that needs to be
used when compiling against libraries:
</p>
<dl compact="compact">
<dt><samp>--with-libs-from</samp></dt>
<dd><p>specify additional paths for libraries to be searched.
The <samp>-L</samp> flag must precede each path, like:
</p><div class="example">
<pre class="example">--with-libs-from=&quot;-L/opt/libs -L/usr/local/lib&quot;
</pre></div>
</dd>
<dt><samp>--with-incs-from</samp></dt>
<dd><p>specify additional paths for header files to be searched.
The <samp>-I</samp> flag must precede each paths, like:
</p><div class="example">
<pre class="example">--with-incs-from=&quot;-I/opt/headers -I/usr/local/include&quot;
</pre></div>
</dd>
</dl>
<a name="X11-and-Extensions"></a>
<h4 class="subsection">2.5.3 X11 and Extensions</h4>
<p><code>configure</code> will try to detect automatically the compilation paths for X11 headers and
libraries, and which X Extensions support can be enabled.
if you explicitly provide <samp>--enable-<em>FEATURE</em></samp> then it will break with an error message
if the extension cannot be used;
if you specify <samp>--disable-<em>FEATURE</em></samp> then it will not check for the extension.
</p>
<dl compact="compact">
<dt><samp>--x-includes=<i>DIR</i></samp></dt>
<dt><samp>--x-libraries=<i>DIR</i></samp></dt>
<dd><p><em>Autoconf</em>&rsquo;s option to specify search paths for <em>X11</em>,
for the case were it would not have been able to detect it automatically.
</p>
</dd>
<dt><samp>--disable-xlocale</samp></dt>
<dd><p>If you activated support for Native Languages, then <em>X11</em> may use a hack to also configure its
locale support when the program configure the locale for itself.
The <code>configure</code> script detects if the <em>Xlib</em> supports this or not;
this options explicitly disable this initialisation mechanism.
</p>
</dd>
<dt><samp>--enable-modelock</samp></dt>
<dd><p>XKB language status lock support. If you don&rsquo;t know what it is you probably don&rsquo;t need it.
The default is to not enable it.
</p>
</dd>
<dt><samp>--disable-shm</samp></dt>
<dd><p>Disable use of the <em>MIT shared memory</em> extension.
This will slow down texture generation a little bit, but in some cases it seems to be necessary due
to a bug that manifests as messed icons and textures.
</p>
</dd>
<dt><samp>--disable-shape</samp></dt>
<dd><p>Disables support for <em>shaped</em> windows (for <code>oclock</code>, <code>xeyes</code>, etc.).
</p>
</dd>
<dt><samp>--enable-xinerama</samp></dt>
<dd><p>The <em>Xinerama</em> extension provides information about the different screens connected when
running a multi-head setting (if you plug more than one monitor).
</p>
</dd>
<dt><samp>--enable-randr</samp></dt>
<dd><p>The <em>RandR</em> extension provides feedback when changing the multiple-monitor configuration in X11
and allows to re-configure how screens are organised.
</p>
<p>At current time, it is not enabled by default because it is NOT recommended (buggy);
<small>WINDOW MAKER</small> only restart itself when the configuration change, to take into account the new
screen size.
</p>
</dd>
</dl>
<a name="Feature-Selection"></a>
<h4 class="subsection">2.5.4 Feature Selection</h4>
<dl compact="compact">
<dt><samp>--disable-animations</samp></dt>
<dd><p>Disable animations permanently, by not compiling the corresponding code into <small>WINDOW MAKER</small>.
When enabled (the default), you still have a run-time configuration option in <em>WPrefs</em>.
</p>
</dd>
<dt><samp>--disable-mwm-hints</samp></dt>
<dd><p>Disable support for Motif&rsquo;s MWM Window Manager hints.
These attributes were introduced by the Motif toolkit to ask for special window appearance requests.
Nowadays this is covered by the NetWM/EWMH specification, but there are still applications that rely on MWM Hints.
</p>
</dd>
<dt><samp>--enable-wmreplace</samp></dt>
<dd><p>Add support for the <em>ICCCM</em> protocol for cooperative window manager replacement.
This feature is disabled by default because you probably don&rsquo;t need to switch seamlessly the window manager;
if you are making a package for a distribution you&rsquo;d probably want to enable this because it allows users to give
a try to different window managers without restarting everything for an extra cost that is not really big.
</p>
</dd>
<dt><samp>--disable-xdnd</samp></dt>
<dd><p>Disable support for dragging and dropping files on the dock, which launches a user-specified command
with that file.
Starting from version 0.65.6 this feature is enabled by default.
</p>
</dd>
<dt><samp>--enable-ld-version-script</samp></dt>
<dd><p>This feature is auto-detected, and you should not use this option.
When compiling a library (<samp>wrlib</samp>, ...), <em>gcc</em> has the possibility to filter the list of
functions that will be visible, to keep only the public API, because it helps running programs
faster.
</p>
<p>The <code>configure</code> script checks if this feature is available;
if you specify this option it will not check anymore and blindly trust you that it is supposed to
work, which is not a good idea as you may encounter problems later when compiling.
</p>
</dd>
<dt><samp>--enable-usermenu</samp></dt>
<dd><p>This feature, disabled by default, allows to add a user-defined custom menu to applications;
when choosing an entry of the menu it will send the key combination defined by the user to that
application. See <a href="http://repo.or.cz/wmaker-crm.git/blob/HEAD:/NEWS">Application User Menu</a> in <cite><samp>NEWS</samp></cite> for more information.
</p>
</dd>
<dt><samp>--with-menu-textdomain=<i>DOMAIN</i></samp></dt>
<dd><p>Selection of the domain used for translation of the menus;
see <a href="wmaker_i18n.html#Translations-for-Menus">Translations for Menus</a> in <cite><samp>README.i18n</samp></cite>.
</p>
</dd>
</dl>
<a name="Developer-Stuff"></a>
<h4 class="subsection">2.5.5 Developer Stuff</h4>
<p>These options are disabled by default:
</p>
<dl compact="compact">
<dt><samp>--config-cache</samp></dt>
<dd><p>If you intend to re-run the <code>configure</code> script often, you probably want to include this
option, so it will save and re-use the status of what have been detected in the file
<samp>config.cache</samp>.
</p>
</dd>
<dt><samp>--enable-debug</samp></dt>
<dd><p>Enable debugging features (debug symbol, some extra verbosity and checks) and add a number of
check flags (warnings) for the compiler (in <em>gcc</em> fashion).
</p>
</dd>
<dt><samp>--enable-lcov=<i>DIRECTORY</i></samp></dt>
<dd><p>Enable generation of code coverage and profiling data;
if the <samp><i>DIRECTORY</i></samp> is not specified, use <samp>coverage-report</samp>.
</p>
<p>This option was meant to be use with <em>gcc</em>;
it was not used recently so it is probable that is does not work anymore;
the <code>configure</code> script will not even check that your compiling environment has the
appropriate requirements and works with this.
Despite all this, if you think there&rsquo;s a use for it and feel in the mood to help, do not hesitate to
discuss on the mailing list <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a> to get it working.
</p>
</dd>
</dl>
<hr>
<a name="Miscellaneous"></a>
<a name="Miscellaneous-1"></a>
<h2 class="chapter">3 Miscellaneous</h2>
<a name="Platform-Specific-Notes"></a>
<h3 class="section">3.1 Platform Specific Notes</h3>
<ul class="no-bullet">
<li>- <em>GNU/Linux</em> in general
<p>Make sure you have <samp>/usr/local/lib</samp> in <samp>/etc/ld.so.conf</samp> and that you
run <code>ldconfig</code> after installing.
Uninstall any packaged version of <small>WINDOW MAKER</small> before installing a new version.
</p>
</li><li>- <em>RedHat GNU/Linux</em>
<p><em>RedHat</em> systems have several annoying problems.
If you use it, be sure to follow the steps below or <small>WINDOW MAKER</small> will not work:
</p>
<ul>
<li> if you installed the <small>WINDOW MAKER</small> that comes with <em>RedHat</em>, uninstall it before upgrading;
</li><li> make sure you have <samp>/usr/local/bin</samp> in your <code>PATH</code> environment variable;
</li><li> make sure you have <samp>/usr/local/lib</samp> in <samp>/etc/ld.so.conf</samp> before running <code>ldconfig</code>;
</li></ul>
</li><li>- <em>PowerPC MkLinux</em>
<p>You will need to have the latest version of <em>Xpmac</em>.
Older versions seem to have bugs that cause the system to hang.
</p>
</li><li>- <em>Debian GNU/Linux</em>
<p>If you want <em>JPEG</em> and <em>TIFF</em> support, make sure you have <samp>libtiff-dev</samp>
and <samp>libjpeg-dev</samp> installed.
</p>
</li><li>- <em>SuSE GNU/Linux</em>
<p>If you installed the <small>WINDOW MAKER</small> package from <em>SuSE</em>, uninstall it before trying to
compile <em>Window Maker</em> or you might have problems.
</p>
</li><li>- <em>MetroX</em> (unknown version)
<p><em>MetroX</em> has a bug that corrupts pixmaps that are set as window backgrounds.
If you use <em>MetroX</em> and have weird problems with textures, do not use textures in title bars.
Or use a different X server.
</p>
</li></ul>
<a name="I-don_0027t-have-the-root-password-_003a_0028"></a>
<h3 class="section">3.2 I don&rsquo;t have the <em>root</em> password :(</h3>
<a name="No-Root-Password"></a>
<p>If you can&rsquo;t get superuser privileges (can&rsquo;t be <i>root</i>) you can install <em>Window Maker</em> in your own
home directory.
For that, supply the <samp>--prefix</samp> option when running configure in step 2 of building
<small>WINDOW MAKER</small>.
You will also need to supply the <samp>--with-gnustepdir</samp> option, to specify the path for
<code>WPrefs.app</code>.
Example:
</p>
<div class="example">
<pre class="example">./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications
</pre></div>
<p>Then make <samp>/home/jshmoe/bin</samp> be included in your search <code>PATH</code>, add <samp>/home/jshmoe/lib</samp>
to your <code>LD_LIBRARY_PATH</code> environment variable and run <code>bin/wmaker.inst</code>
</p>
<p>Of course, <samp>/home/jshmoe</samp> is supposed to be replaced by your actual home directory path.
</p>
<a name="Upgrading"></a>
<h3 class="section">3.3 Upgrading</h3>
<p>If you are upgrading from an older version of <small>WINDOW MAKER</small>:
</p>
<ol>
<li> Configure and build <small>WINDOW MAKER</small> as always
</li><li> Install <small>WINDOW MAKER</small> (but do not run <code>wmaker.inst</code>)
</li><li> Read the <cite>NEWS</cite> file and update your configuration files if necessary.
</li></ol>
<hr>
<a name="Troubleshooting"></a>
<a name="Troubleshooting-1"></a>
<h2 class="chapter">4 Troubleshooting</h2>
<p>When you have some trouble during configuration (while running configure), like not being able to
use a graphic format library you think you have installed, look at the <samp>config.log</samp> file for
clues of the problem.
</p>
<a name="Error-with-loading-fonts_002c-even-if-they-exist"></a>
<h3 class="section">4.1 Error with loading fonts, even if they exist</h3>
<p>This is probably a problem with NLS (Native Language Support), you probably want to look at the
<a href="wmaker_i18n.html#Troubleshooting">Troubleshooting</a> in <cite><samp>README.i18n</samp></cite>
or try rebuilding without NLS support, which is done with:
</p><div class="example">
<pre class="example">./configure LINGUAS=&quot;&quot;
</pre></div>
<a name="configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries"></a>
<h3 class="section">4.2 configure doesn&rsquo;t detect <em>libtiff</em>, or other graphic libraries</h3>
<p>Delete <samp>config.cache</samp>, then rerun configure adding the following options to <code>configure</code>
(among the other options you use):
</p><div class="example">
<pre class="example">--with-libs-from=&quot;-L/usr/local/lib&quot;
--with-incs-from=&quot;-I/usr/local/include -I/usr/local/include/tiff&quot;
</pre></div>
<p>Put the paths where your graphic libs and their corresponding header files are located.
You can put multiple paths in any of these options, as the example of <samp>--with-incs-from</samp> shows.
Just put a space between them.
</p>
<a name="configure-doesn_0027t-detect-libXpm"></a>
<h3 class="section">4.3 configure doesn&rsquo;t detect <em>libXpm</em></h3>
<p>Check if you have a symbolic link from <samp>libXpm.so.4.9</samp> to <samp>libXpm.so</samp>
</p>
<a name="Segmentation-fault-on-startup"></a>
<h3 class="section">4.4 Segmentation fault on startup</h3>
<ul>
<li> Check if the version of <em>libXPM</em> you have is at least 4.7
</li><li> Check if you have an updated version of <samp>~/GNUstep/Defaults/WindowMaker</samp>
</li></ul>
<p>If you&rsquo;re not sure, try renaming <samp>~/GNUstep</samp> to <samp>~/GNUtmp</samp>
and then run <code>wmaker.inst</code>
</p>
<a name="g_t_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022"></a>
<h3 class="section">4.5 &quot;...: your machine is misconfigured. gethostname() returned (none)&quot;</h3>
<p>the host name of your machine is set to something invalid, that starts with a parenthesis.
Do a <code>man hostname</code> for info about how to set it.
</p>
<a name="The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029"></a>
<h3 class="section">4.6 The root menu contains only 2 entries. (&quot;XTerm&quot; and &quot;Exit...&quot;)</h3>
<p><small>WINDOW MAKER</small> could not read your menu definition file.
You should check the output of <code>wmaker</code> for an error, it may be visible in the console or in the
<samp>.xsession-errors</samp> file.
</p>
<hr>

732
docs/wmaker_install.rst Normal file
View File

@@ -0,0 +1,732 @@
---
layout: default
title: Compilation and Installation
---
=========================================
Window Maker Compilation and Installation
=========================================
A guide to configure, compile and install WINDOW MAKER from sources.
.. sectnum::
.. contents:: Table of Contents
:backlinks: none
This manual is for Window Maker, version git#next.
----
Prerequisites
-------------
Supported Platforms
...................
- Intel GNU/Linux Systems in general, `ix86` and `x86_64` but other
architectures should work
- BSD systems
- Solaris, at least on release 10 and 11
Patches to make it work on other platforms are welcome.
Software Dependencies
.....................
The following software is required to use WINDOW MAKER:
- X11R6.x
Window Maker can be compiled in older versions of *X*, like
*X11R5* (*Solaris*) or *X11R4* (*OpenWindows*) but
it will not work 100% correctly. In such servers there will not be
application icons and you'll have trouble using the dock. Upgrading the
client libraries (*Xlib*, *Xt*, etc.) will help if you
can't upgrade the server.
The following is required to build WINDOW MAKER:
- Basic obvious stuff
- *gcc* (or some other ANSI C compiler, supporting some C99 extensions)
- *glibc* development files (usually ``glibc-devel`` in Linux distributions)
- *X* development files (``XFree86-devel`` or something similar)
- *Xft2* and its dependencies
Dependencies include *freetype2* and *fontconfig*. You will also need the
development files for them (``xft2-devel``). Sources are available at:
http://www.freedesktop.org/wiki/Software/Xft
**Note**: WINDOW MAKER is known to compile with *gcc* and *clang*; the code
source is mostly ANSI C (also known as C89 and C90) but is uses very few of the
C99 novelties; it also uses a few attributes introduced in the C11 standard but
those are detected automatically, so most compilers should work.
Special Dependencies
....................
If you want to compile using the sources from the git repository instead of the
distribution package, you will also need:
- *git*
- *autoconf* 2.69
- *automake* 1.12
- *libtool* 1.4.2
Optional Dependencies
.....................
These libraries are not required to make <small>WINDOW MAKER</small> work, but
they are supported in case you want to use them. Version numbers are indicative,
but other versions might work too.
- *libXPM* 4.7 or newer
Older versions may not work!
Available from http://xlibs.freedesktop.org/release
There is built-in support for <em>XPM</em> files, but it will not load images
in some uncommon encodings.
- *libpng* 0.96 or newer and *zlib*
For *PNG* image support, http://www.libpng.org/pub/png/libpng.html
- *libtiff* 3.4 or newer
For *TIFF* image support, http://www.libtiff.org/
- *libjpeg* 6.0.1 or newer
For *JPEG* image support, http://www.ijg.org/
Note that if you don't have it, ``configure`` will issue a big warning in the
end, this is because JPEG images are often used in themes and for background
images so you probably want this format supported.
- *libgif* 2.2 or *libungif*
For *GIF* image support, http://giflib.sourceforge.net/
- *WebP* 0.4.1 or newer
The reference library from *Google* for their image format,
https://developers.google.com/speed/webp/download
- *GNU xgettext*
If you want to use translated messages, you will need *GNU gettext*.
Other versions of *gettext* are not compatible and will not work. Get
the *GNU* version from http://www.gnu.org/software/gettext/
- *Pango* 1.36.8 or newer
This library can be used by the *WINGs* toolkit to improve support for
*UTF-8* and for languages written in right-to-left direction, in some
widgets. You have to explicitly ask for its support through (see `Configure
Options <#configure-options>`__). You can get it from
http://www.pango.org/Download
- *libbsd*
This library can be used by the *WINGs* utility library to make use of
``strlcat`` and ``strlcpy`` instead of using built-in functions if your system
does not provide them in its core *libc*. You should let WINDOW MAKER's
``configure`` detect this for you. You can get it from
http://libbsd.freedesktop.org/wiki/
- *Inotify*
If you have Linux's *inotify* support, WINDOW MAKER will use it to check for
configuration updates instead of polling regularly the file. The needed header
comes with the kernel, typical packages names include:
- ``kernel-headers`` for *Slackware* and *Fedora*
- ``linux-userspace-headers`` for *Mageia*
- ``linux-libc-dev`` for *Debian* and *Ubuntu*
- ``linux-glibc-devel`` for *OpenSuSE*
- *MagickWand* 6.8.9-9 or newer
If found, then the library *WRaster* can use the *ImageMagick* library to let
WINDOW MAKER support more image formats, like *SVG*, *BMP*, *TGA*, ... You
can get it from http://www.imagemagick.org/
- *Boehm GC*
This library can be used by the *WINGs* utility toolkit to use a
*Boehm-Demers-Weiser Garbage Collector* instead of the traditional
``malloc``/``free`` functions from the *libc*. You have to explicitly ask for
its support though (see `Configure Options <#configure-options>`__). You can
get it from http://www.hboehm.info/gc/
----
Building WINDOW MAKER
---------------------
Getting the Sources
...................
The latest version of WINDOW MAKER (``-crm``) can be downloaded from
http://www.windowmaker.org/
Alternatively, the development branch, called ``#next`` is in the *git*
repository at http://repo.or.cz/w/wmaker-crm.git
If you want to use the *git* versions, you can get it with:
.. code:: console
:class: highlight
git clone -b next git://repo.or.cz/wmaker-crm.git
then, assuming you have the dependencies listed in `Special Dependencies
<#special-dependencies>`__, you have to type:
.. code:: console
:class: highlight
./autogen.sh
to generate the configuration script.
Build and Install
For a quick start, type the following in your shell prompt:
.. code:: console
:class: highlight
./configure
make
then, login as *root* and type:
.. code:: console
:class: highlight
make install
ldconfig
or if you want to strip the debugging symbols from the binaries to make them
smaller, you can type instead:
.. code:: console
:class: highlight
make install-strip
ldconfig
This will build and install WINDOW MAKER with default parameters.
If you want to customise some compile-time options, you can do the following:
1. (optional) Look at the `Configure Options <#configure-options>`__, for the
options available. Also run:
.. code:: console
:class: highlight
./configure --help
to get a complete list of options that are available.
1. Run configure with the options you want. For example, if you want to use the
``--enable-modelock`` option, type:
.. code:: console
:class: highlight
./configure --enable-modelock
1. (optional) Edit ``src/wconfig.h`` with your favourite text editor and browse
through it for some options you might want to change.
1. Compile. Just type:
.. code:: console
:class: highlight
make
1. Login as root (if you can't do that, read the [I don't have the
*root*](#No-Root-Password)) and install WINDOW MAKER in your system:
.. code:: console
:class: highlight
su root
make install
User specific configuration
...........................
These instructions do not need to be followed when upgrading WINDOW MAKER
from an older version, unless stated differently in the *NEWS* file.
Every user on your system that wishes to run WINDOW MAKER must do the
following:
1. Install Window Maker configuration files in your home directory. Type:
.. code:: console
wmaker.inst
``wmaker.inst`` will install WINDOW MAKER configuration files and will setup
X to automatically launch WINDOW MAKER at startup.
That's it!
You can type ``man wmaker`` to get some general help for configuration and
other stuff.
Read the *User Guide* for a more in-depth explanation of WINDOW MAKER.
You might want to take a look at the *FAQ* too.
Locales/Internationalisation
............................
WINDOW MAKER has national language support. The procedure to enable national
language support is described in the dedicated
`Enabling Languages support <wmaker_i18n.html#enabling-languages-support>`__
in ``README.i18n``.
Configure Options
.................
These options can be passed to the configure script to enable/disable some
WINDOW MAKER features. Example:
.. code:: console
:class: highlight
./configure --enable-modelock --disable-gif
will configure WINDOW MAKER with *modelock* supported and disable *gif* support.
Normally, you won't need any of them.
To get the list of all options, run ``./configure --help``
Installation Directory
''''''''''''''''''''''
The default installation path will be in the ``/usr/local`` hierarchy; a number of
option can customise this:
- ``--prefix=PREFIX``
- ``--exec-prefix=EPREFIX``
- ``--bindir=DIR``
- ``--sysconfdir=DIR``
- ``--libdir=DIR``
- ``--includedir=DIR``
- ``--datarootdir=DIR``
- ``--datadir=DIR``
- ``--localedir=DIR``
- ``--mandir=DIR``
Standard options from *autoconf* to define target paths, you probably want to
read Installation Names in *`INSTALL`*.
- ``--sbindir=DIR``
- ``--libexecdir=DIR``
- ``--sharedstatedir=DIR``
- ``--localstatedir=DIR``
- ``--oldincludedir=DIR``
- ``--infodir=DIR``
- ``--docdir=DIR``
- ``--htmldir=DIR``
- ``--dvidir=DIR``
- ``--pdfdir=DIR``
- ``--psdir=DIR``
More standard options from *autoconf*, today these are not used by WINDOW
MAKER; they are provided automatically by *autoconf* for consistency.
- ``--with-gnustepdir=PATH``
Specific to WINDOW MAKER, defines the directory where WPrefs.app will be
installed, if you want to install it like a *GNUstep* applications. If not
specified, it will be installed like usual programs.
- ``--with-pixmapdir=DIR``
Specific to WINDOW MAKER, this option defines an additional path where
*pixmaps* will be searched. Nothing will be installed there; the default
path taken is ``DATADIR/pixmaps``, where ``ATADIR` is the path defined from
``--datadir``.
- ``--with-defsdatadir=DIR``
Specific to WINDOW MAKER, defines the directory where system configuration
files, e.g., ``WindowMaker``, ``WMRootMenu``, etc., are installed. The
default value is ``SYSCONFDIR/WindowMaker``, where ``SYSCONFDIR`` is the
path defined from ``--sysconfdir``.
External Libraries
''''''''''''''''''
Unless specifically written, ``configure`` will try to detect automatically for
the libraries; if you explicitly provide ``--enable-FEATURE`` then it will
break with an error message if the library cannot be linked; if you specify
``--disable-FEATURE`` then it will not try to search for the library. You can
find more information about the libraries in the `Optional Dependencies
<#Optional-Dependencies>`__
``--enable-boehm-gc``
Never enabled by default, use Boehm GC instead of the default *libc*
``malloc()``
``--disable-gif``
Disable GIF support in *WRaster* library; when enabled use ``libgif`` or
``libungif``.
``--disable-jpeg``
Disable JPEG support in *WRaster* library; when enabled use ``libjpeg``.
``--without-libbsd``
Refuse use of the ``libbsd`` compatibility library in *WINGs* utility
library, even if your system provides it.
``--disable-magick``
Disable *ImageMagick's MagickWand* support in *WRaster*, used to support for
image formats.
``--enable-pango``
Disabled by default, enable *Pango* text layout support in *WINGs*.
``--disable-png``
Disable PNG support in *WRaster*; when enabled use ``libpng``.
``--disable-tiff``
Disable TIFF support in *WRaster*. when enabled use ``libtiff``.
``--disable-webp``
Disable WEBP support in *WRaster*. when enabled use ``libwebp``.
``--disable-xpm``
Disable use of ``libXpm`` for XPM support in *WRaster*, use internal code
instead.
The following options can be used to tell ``configure`` about extra paths that
needs to be used when compiling against libraries:
``--with-libs-from``
specify additional paths for libraries to be searched. The ``-L`` flag must
precede each path, like:
.. code::
:class: highlight
--with-libs-from="-L/opt/libs -L/usr/local/lib"
``--with-incs-from``
specify additional paths for header files to be searched. The ``-I`` flag
must precede each paths, like:
.. code::
:class: highlight
--with-incs-from="-I/opt/headers -I/usr/local/include"
X11 and Extensions
''''''''''''''''''
``configure`` will try to detect automatically the compilation paths for X11
headers and libraries, and which X Extensions support can be enabled. if you
explicitly provide ``--enable-FEATURE`` then it will break with an error
message if the extension cannot be used; if you specify ``--disable-FEATURE``
then it will not check for the extension.
- ``--x-includes=DIR``
- ``--x-libraries=DIR``
*Autoconf*'s option to specify search paths for *X11*, for the case were it
would not have been able to detect it automatically.
``--disable-xlocale``
If you activated support for Native Languages, then *X11* may use a hack to
also configure its locale support when the program configure the locale for
itself. The ``configure`` script detects if the *Xlib* supports this or
not; this options explicitly disable this initialisation mechanism.
``--enable-modelock``
XKB language status lock support. If you don't know what it is you probably
don't need it. The default is to not enable it.
``--disable-shm``
Disable use of the *MIT shared memory* extension. This will slow down
texture generation a little bit, but in some cases it seems to be necessary
due to a bug that manifests as messed icons and textures.
``--disable-shape``
Disables support for *shaped* windows (for ``oclock``, ``xeyes``, etc.).
``--enable-xinerama``
The *Xinerama* extension provides information about the different screens
connected when running a multi-head setting (if you plug more than one
monitor).
``--enable-randr``
The *RandR* extension provides feedback when changing the multiple-monitor
configuration in X11 and allows to re-configure how screens are organised.
At current time, it is not enabled by default because it is NOT recommended
(buggy); WINDOW MAKER only restart itself when the configuration change, to
take into account the new screen size.
Feature Selection
'''''''''''''''''
``--disable-animations``
Disable animations permanently, by not compiling the corresponding code into
WINDOW MAKER. When enabled (the default), you still have a run-time
configuration option in *WPrefs*.
``--disable-mwm-hints``
Disable support for Motif's MWM Window Manager hints. These attributes were
introduced by the Motif toolkit to ask for special window appearance
requests. Nowadays this is covered by the NetWM/EWMH specification, but
there are still applications that rely on MWM Hints.
``--enable-wmreplace``
Add support for the *ICCCM* protocol for cooperative window manager
replacement. This feature is disabled by default because you probably don't
need to switch seamlessly the window manager; if you are making a package
for a distribution you'd probably want to enable this because it allows
users to give a try to different window managers without restarting
everything for an extra cost that is not really big.
``--disable-xdnd``
Disable support for dragging and dropping files on the dock, which launches
a user-specified command with that file. Starting from version 0.65.6 this
feature is enabled by default.
``--enable-ld-version-script``
This feature is auto-detected, and you should not use this option. When
compiling a library (``wrlib``, ...), *gcc* has the possibility to filter
the list of functions that will be visible, to keep only the public API,
because it helps running programs faster.
The ``configure`` script checks if this feature is available; if you specify
this option it will not check anymore and blindly trust you that it is
supposed to work, which is not a good idea as you may encounter problems
later when compiling.
``--enable-usermenu``
This feature, disabled by default, allows to add a user-defined custom menu
to applications; when choosing an entry of the menu it will send the key
combination defined by the user to that application. See <a
href="http://repo.or.cz/wmaker-crm.git/blob/HEAD:/NEWS">Application User
Menu</a> in *NEWS* for more information.
``--with-menu-textdomain=DOMAIN``
Selection of the domain used for translation of the menus; see `Translations
for Menus <wmaker_i18n.html#Translations-for-Menus>`__ in *README.i18n*.
Developer Stuff
'''''''''''''''
These options are disabled by default:
``--config-cache``
If you intend to re-run the ``configure`` script often, you probably want to
include this option, so it will save and re-use the status of what have been
detected in the file ``config.cache``.
``--enable-debug``
Enable debugging features (debug symbol, some extra verbosity and checks)
and add a number of check flags (warnings) for the compiler (in *gcc*
fashion).
``--enable-lcov=DIRECTORY``
Enable generation of code coverage and profiling data; if the ``DIRECTORY``
is not specified, use ``coverage-report``.
This option was meant to be use with *gcc*; it was not used recently so it
is probable that is does not work anymore; the ``configure`` script will not
even check that your compiling environment has the appropriate requirements
and works with this. Despite all this, if you think there's a use for it
and feel in the mood to help, do not hesitate to discuss on the mailing list
`wmaker-dev@lists.windowmaker.org
<mailto:wmaker-dev@lists.windowmaker.org>`__ to get it working.
Miscellaneous
-------------
Platform Specific Notes
.......................
- *GNU/Linux* in general
Make sure you have ``/usr/local/lib`` in ``/etc/ld.so.conf`` and that you run
``ldconfig`` after installing. Uninstall any packaged version of WINDOW MAKER
before installing a new version.
- *RedHat GNU/Linux*
*RedHat* systems have several annoying problems. If you use it, be sure to
follow the steps below or WINDOW MAKER will not work:
- if you installed the WINDOW MAKER that comes with *RedHat*, uninstall it
before upgrading;
- make sure you have ``/usr/local/bin`` in your ``PATH`` environment variable;
- make sure you have ``/usr/local/lib`` in ``/etc/ld.so.conf`` before running ``ldconfig``;
- *PowerPC MkLinux*
You will need to have the latest version of *Xpmac*. Older versions seem to
have bugs that cause the system to hang.
- *Debian GNU/Linux*
If you want *JPEG* and *TIFF* support, make sure you have ``libtiff-dev``
and ``libjpeg-dev`` installed.
- *SuSE GNU/Linux*
If you installed the WINDOW MAKER package from *SuSE*, uninstall it before
trying to compile *Window Maker* or you might have problems.
- *MetroX* (unknown version)
*MetroX* has a bug that corrupts pixmaps that are set as window backgrounds.
If you use *MetroX* and have weird problems with textures, do not use
textures in title bars. Or use a different X server.
I don't have the *root* password :(
...................................
If you can't get superuser privileges (can't be *root*) you can install *Window
Maker* in your own home directory. For that, supply the ``--prefix`` option
when running configure in step 2 of building WINDOW MAKER. You will also need
to supply the ``--with-gnustepdir`` option, to specify the path for
``WPrefs.app``.
Example:
.. code:: console
:class: highlight
./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications
Then make ``/home/jshmoe/bin`` be included in your search ``PATH``, add
``/home/jshmoe/lib`` to your ``LD_LIBRARY_PATH`` environment variable and run
``bin/wmaker.inst``
Of course, ``/home/jshmoe`` is supposed to be replaced by your actual home
directory path.
Upgrading
.........
If you are upgrading from an older version of WINDOW MAKER:
#. Configure and build WINDOW MAKER as always
#. Install WINDOW MAKER (but do not run ``wmaker.inst``)
#. Read the *NEWS* file and update your configuration files if necessary.
----
Troubleshooting
---------------
When you have some trouble during configuration (while running configure), like
not being able to use a graphic format library you think you have installed,
look at the ``config.log`` file for clues of the problem.
Error with loading fonts, even if they exist
............................................
This is probably a problem with NLS (Native Language Support), you probably
want to look at the `Troubleshooting <wmaker_i18n.html#Troubleshooting>`__ in
*README.i18n* or try rebuilding without NLS support, which is done with:
.. code:: console
:class: highlight
./configure LINGUAS=""
configure doesn't detect *libtiff*, or other graphic libraries
..............................................................
Delete ``config.cache``, then rerun configure adding the following options to
``configure`` (among the other options you use):
.. code:: console
:class: highlight
--with-libs-from="-L/usr/local/lib"
--with-incs-from="-I/usr/local/include -I/usr/local/include/tiff"
Put the paths where your graphic libs and their corresponding header files are
located. You can put multiple paths in any of these options, as the example of
``--with-incs-from`` shows. Just put a space between them.
configure doesn't detect *libXpm*
.................................
Check if you have a symbolic link from ``libXpm.so.4.9`` to ``libXpm.so``
Segmentation fault on startup
- Check if the version of *libXPM* you have is at least 4.7
- Check if you have an updated version of ``~/GNUstep/Defaults/WindowMaker``
If you're not sure, try renaming ``~/GNUstep`` to ``~/GNUtmp`` and then run
``wmaker.inst``
"...: your machine is misconfigured. gethostname() returned (none)"
...................................................................
the host name of your machine is set to something invalid, that starts with a parenthesis.
Do a ``man hostname`` for info about how to set it.
The root menu contains only 2 entries. ("XTerm" and "Exit...")
..............................................................
WINDOW MAKER could not read your menu definition file. You should check the
output of ``wmaker`` for an error, it may be visible in the console or in the
``.xsession-errors`` file.

BIN
screenshots/GoldUtop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -37,4 +37,7 @@ screenshots.
[![screenshot from khamsin](gryf-clearloks_thumb.jpg)](gryf-clearloks.png)
{:.gallery}
[![screenshot from khamsin](GoldUtop_thumb.jpg)](GoldUtop.png)
{:.gallery}
<div class="clear"></div>

View File

@@ -38,7 +38,9 @@ pre {
margin-bottom: 3em;
}
p.center {text-align: center}
.caption {text-align: center}
.center:not(.section), .center>h1, .center>h2{ text-align: center }
p.screenshot a img {
border: 1px solid black;
@@ -50,6 +52,15 @@ p.screenshot a img {
margin: auto;
}
/* guided tour */
#window-maker h1.title { text-align: center }
#window-maker #guided-tour img {
display:block;
margin-left: auto;
margin-right: auto;
}
/* gallery */
p.gallery {
@@ -77,6 +88,17 @@ div.gallery img {
clear: left;
}
div.figure img {
display: block;
border: 1px solid black;
box-shadow: 3px 7px 7px #606060;
margin: 0 auto;
}
div.figure.borderless img {
border: 0
}
/* logo */
header h1 a {
font-family: "DejaVu Sans", sans-serif;
@@ -195,6 +217,11 @@ header h1 a span.first {color: black}
border-right: 1px solid #555555;
}
/* TOC */
.contents p {
margin: 0.2em;
}
/* pre/code highlighted theme - taken from wombat256grf vim colorscheme */
.highlight { background-color: #242424 }
.highlight .c { color: #99968b; font-style: italic} /* Comment */