aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/info/mds.texinfo1182
1 files changed, 1181 insertions, 1 deletions
diff --git a/doc/info/mds.texinfo b/doc/info/mds.texinfo
index a86d114..dcbef84 100644
--- a/doc/info/mds.texinfo
+++ b/doc/info/mds.texinfo
@@ -100,11 +100,11 @@ Texts. A copy of the license is included in the section entitled
* Keyboard Codes:: Scancodes and keycodes.
* Keyboard Layouts:: Writing and compiling keyboard layouts.
* Accessibility:: Dealing with disabilities.
+* Specifications:: Specifications.
* Discussion:: Discussion on display server-architecture.
* GNU Free Documentation License:: Copying and sharing this manual.
@end menu
@c TODO New Concepts
-@c TODO Specifications
@@ -6338,6 +6338,1186 @@ max speed ((hold down time - delay) / time to max speed)^(1 + curve)
+@node Specifications
+@chapter Specifications
+
+@menu
+* Rat Cursors:: Rat cursor specifications.
+@end menu
+
+
+
+@node Rat Cursors
+@section Rat Cursors
+
+Rat cursor themes should not add shadows to the cursors.
+Shadows are added by the @command{mds-cursorshadow} server
+according to the user's specifications.
+
+@command{mds}'s rat cursors specifications is based on
+@url{http://www.freedesktop.org/wiki/Specifications/cursor-spec}.
+
+All rat cursor themes should include the cursors listed below.
+The icons are conceptual examples of how they can look.
+
+In addition to the cursors below, each of the may be accompanied
+with @code{X-press}, @code{X-hold} and @code{X-release}, where
+@code{X} is the name of the master icon. @code{X-press} is
+an animation from @code{X} to @code{X-hold} and is used when
+the cursor should transition from @code{X} to @code{X-hold}.
+@code{X-hold} is the version of @code{X} that should be used
+if any rat button is held down. @code{X} is an animation from
+@code{X-release} to @code{X} and is used when the cursor should
+transition from @code{X-release} to @code{X}. Clients should
+not set the cursor to either of them, it is up to the server
+to do this based on events from the rat device.
+
+@table @code
+@item default
+This is the default cursor. It is used as a fallback if no
+more fitting cursor is found; for example if a programs
+wants the cursor to be @command{pointer}, but the server
+is unable to find it, it will fallback to @command{default}.
+The server should provide its own fallback in case the theme
+is missing this cursor too.
+
+This cursor indicates that the interface is idle and prepared
+to accept commands from the user.
+
+This cursor is usually a north-west pointing arrow.
+For left-handed themes this cursor is usually a north-east
+pointing arrow.
+@example
+XX
+XXXX
+XXXXXX
+XXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXX XXXX
+XXXX XXXXXX
+XX XXXX
+ XXXXXX
+ XXXX
+ XXXX
+@end example
+
+@page
+@item text
+This cursor indicates the same state as @command{default}
+with he addition that the object beneath it can be
+right-clicked (left-clicked if left-handed) to open a
+context menu.
+
+This cursor is typically @command{default} combined with a
+small menu.
+@example
+XX XXXXXXXXXXXX
+XXXX XXXXXXXXXXXX
+XXXXXX XX XX
+XXXXXXXX XXXXXXXXXXXX
+XXXXXXXXXX XX XX
+XXXXXXXXXXXX XXXXXXXXXXXX
+XXXXXXXXXXXXXX XX XX
+XXXXXXXXXXXXXXXX XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXX XXXX
+XXXX XXXXXX
+XX XXXX
+ XXXXXX
+ XXXX
+ XXXX
+@end example
+
+@item text
+This cursor should be used when the rat pointers is above
+an horizontal text that can be selected and possibly edited.
+
+This cursor is usually a vertical I-beam.
+@example
+XXXXXXXXXXXXXX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XXXXXXXXXXXXXX
+@end example
+
+@item vertical-text
+This cursor should be used when the rat pointers is above
+an vertical text that can be selected and possibly edited.
+
+If this cursor is missing, @code{text} should be used as
+the first fallback.
+
+This cursor is usually a horizontal I-beam.
+@example
+XX XX
+XX XX
+XX XX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XX XX
+XX XX
+XX XX
+@end example
+
+@item progress
+This cursor indicates that the interface can
+be used as when @command{default} is used.
+But that the program is working in the background
+with command the user previously issued.
+
+This cursor is usually rendered as a combination
+of @command{default} and @command{wait}.
+@example
+XX XXXXXXXXXXXX
+XXXX XXXXXXXXXXXX
+XXXXXX XXXXXXXX
+XXXXXXXX XXXX
+XXXXXXXXXX XXXX
+XXXXXXXXXXXX XXXXXXXX
+XXXXXXXXXXXXXX XXXXXXXXXXXX
+XXXXXXXXXXXXXXXX XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXX XXXX
+XXXX XXXXXX
+XX XXXX
+ XXXXXX
+ XXXX
+ XXXX
+@end example
+
+@item wait
+This cursor indicates that the interface cannot
+be used because it is working or is blocked by
+an external resource.
+
+This cursor is typically rendered as a
+hourglass, watch, sundial or some sort
+of animated ring.
+@example
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+ XXXXXXXXXXXX
+ XXXXXXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXXXXXX
+ XXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item pointer
+This cursor indicates that the object beneath it
+is clickable. Typically a link in a web browser.
+However, it should not be used for pushbuttons
+and other user interface elements where it is
+apparent by design that the object is clickable.
+
+This cursor is usually a right hand (left hand if
+left-handed) pointing with the index-finger.
+@example
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX XXXX
+ XXXX XXXX XXXX
+ XX XXXX XXXX XXXX XXXX
+XXXXXX XXXXXXXXXXXXXXXX XXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@item help
+This cursor indicates that the interface is in
+context help mode. This is usually activated by
+clicking an help button --- which usally has a
+question mark on it --- on the titlebar.
+
+This cursor is typically renderas as @code{default}
+with a question mark next to it.
+@example
+XX XXXXXX
+XXXX XXXXXXXXXX
+XXXXXX XXXX XXXX
+XXXXXXXX XXXX
+XXXXXXXXXX XXXX
+XXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX XXXX
+XXXXXX XXXX XXXX
+XXXX XXXXXX
+XX XXXX
+ XXXXXX
+ XXXX
+ XXXX
+@end example
+
+@page
+@item drag
+This cursor indicates that an object is
+being dragged.
+
+This cursor is usually a closed right hand,
+or closed left hand if left-handed.
+@example
+ XXXX XXXX XXXX
+ XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@item copy
+This cursor indicates that the dragged object
+will be copied or listed upon release.
+
+If this cursor is missing, @code{drag} should
+be used as the first fallback.
+
+This cursor is usually rendered as
+@code{drag} with a plus-sign next to it.
+@example
+ XX
+ XX
+ XXXXXXXXXX
+ XX
+ XX
+
+ XXXX XXXX XXXX
+ XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item move
+This cursor indicates that the dragged object
+will be moved upon release, or otherwise
+acted upon.
+
+If this cursor is missing, @code{drag} should
+be used as the first fallback.
+
+This cursor is usually rendered as
+@code{drag} with an arrow next to it.
+The arrow is usually point north east,
+or north west if left-handed.
+@example
+ XXXXXX
+ XXXX
+ XX XX
+ XX
+ XX
+
+ XXXX XXXX XXXX
+ XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@item alias
+This cursor indicates that the dragged object
+will be aliased upon release, or otherwise
+acted upon. This may entail creating a symlink.
+
+If this cursor is missing, @code{drag} should
+be used as the first fallback.
+
+This cursor is usually rendered as
+@code{drag} with an two or three linked
+links next to it, or an arced arrow.
+@example
+ XXXX XXXX
+ XX XX
+ XX XXXXXXXX XX
+ XX XX
+ XXXX XXXX
+
+ XXXX XXXX XXXX
+ XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item no-drop
+This cursor indicates that the dragged object
+cannot be release where the rat pointer is
+located, but that the object beneath it usually
+allow drops of objects with similar class to
+the dragged object.
+
+If this cursor is missing, @code{not-allowed}
+should be used as the first fallback, and
+@code{drag} should be used as the second fallback.
+
+This cursor is typically rendered as a
+combination of @code{drag} and @code{not-allowed}.
+@example
+ XXXXXXXX
+ XX XXXX
+ XX XX XX
+ XX XX XX
+ XXXX XX
+ XXXXXXXX
+ XXXX XXXX XXXX
+ XXXXXXXXXXXXXXXX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXX
+@end example
+
+@item not-allowed
+This cursor indicates that the region beneath
+the rat pointer is invalid for the current
+operation.
+
+This cursor is often rendered as a circle with
+a diagonal line through it.
+@example
+ XXXXXXXX
+ XXXX XXXX
+ XX XX
+ XX XXXX
+ XX XX XX
+ XX XX XX
+XX XX XX
+XX XX XX
+XX XX XX
+XX XX XX
+ XX XX XX
+ XX XX XX
+ XXXX XX
+ XX XX
+ XXXX XXXX
+ XXXXXXXX
+@end example
+
+@page
+@item not-allowed
+This cursor is used to indicate that moving
+the rat will also move the object beneath
+below the cursor
+
+This cursor is often rendered as a combined
+vertical and horizontal twin-headed arrow.
+@example
+ XX
+ XXXXXX
+ XXXXXXXXXX
+ XX
+ XX
+ XX XX XX
+ XXXX XX XXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXX XX XXXX
+ XX XX XX
+ XX
+ XX
+ XXXXXXXXXX
+ XXXXXX
+ XX
+@end example
+
+@item up-arrow
+This cursor is typically used to identify an
+insertion point.
+
+It is often rendered an upwards pointing arrow.
+@example
+ XX
+ XXXXXX
+ XXXXXXXXXX
+XXXXXXXXXXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+@end example
+
+@item cell
+This cursor is often used in spread-sheet applications
+when selecting cells
+
+It is typically rendered as a thick plus-sign.
+@example
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+ XXXXXX
+@end example
+
+@item col-resize
+This cursor is used to indicate the the cursor is within a region
+that allows it rat to be used to resize a column.
+
+If this cursor is missing, @code{ew-resize} should
+be used as the first fallback, and @code{ew-select}
+should be used as the second fallback.
+
+This cursor is typically rendered as a vertical bar
+with an arrow from the left side pointing horizontally
+towards it and an arrow from the right side pointing
+horizontally towards it.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX XX XX
+ XXXX XX XXXX
+XXXXXXXXXXXX XX XXXXXXXXXXXX
+ XXXX XX XXXX
+ XX XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@item row-resize
+This cursor is used to indicate the the cursor is within a region
+that allows it rat to be used to resize a column.
+
+If this cursor is missing, @code{ns-resize} should
+be used as the first fallback, and @code{ns-select}
+should be used as the second fallback.
+
+This cursor is typically rendered as a horizontal bar
+with an arrow from the left side pointing vertically
+towards it and an arrow from the right side pointing
+vertically towards it.
+@example
+ XX
+ XX
+ XX
+ XXXXXXXXXX
+ XXXXXX
+ XX
+
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+ XX
+ XXXXXX
+ XXXXXXXXXX
+ XX
+ XX
+ XX
+@end example
+
+@page
+@item crosshair
+This cursor is used for precision drawing or
+precision manipulation of an area.
+
+This cursor typically a thin crosshair.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@item w-resize
+If this cursor is missing, @code{w-select}
+should be used as the first fallback,
+@code{ew-resize} should be used as the
+second fallback, @code{ew-select} should
+be used as the third fallback, and
+@code{col-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+west pointing arrow, optionally with a
+wall at the arrow head.
+@example
+XX XX
+XX XX
+XX XX
+XX XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XX XX
+XX XX
+XX XX
+@end example
+
+@item w-select
+If this cursor is missing, @code{w-resize}
+should be used as the first fallback,
+@code{ew-select} should be used as the
+second fallback, @code{ew-resize} should
+be used as the third fallback, and
+@code{col-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+west pointing arrow.
+@example
+ XX
+ XX
+ XX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XX
+ XX
+ XX
+@end example
+
+@page
+@item e-resize
+If this cursor is missing, @code{e-select}
+should be used as the first fallback,
+@code{ew-resize} should be used as the
+second fallback, @code{ew-select} should
+be used as the third fallback, and
+@code{col-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+east pointing arrow, optionally with a
+wall at the arrow head.
+@example
+ XX XX
+ XX XX
+ XX XX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX XX
+ XX XX
+ XX XX
+ XX XX
+@end example
+
+@item e-select
+If this cursor is missing, @code{e-resize}
+should be used as the first fallback,
+@code{ew-select} should be used as the
+second fallback, @code{ew-resize} should
+be used as the third fallback, and
+@code{col-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+east pointing arrow.
+@example
+ XX
+ XX
+ XX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XX
+ XX
+ XX
+@end example
+
+@item n-resize
+If this cursor is missing, @code{n-select}
+should be used as the first fallback,
+@code{ns-resize} should be used as the
+second fallback, @code{ns-select} should
+be used as the third fallback, and
+@code{row-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north pointing arrow, optionally with a
+wall at the arrow head.
+@example
+XXXXXXXXXXXXXX
+
+ XX
+ XXXXXX
+ XX XX XX
+XX XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@page
+@item n-select
+If this cursor is missing, @code{n-resize}
+should be used as the first fallback,
+@code{ns-select} should be used as the
+second fallback, @code{ns-resize} should
+be used as the third fallback, and
+@code{row-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north pointing arrow.
+@example
+ XX
+ XXXXXX
+ XX XX XX
+XX XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@item s-resize
+If this cursor is missing, @code{s-select}
+should be used as the first fallback,
+@code{ns-resize} should be used as the
+second fallback, @code{ns-select} should
+be used as the third fallback, and
+@code{row-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south pointing arrow, optionally with a
+wall at the arrow head.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX XX XX
+ XX XX XX
+ XXXXXX
+ XX
+
+XXXXXXXXXXXXXX
+@end example
+
+@page
+@item s-select
+If this cursor is missing, @code{s-resize}
+should be used as the first fallback,
+@code{ns-select} should be used as the
+second fallback, @code{ns-resize} should
+be used as the third fallback, and
+@code{row-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south pointing arrow.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX XX XX
+ XX XX XX
+ XXXXXX
+ XX
+@end example
+
+@item nw-resize
+If this cursor is missing, @code{nw-select}
+should be used as the first fallback,
+@code{nwse-resize} should be used as the
+second fallback, @code{nwse-select} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north-west pointing arrow, optionally
+with a corner at the arrow head.
+@example
+XXXXXXXXXXXXXXXXXX
+XX
+XX
+XX XXXXXXXXXXXX
+XX XXXX
+XX XX XX
+XX XX XX
+XX XX XX
+XX XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@page
+@item nw-select
+If this cursor is missing, @code{nw-resize}
+should be used as the first fallback,
+@code{nwse-select} should be used as the
+second fallback, @code{nwse-resize} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north-west pointing arrow.
+@example
+XXXXXXXXXXXX
+XXXX
+XX XX
+XX XX
+XX XX
+XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+@end example
+
+@item se-resize
+If this cursor is missing, @code{se-select}
+should be used as the first fallback,
+@code{nwse-resize} should be used as the
+second fallback, @code{nwse-select} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south-east pointing arrow, optionally
+with a corner at the arrow head.
+@example
+XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX XX XX
+ XX XX XX
+ XX XX XX
+ XX XX XX
+ XXXX XX
+ XXXXXXXXXXXX XX
+ XX
+ XX
+ XXXXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item se-select
+If this cursor is missing, @code{se-resize}
+should be used as the first fallback,
+@code{nwse-select} should be used as the
+second fallback, @code{nwse-resize} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south-east pointing arrow.
+@example
+XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX XX
+ XX XX
+ XX XX
+ XX XX
+ XXXX
+ XXXXXXXXXXXX
+@end example
+
+@item ne-resize
+If this cursor is missing, @code{ne-select}
+should be used as the first fallback,
+@code{nesw-resize} should be used as the
+second fallback, @code{nesw-select} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north-east pointing arrow, optionally
+with a corner at the arrow head.
+@example
+ XXXXXXXXXXXXXXXXXX
+ XX
+ XX
+ XXXXXXXXXXXX XX
+ XXXX XX
+ XX XX XX
+ XX XX XX
+ XX XX XX
+ XX XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX
+@end example
+
+@page
+@item ne-select
+If this cursor is missing, @code{ne-resize}
+should be used as the first fallback,
+@code{nesw-select} should be used as the
+second fallback, @code{nesw-resize} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+north-east pointing arrow.
+@example
+ XXXXXXXXXXXX
+ XXXX
+ XX XX
+ XX XX
+ XX XX
+ XX XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX
+@end example
+
+@item sw-resize
+If this cursor is missing, @code{sw-select}
+should be used as the first fallback,
+@code{nesw-resize} should be used as the
+second fallback, @code{nesw-select} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south-west pointing arrow, optionally
+with a corner at the arrow head.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX XX XX
+XX XX XX
+XX XX XX
+XX XX XX
+XX XXXX
+XX XXXXXXXXXXXX
+XX
+XX
+XXXXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item sw-select
+If this cursor is missing, @code{sw-resize}
+should be used as the first fallback,
+@code{nesw-select} should be used as the
+second fallback, @code{nesw-resize} should
+be used as the third fallback, and
+@code{all-resize}. should be used as
+the fourth fallback.
+
+This cursor is typically rendered as a
+south-west pointing arrow.
+@example
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX XX
+XX XX
+XX XX
+XX XX
+XXXX
+XXXXXXXXXXXX
+@end example
+
+@item ew-resize
+If this cursor is missing, @code{ew-select}
+should be used as the first fallback, and
+@code{col-resize}. should be used as the
+second fallback.
+
+This cursor is typically rendered as a
+east and west pointing twin-arrow,
+optionally with a corner at the arrow heads.
+@example
+XX XX XX XX
+XX XX XX XX
+XX XX XX XX
+XX XXXXXXXXXXXXXXXXXXXXXXXX XX
+XX XX XX XX
+XX XX XX XX
+XX XX XX XX
+@end example
+
+@item ew-select
+If this cursor is missing, @code{ew-resize}
+should be used as the first fallback, and
+@code{col-resize}. should be used as the
+second fallback.
+
+This cursor is typically rendered as a
+east and west pointing twin-arrow.
+@example
+ XX XX
+ XX XX
+ XX XX
+XXXXXXXXXXXXXXXXXXXXXXXX
+ XX XX
+ XX XX
+ XX XX
+@end example
+
+@page
+@item ns-resize
+If this cursor is missing, @code{ns-select}
+should be used as the first fallback, and
+@code{row-resize}. should be used as the
+second fallback.
+
+This cursor is typically rendered as a
+north and south pointing twin-arrow,
+optionally with a corner at the arrow heads.
+@example
+XXXXXXXXXXXXXX
+
+ XX
+ XXXXXX
+ XX XX XX
+XX XX XX
+ XX
+ XX
+ XX
+ XX
+XX XX XX
+ XX XX XX
+ XXXXXX
+ XX
+
+XXXXXXXXXXXXXX
+@end example
+
+@item ns-select
+If this cursor is missing, @code{ns-resize}
+should be used as the first fallback, and
+@code{row-resize}. should be used as the
+second fallback.
+
+This cursor is typically rendered as a
+north and south pointing twin-arrow.
+@example
+ XX
+ XXXXXX
+ XX XX XX
+XX XX XX
+ XX
+ XX
+ XX
+ XX
+XX XX XX
+ XX XX XX
+ XXXXXX
+ XX
+@end example
+
+@page
+@item nwse-resize
+If this cursor is missing, @code{all-resize}
+should be used as the first fallback.
+
+This cursor is typically rendered as a
+north-west and south-east pointing twin-arrow,
+optionally with a corner at the arrow heads.
+@example
+XXXXXXXXXXXXXXXXXX
+XX
+XX
+XX XXXXXXXXXXXX
+XX XXXX
+XX XX XX
+XX XX XX
+XX XX XX XX XX
+XX XX XX XX XX
+ XX XX XX
+ XX XX XX
+ XXXX XX
+ XXXXXXXXXXXX XX
+ XX
+ XX
+ XXXXXXXXXXXXXXXXXX
+@end example
+
+@item nesw-resize
+If this cursor is missing, @code{all-resize}
+should be used as the first fallback.
+
+This cursor is typically rendered as a
+north-east and south-west pointing twin-arrow,
+optionally with a corner at the arrow heads.
+@example
+ XXXXXXXXXXXXXXXXXX
+ XX
+ XX
+ XXXXXXXXXXXX XX
+ XXXX XX
+ XX XX XX
+ XX XX XX
+XX XX XX XX XX
+XX XX XX XX XX
+XX XX XX
+XX XX XX
+XX XXXX
+XX XXXXXXXXXXXX
+XX
+XX
+XXXXXXXXXXXXXXXXXX
+@end example
+
+@page
+@item all-resize
+This cursor is typically rendered as a cross
+between a north-east and south-west pointing
+twin-arrow and a north-west and south-east
+pointing twin-arrow, optionally with a corner
+at the arrow heads.
+@example
+XXXXXXXXXX XXXXXXXXXX
+XXXX XXXX
+XX XX XX XX
+XX XX XX XX
+XX XX XX XX
+ XX XX
+ XX XX
+ XX
+ XX XX
+ XX XX
+XX XX XX XX
+XX XX XX XX
+XX XX XX XX
+XXXX XXXX
+XXXXXXXXXX XXXXXXXXXX
+@end example
+@end table
+
+
+
@node Discussion
@chapter Discussion