Window Maker for DEBIAN
=======================

This is Debian GNU/Linux's prepackaged version of Window Maker, yet
another window manager, written mostly from scratch by Alfredo Kojima
in an attempt to provide as much of the useful OpenStep functionality
as possible under X11.  It is the natural step after AfterStep.

There are some changes in the paths and improved user configuration
(from the sysadmin point of view).

To run Window Maker put this at the end of ~/.xsession:

exec /usr/bin/wmaker

and remove other exec lines if present.  I have done my best to
overcome certain glitches and gotchas regarding Window Maker
installation. /usr/bin/wmaker is a shell script that tries to
make sure things are properly set up.  Take a look at it to see what's
going on.  Please read wmaker(1).


Other sources for documentation
-------------------------------

* The Window Maker web site
  http://www.windowmaker.org/

  You can find all sorts of information here. It's kept very up to
  date.

* The Window Maker manual written by Alfredo Kojima
  ftp://ftp.windowmaker.org/pub/wmaker/docs/

  Please note the manual documents version 0.10.x of Window Maker, and
  many features/changes have occurred since then.  To find out what has
  changed, please read file:/usr/share/doc/wmaker/NEWS.gz and
  file:/usr/share/doc/wmaker/changelog.gz.  A new version of this manual is
  being developed.  If you want to contribute to the manual please
  contact wm-user@windowmaker.info

* The Window Maker mailing list
  http://www.windowmaker.org/lists.php

  There's a Window Maker mailing list.  There you can ask questions about
  Window Maker and *related* applications (s/n is _way_ low nowadays
  due to unrelated discussions).

  Please read the archives before asking!

* The Window Maker FAQ
  http://www.dpo.uab.edu/~grapeape/wmfaq.html

  This is NOT file:/usr/share/doc/wmaker/FAQ.gz, but another document.
  It contains information about several aspects of Window Maker that are
  not covered on the FAQ included alongside with this Readme.

* The Window Maker Configuration documents
  ftp://ftp.windowmaker.info/pub/wmaker/docs/WindowMaker-*-Config.txt.gz

  This documents the files found on ~/GNUstep/Defaults/. It's kept as
  up to date as possible.

As a sidenote, I can't package these files with wmaker because they
don't have a copyright statement that permits redistribution.

Debian specific notes
---------------------

Debian prepackaged version of Window Maker will search
~/GNUstep/Library/WindowMaker and /usr/share/WindowMaker (in that order)
for its configuration files. It will read defaults from files in
~/GNUstep/Defaults and /etc/GNUstep/Defaults. The files in the
WindowMaker directories have cpp-like format and are preprocessed by
WindowMaker. It will read both WindowMaker directories searching for
#included files.

WindowMaker makes a (little) difference between Pixmaps and Icons, and
there are two configurable options for setting the paths Window Maker
would search Pixmaps and Icons in, namely, PixmapPath and
IconPath. The compiled in defaults are:

  PixmapPath = (
    "~/GNUstep/Library/WindowMaker/Pixmaps",
    "~/GNUstep/Library/WindowMaker/Backgrounds",
    "/usr/local/share/WindowMaker/Pixmaps",
    "/usr/local/share/WindowMaker/Backgrounds",
    "/usr/share/WindowMaker/Backgrounds",
    "/usr/share/WindowMaker/Pixmaps",
    "/usr/local/share/pixmaps",
    "/usr/share/pixmaps",
  );

  IconPath = (
    "~/GNUstep/Library/Icons",
    "/usr/local/share/WindowMaker/Icons",
    "/usr/share/WindowMaker/Icons",
    "/usr/local/share/icons",
    "/usr/share/icons",
  );

Please note that the internal default doesn't include the "Pixmaps"
paths anymore, but you are free to modify your Window Maker file in any
way you see fit.

Other Window Maker packages should put pixmaps in
/usr/share/WindowMaker/Pixmaps and icons in
/usr/share/WindowMaker/Icons, ONLY.

The structure Window Maker tries to use is like this:

GNUstep
  +.AppInfo
  +Defaults
  +Library
     +WindowMaker
        + Backgrounds [*]
        + IconSets [*]
        + Pixmaps
        + Sounds
        + Styles [*]
        + Themes [*]
     +Icons

Please note Icons are not considered Window Maker-only resources.

[*] these directories are OPEN_MENU'ed WITH the right
application. That means you can put the *file* "Great Debian Theme" on
Themes, it will show up in the menu, and will be opened using
setstyle, which installs it, i.e., sets that theme as the current
theme.

If you don't like the arrangement of the Appearance menu, you can put
a file "appearance.menu" in ~/GNUstep/Library/WindowMaker, and it will
override the default one. Look at /usr/share/WindowMaker/appearance.menu
for an example.

Sound Support
-------------

This version of Window Maker is compiled with sound support. The sound
server is available as a separate package, but may not be in sync with
the current release.

Changing the menus (or "WPrefs segfaults when I click the cute menu icon")
--------------------------------------------------------------------------

First of all, I have this urge to say that it doesn't segfault for
me.  It gives me a nice warning about being unable to use my current
menu.

The problem is that wmaker now is capable of using a new type of menu,
namely a PropList menu.  It looks something like this:

(
  Applications,
  (Debian, OPEN_MENU, menu.hook),
  (
    WorkSpace,
    (Appearance, OPEN_MENU, appearance.menu),
    (Workspaces, WORKSPACE_MENU),
    ("Arrange Icons", ARRANGE_ICONS),
    ("Hide Others", HIDE_OTHERS),
    ("Show All Windows", SHOW_ALL),
    ("Clear Session", CLEAR_SESSION),
    ("Save Session", EXEC, "")
  ),
  (About..., INFO_PANEL),
  (Exit, SHUTDOWN)
)

That cute looking menu button (let's call it by its name: the Menu
Guru) in WPrefs expects to find a menu in this format.  I considered
changing the menu-method to something that spits out a menu in this
format (it's quite easy) but there's a little tiny problem: see that
line that reads "OPEN_MENU" in the example above... well, it happens
that appearance.menu has to be in the old format.  That means that if
I make the menu method produce a new style menu, that menu has to be
the root menu.  And that is not a good idea (the reason is left as an
exercise to the reader, take into account the people that aren't using
menu.hook as the root menu in the first place).

Still want to use WPrefs to edit you menu? Cut and paste the example
above into ~/GNUstep/Defaults/WMRootMenu, start WPrefs, click the Menu
Guru (the 9th icon, left to right).  Now go read the docs.  That's the
reason they are there.

FreeDesktop menu
----------------

As of policy version 3.9.8, the Debian menu has been deprecated in favor
of the FreeDesktop menu standard.

There is currently not a menu for Window Maker which is 100% compatible
with the standards.  But several options exist which offer a decent
approximation.

* The wmmenugen utility included with Window Maker, e.g.

      wmmenugen -parser:xdg /usr/share/applications/

  This is the option used by the default menu, which may be found in
  /etc/GNUstep/Defaults/plmenu.Debian.  This is symlinked by
  /usr/share/WindowMaker/menu.hook.

* xdgmenumaker (https://github.com/gapan/xdgmenumaker)

* xdg-menu (https://wiki.archlinux.org/index.php/xdg-menu)

Marcelo E. Magallon <mmagallo@debian.org>, Thr, 1 Apr 1999 18:47:30 -0600

 -- Doug Torrance <dtorrance@piedmont.edu>, Sun,  5 Apr 2020 20:09:38 -0400
