9wm Version 1.3.4
=================

9wm is an X11 window manager inspired by the Plan 9 window manager 8½.
It provides a very simple and clean user interface.
It is click-to-type.
It uses the X11 font system (which, unfortunately, means no Unicode support).

9wm does not provide virtual desktops, customization, key bindings,
or compositing.
It does not allocate any colors,
which will be great news if you are stuck in 1993.

9wm is distributed under [an MIT License](LICENSE).


Where do I get it?
==================

The latest version of 9wm is held at <https://github.com/nealey/9wm>


How do I use it?
================

The focused window has a black border.
Mouse and keyboard events go to this window.
Left click a non-focused window (white border) to focus it.

Right-click anywhere other than the focused window,
including in any non-focused window,
to bring up a menu.
All further actions are done with the right mouse button.
The menu has options for:

* New: launch a new xterm
* Reshape: select a window, draw new rectangle for its size
* Move: drag a window around
* Delete: kill (close) a window
* Hide: hide (iconify) a window

Beneath the first 5 items are a list of all hidden windows.

Middle-click anywhere other than the focused window
to run "mm mouse2".
It's up to you to write an "mm" program and put it in your path somewhere,
if you want to use this for something.
I have mine run "google-chrome-stable --show-app-list".


What if I find a bug?
=====================

Please mail all bug reports to neale@woozle.org, so
that I can incorporate fixes into the next release.  If you can
tell me how to fix it, all the better.


Known Problems/Bugs
===================

9wm uses ideas from plan9port's `rio`,
but is following a different path and is not exactly the same.

In an attempt to avoid ludicrously long window names in the menu,
9wm shortens names with colons and dashes in them.
The algorithm works well for most programs I've tried,
but is bound to fail with something or other,
rendering a near-useless icon name.

Windows that provide their own placement information aren't handled well right now.
I'm working on it.

9wm has no idea how many monitors you have,
nor what their dimensions are.
It also can't deal with desktop geometry changes,
like plugging in an external monitor.
I run "9wm restart" to make it quickly reset its internal state and notice any changes.

9wm doesn't have Unicode support.
In particular, if you have a browser page open with non-Latin characters in the name,
and you hide that window,
you will get a weird name for that window's entry in the list.
Doing Unicode in X11 is a horrible mess requiring,
among other things, a whole new library for rendering text.
I may get to this in the future, but for now,
I feel like learning about Wayland is a better use of my effort.



Acknowledgements
================

Thanks to the late David Hogan for writing 9wm.

Thanks to Rob Pike for writing the original 8-1/2 program (and
before that, mux) which inspired the writing of 9wm.

Thanks to John Mackin, whose gwm "wool code" for emulating mux
was also an inspiration: I used it (and hacked it) until I got
too frustrated with gwm's large memory requirements and lack of
speed (sorry Colas!), and decided to write a dedicated program.

Thanks to Matthew Farrow for writing 9term.

A big thanks to Dave Edmondson for adding support for
multi-screen displays.

The following people helped beta test 9wm:

	John Mackin
	Noel Hunt
	Fred Curtis
	James Matthew Farrow
	Danny Yee
	Arnold Robbins
	Byron Rakitzis
	micro@cooper.edu


Author
======

9wm was written by David Hogan (dhog@cs.su.oz.au), a postgraduate
student at the Basser Department of Computer Science, University
of Sydney <http://unauthorised.org/dhog/index.html>

David Hogan died in 2003.
9wm is now maintained by Neale Pickett <neale@woozle.org>.


