summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérémie Courrèges-Anglas <jca@wxcvbn.org>2014-02-20 01:20:05 +0100
committerJérémie Courrèges-Anglas <jca@wxcvbn.org>2014-02-20 01:50:31 +0100
commit571fedb62290ec6fc059830efc6ffaaff337e3d2 (patch)
tree08113a980ec5f09b2db3875bc65f8ba70697ea9e
parent9a65f65f5ed3be2eb1deefa97e797ee64137ba50 (diff)
downloadratpoison-571fedb62290ec6fc059830efc6ffaaff337e3d2.zip
Replace man(7) manpage with a mdoc(7)-formatted one.
* The former manpage needed Groff to be properly formatted, this is a dependancy I want to remove. Support for systems where neither groff nor mandoc are available is achieved by generating a man(7) manpage, which will be shipped in the tarballs. * The mdoc(7) language provides semantic annotations for better documentation of Unix utilities, contrary to man(7) which provides mere presentation markup. * The build system now encodes paths in the manpage according to the settings passed to ./configure. Note that some markup used may not be perfectly appropriate. Comments about this matter, and questions from distro maintainers using manpage patches are welcome. Selected reading: - http://mdocml.bsd.lv general information about mdoc(7) - http://mdocml.bsd.lv/mdoc.7.html mdoc(7) macros reference - http://manpages.bsd.lv/ mdoc(7) tutorial
-rw-r--r--configure.ac17
-rw-r--r--doc/.gitignore2
-rw-r--r--doc/Makefile.am19
-rw-r--r--doc/ratpoison.1841
-rw-r--r--doc/ratpoison.mdoc.11175
5 files changed, 1211 insertions, 843 deletions
diff --git a/configure.ac b/configure.ac
index bed8112..bc1aa03 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,8 +80,25 @@ fi
AC_SUBST(XFT_CFLAGS)
AC_SUBST(XFT_LIBS)
+AC_MSG_CHECKING([manpage format])
+AC_ARG_ENABLE([mdoc],
+ [AS_HELP_STRING([--disable-mdoc],
+ [install man(7) manpages, useful if you don't have a mdoc(7) formatter\
+ such as mandoc(1) or groff(1)])],
+ [], [enable_mdoc=yes])
+AS_CASE([$enable_mdoc],
+ [yes], [manpage_format=mdoc],
+ [no], [manpage_format=man],
+ [AC_MSG_ERROR([invalid --disable-mdoc="$enable_mdoc" parameter])])
+AC_MSG_RESULT([$manpage_format])
+AC_SUBST([manpage_format])
+
dnl Checks for programs.
AC_PROG_CC
+AC_PATH_PROG([MANDOC], [mandoc])
+AC_ARG_VAR([MANDOC],
+ [path to mandoc(1), only used when regenerating doc/ratpoison.man.1 \
+ after editing doc/ratpoison.mdoc.1])
if test "x$CC" = "xgcc"; then
CFLAGS="-Wall $CFLAGS"
diff --git a/doc/.gitignore b/doc/.gitignore
index 96a20f1..22a34ab 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,3 +1,5 @@
texinfo.tex
ratpoison.info
ratpoison.html/
+ratpoison.1
+ratpoison.man.1
diff --git a/doc/Makefile.am b/doc/Makefile.am
index e653893..1b8da1c 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -19,5 +19,20 @@
info_TEXINFOS = ratpoison.texi
man_MANS = ratpoison.1
-EXTRA_DIST = $(man_MANS) sample.ratpoisonrc ipaq.ratpoisonrc fdl.texi
-MAINTAINERCLEANFILES = Makefile.in texinfo.tex
+CLEANFILES = ratpoison.1
+EXTRA_DIST = $(srcdir)/ratpoison.mdoc.1 $(srcdir)/ratpoison.man.1 sample.ratpoisonrc ipaq.ratpoisonrc fdl.texi
+MAINTAINERCLEANFILES = $(srcdir)/ratpoison.man.1 Makefile.in texinfo.tex
+
+ratpoison.1: $(srcdir)/ratpoison.$(manpage_format).1 Makefile
+ tmp=`mktemp` && \
+ sed -e 's|%%sysconfdir%%|$(sysconfdir)|g' \
+ -e 's|%%docdir%%|$(docdir)|g' \
+ < $(srcdir)/ratpoison.$(manpage_format).1 > "$$tmp" && \
+ chmod 0644 "$$tmp" && \
+ mv "$$tmp" ratpoison.1
+
+$(srcdir)/ratpoison.man.1: $(srcdir)/ratpoison.mdoc.1
+ tmp=`mktemp` && \
+ $(MANDOC) -Tman < $(srcdir)/ratpoison.mdoc.1 > "$$tmp" && \
+ chmod 0644 "$$tmp" && \
+ mv "$$tmp" $(srcdir)/ratpoison.man.1
diff --git a/doc/ratpoison.1 b/doc/ratpoison.1
deleted file mode 100644
index 45ac05f..0000000
--- a/doc/ratpoison.1
+++ /dev/null
@@ -1,841 +0,0 @@
-.TH RATPOISON 1 2008-06-15
-\# This man page is free software; you can redistribute it and/or modify
-\# it under the terms of the GNU General Public License as published by
-\# the Free Software Foundation; either version 2, or (at your option)
-\# any later version.
-\#
-\# This man page is distributed in the hope that it will be useful,
-\# but WITHOUT ANY WARRANTY; without even the implied warranty of
-\# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-\# GNU General Public License for more details.
-\#
-\# You should have received a copy of the GNU General Public License
-\# along with this software; see the file COPYING. If not, write to
-\# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-\# Boston, MA 02111-1307 USA
-.de command
-. ds command@tmp \fB\\$1\fP
-. nr command@space 1
-. shift
-. while \\n[.$] \{\
-. ie '\\$1'[' \{\
-. if ( \\n[command@space] == 1 ) .as command@tmp \& \&
-. as command@tmp [
-. nr command@space 0
-. \}
-. el .ie '\\$1']' \{\
-. as command@tmp ]
-. nr command@space 1
-. \}
-. el .ie '\\$1'|' \{\
-. as command@tmp |
-. nr command@space 0
-. \}
-. el .ie '\\$1'(' \{\
-. as command@tmp \& (\fB
-. nr command@space 0
-. shift
-. while !'\\$1')' \{\
-. ie '\\$1'|' .as command@tmp \fP|\fB\h'-1'
-. el \{\
-. if ( \\n[command@space] == 1 ) .as command@tmp \& \&
-. as command@tmp \\$1
-. nr command@space 1
-. \}
-. shift
-. \}
-. shift
-. as command@tmp \fP)
-. nr command@space 0
-. \}
-. el \{\
-. if ( \\n[command@space] == 1 ) .as command@tmp \& \&
-. as command@tmp \fI\\$1\fR
-. nr command@space 1
-. \}
-. shift
-. \}
-\&\\*[command@tmp]
-..
-.de cmd
-.TP
-.command \\$@
-.br
-..
-.de var
-.TP
-.command \\$@
-.br
-..
-.SH NAME
-ratpoison \- window manager without mouse dependency
-.P
-.SH SYNOPSIS
-.B ratpoison \-\-help
-|
-.B \-\-version
-.br
-.B ratpoison
-.RB [ \-d
-.IR dpy ]
-.RB [ \-s
-.IR num ]
-.RB [ \-f
-.IR file ]
-.br
-.B ratpoison
-.RB [ \-d
-.IR dpy ]
-.RB [ \-s
-.IR num ]
-.RB [ \-i ]
-.B \-c
-.IR command
-.RB [ \-c
-.I command
-\&... ]
-.SH DESCRIPTION
-Ratpoison is a Window Manager without fat library
-dependencies, fancy graphics or rat dependence.
-
-The screen can be split into non-overlapping frames. All
-windows are kept maximized inside their frames.
-
-All interaction with the window manager is done through
-keystrokes. ratpoison has a prefix map to minimize
-key clobbering.
-.SH OPTIONS
-.TP
-.B \-h, \-\-help
-Show summary of options.
-.TP
-.B \-v, \-\-version
-Show version of program.
-.TP
-.B \-d, \-\-display \fIdisplay\fP
-Set the X display to use or send commands to.
-.TP
-.B \-s, \-\-screen \fInumber\fP
-Only use the specified screen.
-.TP
-.B \-f, \-\-file \fIfilename\fP
-Specify an alternate configuration file.
-If this is not given, ratpoison will try
-.B $HOME/.ratpoisonrc
-and if that does not exist
-.B /etc/ratpoisonrc
-and execute each command when starting up.
-.TP
-.B \-i, \-\-interactive
-Execute commands given with
-.B \-c
-or
-.B \-\-command
-in interactive mode.
-That means it will behave exactly as if called with
-.B C\-t :
-like prompting for missing arguments and things like that.
-.TP
-.B \-c, \-\-command
-Send ratpoison a command.
-There must be a ratpoison instance
-running as window manager for the given display/screen for
-this to work.
-Do not forget to quote the command if it contains
-spaces.
-For example:
-.br
-\fBratpoison \-c "echo hello world"\fP
-.SH KEY BINDINGS
-To avoid conflicts with other programs, all default ratpoison
-key bindings start with an escape key, per default
-.B C\-t
-(read Control\-t).
-Some important default key bindings:
-.PP
-.B C\-t ?\&
-Show key bindings
-.br
-.B C\-t c
-Start an X terminal
-.br
-.B C\-t n
-Switch to next window
-.br
-.B C\-t p
-Switch to previous window
-.br
-.B C\-t 1\fP|\fB2\fP|\fB3\fP|\fB4\fP|\fB5\fP|\fB6\fP|\fB7\fP|\fB8\fP|\fB9
-Switch to window number 1|2|...
-.br
-.B C\-t k
-Close the current window
-.br
-.B C\-t K
-XKill the current application
-.br
-.B C\-t s\fP|\fBS
-Split the current frame into two vertical|horizontal ones
-.br
-.B C\-t Tab\fP|\fBLeft\fP|\fBUp\fP|\fBRight\fP|\fBDown
-Switch to the next|left|top|right|bottom frame.
-.br
-.B C\-t Q
-Make the current frame the only one
-.br
-.B C\-t :
-Execute a ratpoison command
-.PP
-Further default key bindings can be found in parentheses
-after the commands in the next section:
-.SH COMMANDS AND DEFAULT ALIASES
-.cmd abort ( C\-t C\-g )
-Do nothing and that successfully.
-(Useful if you pressed
-\fBC\-t\fP in error).
-.cmd addhook event command
-Add a hook: Run command \fIcommand\fP whenever \fIevent\fP
-is called.
-Possible events are:
-.ta 10
-.br
-\fBdeletewindow\fP Run after a window is withdrawn.
-.br
-\fBnewwindow\fP Run after a new window is mapped.
-.br
-\fBkey\fP Run whenever a top level key is pressed.
-(by default \fBC\-t\fP)
-.br
-\fBquit\fP Run before exiting ratpoison.
-.br
-\fBrestart\fP Run before restarting ratpoison.
-.br
-\fBswitchframe\fP Run after a frame actually switched,
-but before the window in it is focused.
-.br
-\fBswitchgroup\fP Run after selecting a new group.
-.br
-\fBswitchwin\fP Run after a new window is selected.
-(With dedication,
-it may already be inactive again, if it was put into another frame)
-.br
-\fBtitlechanged\fP Run when the current window's title changes.
-.cmd alias alias command
-Add \fIalias\fP as new way to call \fIcommand\fP.
-.cmd bind key command
-alias for "\fBdefinekey root\fP \fIkey\fP \fIcommand\fP"
-.cmd banish ( C\-t b )
-Banish the rat cursor to the lower right corner of the screen.
-.cmd banishrel
-Banish the rat cursor to the lower right corner of the current window.
-If there isn't a window in the current frame, it banishes the rat cursor
-to the lower right corner of the frame.
-.cmd chdir [ directory ]
-If the optional argument is given, change the current directory
-of ratpoison to \fIdirectory\fP.
-If nothing is given, change
-it to the value of the environment variable "HOME".
-.cmd clrunmanaged
-Clears the unmanaged window list.
-.cmd cnext
-Like \fBnext\fP but switch to the next window with another
-resource class than the current one.
-(That means the next window belonging to another type of application
- than the current one.)
-.cmd cprev
-Like \fBprev\fP but switch to the previous window with another
-resource class than the current one.
-(That means the previous window belonging to another type of application
- than the current one.)
-.cmd colon ratpoison\-command ( C\-t : )
-Execute \fIratpoison\-command\fP interactively. (i.e. ask for possible
-missing arguments.)
-.cmd compat
-Add aliases for the new \fBset\fP commands starting with \fBdef\fP to support older
-scripts.
-.cmd cother
-Like \fBother\fP but switch to the window of the current group that was last
-accessed and has another resource class but is not currently visible.
-.cmd curframe ( C\-t F )
-Show a bar marking the current frame.
-.cmd definekey keymap key command
-Add a new key binding in \fIkeymap\fP for \fIkey\fP to execute \fIcommand\fP.
-Default keymaps are \fBtop\fP normally only containing \fBC\-t\fP, which
-reads a key from \fBroot\fP, containing all the normal commands.
-
-Note that you have to describe ":" by "colon", "!" by "exclam" and so on.
-If you cannot guess a name of a key, try either \fBC\-t\fP \fIkey\fP
-and look at the error message, or try \fB:describekey root\fP and pressing
-the key.
-.cmd def...
-When \fBcompat\fP was called there are some aliases starting with \fIdef\fP, which
-alias the new form with \fBset\fP. I.e. instead of \fB defresizeunit\fP
-better use the new \fBset resizeunit\fP and so on...
-.cmd dedicate [ \fB0 | \fB1\fP ]
-Consider the current frame dedicated/chaste (\fB1\fP) or promiscuous (\fB0\fP).
-.br
-A dedicated frame will not accept new windows.
-When new windows are to be focused, they will be opened in a non-dedicated
-frame instead.
-.br
-If no argument is given, toggle the current dedicateness. By default no
-windows are dedicated.
-.cmd delete ( C\-t k )
-Close the current window.
-.cmd delkmap keymap
-Deletes the keymap named \fIkeymap\fP, that was generated
-with \fBnewkmap\fP. The keymaps \fBtop\fP
-(or whatever was specified by \fBset topkmap\fP) and \fBroot\fP
-cannot be deleted.
-.cmd describekey keymap
-Grab the next key. Similar to \fBreadkey\fP, describekey
-shows only the command in \fIkeymap\fP,
-that would be executed by \fBreadkey\fP.
-.cmd echo text
-Show \fItext\fP as ratpoison message.
-.cmd escape key
-Update the default escape key to \fIkey\fP.
-.br
-Strictly speaking it updates the the \fBreadkey root\fP command
-in the keymap \fBtop\fP to \fIkey\fP, the \fBother\fP binding
-in \fBroot\fP to \fIkey\fP, and \fBmeta\fP binding in \fBroot\fP
-to \fIkey\fP without modifiers or \fBC\-\fP\fIkey\fP if \fIkey\fP
-has no modifiers.
-(If \fBset topkmap\fP was called with an argument other than \fBtop\fP
-that will be used instead of \fBtop\fP.)
-.cmd exchangedown ( C\-t C\-Down )
-Exchange the window in the current frame with the window in the frame below the current frame.
-.cmd exchangeleft ( C\-t C\-Left )
-Exchange the window in the current frame with the window in the frame left of the current frame.
-.cmd exchangeright ( C\-t C\-Right )
-Exchange the window in the current frame with the window in the frame right of the current frame.
-.cmd exchangeup ( C\-t C\-Up )
-Exchange the window in the current frame with the window in the frame above the current frame.
-.cmd exec shell\-command ( C\-t ! )
-Spawn a shell executing \fIshell\-command\fP.
-.cmd execa shell\-command
-Spawn a shell executing \fIshell\-command\fP, without remembering
-the current frame, so that _NET_WM_PID declaring programs will be
-placed into the frame active when they open a window instead of
-the frame active when ratpoison gets this command.
-.cmd execf frame shell\-command
-Spawn a shell executing \fIshell\-command\fP, showing _NET_WM_PID
-supporting programs in the given frame instead of the frame selected
-when this program is run.
-.cmd fdump [ screenno ]
-Output the defining data for all frames of the current screen, or
-for screen number \fIscreenno\fP if this is specified.
-.cmd focus ( C\-t Tab )
-Focus the next frame.
-.cmd focuslast
-Switch to the last selected focus.
-.cmd focusleft ( C\-t Left )
-Switch to the frame to the left of the current one.
-.cmd focusdown ( C\-t Down )
-Switch to the frame beneath the current one.
-.cmd focusright ( C\-t Right )
-Switch to the frame to the right of the current one.
-.cmd focusprev
-Focus the previous frame.
-.cmd focusup ( C\-t Up )
-Switch to the frame above the current one.
-.cmd frestore frames
-Replace the current frames with the ones specified in \fIframes\fP in the
-format as generated by \fBfdump\fP.
-.cmd fselect [ frameno ] ( C\-t f )
-If an argument is supplied, switch to a frame given by number \fIframeno\fP.
-
-If no argument is given, show a frame selector in each frame and wait for
-a key to be pressed.
-If the key matches an existing frame selector, this frame gets focused.
-
-Frame selectors are by default the numbers starting with zero, but they
-can be changed by \fBset\fPing \fBframesels\fP.
-.cmd gdelete [ group ]
-If the optional argument \fIgroup\fP is supplied, delete group
-\fIgroup\fP. Otherwise delete the current group.
-If the last
-group is deleted, a new group with name \fBdefault\fP is created.
-The group has to be empty, otherwise it cannot be deleted.
-.cmd getenv variable
-Output the value of the environment variable \fIvariable\fP.
-.cmd getsel
-Paste the current X Selection into the current window.
-.cmd gmerge group
-Move all windows from group \fIgroup\fP into the current group.
-.cmd gmove group
-Move the current window into group \fIgroup\fP.
-.cmd gnew group
-Create a new group with name \fIgroup\fP and select it.
-Most window commands only see (and thus select, consider next,
-previous or last) windows within the group active when they are
-issued.
-.cmd gnewbg group
-Create a new group named \fIgroupf\fP, but do not select it.
-.cmd gnext
-Select the next group. Most window commands only see windows in the
-effective group.
-.cmd gnumber
-Give the number \fInew\fP to the group with the number \fIold\fP or
-the current group.
-.cmd gother
-Select the last accessed group. Most window commands only see windows in the
-effective group.
-.cmd gprev
-Select the prior group. Most window commands only see windows in the
-effective group.
-.cmd gravity [ \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse ]
-Change how in its frame the current window is aligned.
-.cmd grename
-Rename current group.
-.cmd groups
-Output a list of all groups with their number.
-.cmd gselect group
-Select the group names \fIgroup\fP.
-.cmd help [ keymap ]
-If the optional parameter \fIkeymap\fP is given,
-list all keybindings in this keymap,
-otherwise list all key bindings in keymap \fIroot\fP.
-.cmd hsplit [ l\fB/\fR\fIp | "pixels from left" | "\fB\-\fR\fIpixels from right" ] ( C\-t S )
-Split the current frame into left frame and a right frame.
-If no parameter is given, split in halves.
-If two numbers separated
-by a slash\ ("\fB/\fP") are given, the left one is \fIl\fP times the \fIp\fPth part
-and the right one (\fIp\fP\-\fIl\fP) times the \fIp\fPth part of the prior width.
-Otherwise the right one is \fIpixels from right\fP wide or the left one
-\fIpixels from left\fP wide, depending whether there is \fB\-\fP in front of
-the number or not.
-.cmd inext
-Like \fBnext\fP but switch to the next window with the same
-resource class as the current one.
-(That means the next window belonging to the same application
- as the current one.)
-.cmd info ( C\-t i )
-Output the current the width, height, window number and window name of the current
-window.
-(What name means is chosen by "\fBset\ winname\fP".)
-.cmd iprev
-Like \fBprev\fP but switch to the previous window with the same
-resource class as the current one.
-(That means the previous window belonging to the same application
- as the current one.)
-.cmd iother
-Like \fBother\fP but switch to the window of the current group that was last
-accessed and has the same resource class but is not currently visible.
-.cmd kill ( C\-t K )
-Close the X\-connection of the X\-client responsible for the current window.
-.cmd lastmsg ( C\-t m )
-Reshow the last message.
-.cmd license ( C\-t V )
-Show ratpoison's license.
-.cmd link key [ keymap ]
-Do what \fIkey\fP is bound to in the keymap \fIkeymap\fP if supplied.
-Otherwise what \fIkey\fP is bound to in keymap \fBroot\fP.
-.cmd listhook event
-List all commands specified with \fBaddhook\fP to be executed when
-even \fIevent\fP occurs.
-.cmd meta [ key ] ( C\-t t )
-Send the escape key (that which normally is \fBC\-t\fP) to the current window.
-If a \fIkey\fP is specified, this is sent instead. Note that some applications by
-default ignore the synthetic key that is sent using this command as it
-is considered a security hole. xterm is one such application.
-.cmd msgwait [ seconds ]
-Set the duration the message window is shown.
-If \fIseconds\fP is zero, wait infinitely.
-.cmd newkmap keymap
-Generate a new keymap names \fIkeymap\fP. This keymap can
-be used to add new key\-command mapping to it with \fBdefinekey\fP
-and can be called with \fBreadkey\fP.
-.cmd newwm new window manager
-Quit ratpoison and execute \fInew window manager\fP instead.
-.cmd next ( C\-t Return | C\-t n | C\-t space )
-Switch to the next window in the current group.
-.cmd nextscreen ( C\-t N )
-Switch to the next screen. (If you have multiple physical ones.)
-.cmd number new [ old ]
-Give the number \fInew\fP to the window with the number \fIold\fP or
-the current window.
-.cmd only ( C\-t Q )
-Remove all frames on the current screen except the current frame and
-maximize this one to the size of the whole screen.
-.cmd other ( C\-t C\-t )
-Switch to the window of the current group that was last
-accessed but is not currently visible.
-.cmd prev ( C\-t p )
-Switch to the previous window in the current group.
-.cmd prevscreen ( C\-t P )
-Switch to the previous screen. (If you have multiple physical ones.)
-.cmd prompt [ prompt ]
-Ratpoison will ask the user for input, showing \fIprompt\fP (or
-a single colon, if no argument is given) and output the input the
-user has made.
-.br
-Note that this command probably does not make much sense in interactive
-mode.
-.cmd putsel x\-selection
-Replace the X selection with the text \fIx\-selection\fP. It can be
-inserted into the current window with \fBgetsel\fP.
-.cmd quit
-Quit ratpoison.
-.cmd ratinfo
-Display the x y coordinates of the rat cursor relative to the screen.
-.cmd ratrelinfo
-Display the x y coordinates of the rat cursor relative to the current window or current frame if no window is focused
-.cmd ratwarp x y
-Move the rat cursor to the position (\fIx\fP,\fIy\fP).
-.cmd ratrelwarp deltax deltay
-Move the rat cursor to (\fIdeltax\fP,\fIdeltay\fP), relative
-to the current position.
-.cmd ratclick [ button ]
-Simulate a rat click with \fIbutton\fP (button 1=left button if none given).
-.cmd rathold \fBup\fR\fI | \fBdown\fR\fI [ button ]
-Simulate pressing|releasing rat button \fIbutton\fP (1=left button if none given).
-.cmd readkey keymap
-Grab the next key pressed, and execute the command associated to this key
-in \fIkeymap\fP.
-To show it is waiting for a key, ratpoison will change the
-rat cursor to a square if \fBwaitcursor\fP is set.
-
-This command is perhaps best described with its usage in the default
-configuration: By pressing \fBC\-t\fP, which is the only key in the keymap
-\fBtop\fP, the command "\fBreadkey root\fP" is executed. The next key
-then executes the command in keymap \fBroot\fP belonging to this command.
-.cmd redisplay ( C\-t l )
-Extend the current window to the whole size of its current frame and
-redisplay it.
-(Useful to redisplay normal windows or bring transient windows to the
-full size of the frame as only normal windows are maximized by ratpoison)
-.cmd redo ( C\-t U )
-Revert the last \fIundo\fP of frame changes.
-.cmd remhook event command
-Remove command \fIcommand\fP from the list of commands to be called when
-event \fIevent\fP is hit. (The command has to specified, as an event can
-have multiple commands attached to it.)
-Use "\fBlisthook\fP \fIhook\fP" to get a list of all attached commands.
-.cmd remove ( C\-t R )
-Remove the current frame and extend some frames around to fill the remaining
-gap.
-.cmd resize [ deltax deltay ] ( C\-t r )
-If \fIdeltax\fP and \fIdeltay\fP are supplied, resize the current frame
-by that (i.e. move the bottom right corner by the given offsets and then
-move this frame and resize adjacent frames to make the frames fill the
-whole screen again.)
-
-If in interactive mode no arguments are supplied, resize the current
-frame interactively:
-.br
-.ta 20
-\fBReturn\fP: finish resizing
-.br
-\fBC\-g\fP or \fBEscape\fP: abort resizing
-.br
-\fBC\-n\fP or \fBDown\fP or \fBj\fP: grow vertically
-.br
-\fBC\-p\fP or \fBUp\fP or \fBk\fP: shrink vertically
-.br
-\fBC\-f\fP or \fBRight\fP or \fBl\fP: grow horizontally
-.br
-\fBC\-b\fP or \fBUp\fP or \fBh\fP: shrink horizontally
-.br
-\fBs\fP: shrink to size of current window
-
-While resizing interactively, changes are in multiples of the amount
-of pixels given by \fBset resizeunit\fP (by default 10).
-.cmd restart
-Restart ratpoison.
-.cmd rudeness [ rudeness ]
-Show or set what kind of windows are allowed to jostle into the foreground.
-
-\fIrudeness\fP is a bitwise or of the following values:
-.ta 5
-.br
-1 Transient windows may raise.
-.br
-2 Normal windows may raise.
-.br
-4 New transient windows end up in the foreground.
-.br
-8 New normal windows end up in the foreground.
-
-Default is all allowed i.e.\& 15.
-
-.cmd sdump
-Output the list of all screens.
-The screens are separated by commas. Each screen is shown as 6 values:
-its number, its x\-coordinate, its y\-coordinate, its width, its height
-and if it is currently selected (1=true,0=false).
-.cmd select \fB\-\fP | name | nr ( C\-t ' )
-If a number is given, switch to the window with number \fInr\fP.
-If a name is given, switch to the window in the current group with
-name \fIname\fP.
-Blank the current frame, if \fB\-\fP is given.
-.cmd set [ variable [ value ] ]
-If no argument is given, output all ratpoison variables and their values.
-.br
-If one argument is given, output the value of ratpoison variable \fIvariable\fP.
-.br
-Otherwise set ratpoison variable \fIvariable\fP to \fIvalue\fP. What values
-are valid depends on the variable.
-See the section \fBVARIABLES\fP later in this document for details.
-.cmd setenv variable value
-Set the environment variable \fIvariable\fP to \fIvalue\fP.
-(Environment variables will be passed to all programs started from ratpoison.)
-.cmd sfdump
-Output all frames similar to \fBfdump\fP, but not limited to one screen, but
-all screens at once and with the screen number after each frame.
-.cmd sfrestore
-Replace the current frames with the ones specified in \fIframes\fP in the
-format as generated by \fBsfdump\fP.
-.cmd shrink
-Shrink the current frame to the size of the current window with in.
-.cmd split [ split ] ( C\-t s )
-alias for \fBvsplit\fP
-.cmd source file
-Read \fIfile\fP and execute each line as ratpoison command.
-.cmd sselect screennumber
-Switch to the screen \fIscreennumber\fP. (If you have multiple physical ones.)
-.cmd startup_message \fBon | \fBoff
-Select whether ratpoison will show a startup message or not.
-.cmd swap [ dest-frame [ src-frame ] ] ( C\-t x )
-Exchange the window in \fIsrc-frame\fP (or the current frame if there is no second
-argument) with the window \fIdest-frame\fP (or ask interactively which frame to
-swap with if there is no argument).
-.cmd time ( C\-t a )
-Output current data and time.
-.cmd title newname ( C\-t A )
-Overwrite the title of the current window with \fInewname\fP.
-All following ratpoison commands will only know the
-window under the new name.
-.cmd tmpwm tmpwm
-Temporarily give control over to the other window manager \fItmpwm\fP,
-reclaiming control when that WM terminates.
-.cmd unalias alias
-Remove the alias \fIalias\fP.
-.cmd unbind key
-alias for "\fBundefinekey root\fP \fIkey\fP"
-.cmd undefinekey keymap key
-Remove the binding for \fIkey\fP from \fIkeymap\fP.
-.cmd undo ( C\-t _ or C\-t u )
-Un\-do the last change to the frameset.
-(Like splitting, resizing, deleting, ...)
-.br
-The amount of steps that can be undone is specified by the variable
-\fBmaxundos\fP.
-.cmd unmanage [ name ]
-Add \fIname\fP to the list of unmanaged windows.
-Thus, windows of this
-name will not be managed but allowed to choose their position themselves.
-
-In non\-interactive mode calling it without arguments will print the list.
-
-The list can be cleared again by calling \fBclrunmanaged\fP.
-.cmd unsetenv variable
-Remove variable \fIvariable\fP from the list of environment variables.
-.cmd verbexec cmdline
-Spawn a shell executing \fIcmdline\fP after showing a message with the command.
-.cmd version ( C\-t v )
-Output version and compile time information.
-.cmd vsplit [ l\fB/\fR\fIp | "pixels from top" | "\fB\-\fR\fIpixels from bottom" ] ( C\-t s )
-Split the current frame into upper frame and a lower frame.
-If no parameter is given, split in halves.
-If two numbers separated
-by a slash\ ("\fB/\fP") are given, the upper one is \fIl\fP times the \fIp\fPth part
-and the lower one (\fIp\fP\-\fIl\fP) times the \fIp\fPth part of the prior height.
-Otherwise the lower one is \fIpixels from bottom\fP wide or the upper one
-\fIpixels from top\fP high, depending whether there is a \fB\-\fP in front of
-the number or not.
-.cmd warp [ \fBon | \fBoff ]
-Select if focusing a window moves the rat cursor to the place it had been last
-time this window was focused, or not.
-.cmd windows [ format ] ( C\-t w )
-In interactive mode,
-show the list of all windows in the current group for
-the duration specified by \fBmsgwait\fP
-If \fBmsgwait\fP is zero, toggle between indefinitely showing
-and not showing.
-
-The messages are shown in columns or rows depending on the \fBset\fPting
-of \fBwinliststyle\fP in the format set by \fBset winfmt\fP.
-The following substitutions happen in format:
-.br
-%a by the application name (resource name),
-.br
-%c by the resource class,
-.br
-%f by the frame number,
-.br
-%g by the gravity of the window,
-.br
-%h by the height of the window,
-.br
-%H by the unit to resize the window vertically (height_inc)
-.br
-%i by the X Window ID,
-.br
-%p by the process ID,
-.br
-%l by the last access number,
-.br
-%M by the string \fBMaxsize\fP, if it specifies a maximum size,
-.br
-%n by the window number,
-.br
-%s by window status (\fB*\fP is active window,
-\fB+\fP would be chosen by \fBother\fP, \fB\-\fP otherwise)
-.br
-%S by the screen number
-.br
-%t by the window name (see \fBset winname\fP),
-.br
-%T by the string \fBTransient\fP, if it is a transient window
-.br
-%w by the width of the window
-.br
-%W by the unit to resize the window horizontally (width_inc)
-.br
-%x by the xine screen number
-and
-.br
-%% by a single %
-
-Additionally there can be a positive decimal integer number between the
-percent sign and the format string to specify the length this value
-should be truncated to if longer.
-(For example: \fB%20t\fP)
-
-In non\-interactive mode, output the list of windows in the current group
-line by line. The format string can be overwritten by the optional parameter
-\fIformat\fP.
-.SH VARIABLES
-Ratpoison variables can be shown and set with \fBset\fP.
-There are:
-.var resizeunit pixels
-Set the amount of pixels interactive \fBresize\fPing will add/subtract
-in each step.
-.br
-Default is 5.
-.var maxundos number
-The maximal amount of step ratpoison can undo with the \fBundo\fP command.
-.br
-Default is 20.
-.var wingravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse
-Set the default gravity new normal windows will get.
-Possible values are the same as in the \fBgravity\fP command, which changes
-the gravity of an existing window: cardinal points or numbers 1 to 9.
-.br
-Default is \fBnorthwest\fP.
-.var maxsizegravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse
-Set the default gravity new self\-maximized windows will get.
-Possible values are the same as in the \fBgravity\fP command, which changes
-the gravity of an existing window: cardinal points or numbers 1 to 9.
-.br
-Default is \fBcenter\fP.
-.var transgravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse
-Set the default gravity new transient windows will get.
-Possible values are the same as in the \fBgravity\fP command, which changes
-the gravity of an existing window: cardinal points or numbers 1 to 9.
-.br
-Default is \fBcenter\fP.
-.var bargravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse
-Select the location where message and prompt bars appear.
-.br
-Default is \fBnortheast\fP.
-.var font font
-Make ratpoison use font \fIfont\fP.
-.var padding left top right bottom
-Set how much space at the borders of the screen will not be used.
-.br
-Default is 0 0 0 0.
-.var border pixels
-Selects how thick the frame around windows is.
-.br
-Default is 1.
-.var barborder pixels
-Selects how thick the frame around ratpoison's prompt or message windows is.
-.br
-Default is 1.
-.var inputwidth pixels
-Determine the width of the input window.
-.br
-Default is 200.
-.var barinpadding \fB0 | \fB1
-If there is padding, determines whether the bar appears at the edge of the
-screen (\fB1\fP) or at the edge of the window area (\fB0\fP).
-.br
-Default is 0.
-.var topkmap kmap
-Make \fIkmap\fP the top keymap ratpoison grabs directly.
-The default value is \fBtop\fP.
-.var waitcursor \fB0 | \fB1
-Determine whether to change the rat cursor when waiting for a key
-(\fB1\fP) or not (\fB0\fP).
-(see \fBreadkey\fP and \fBdescribekey\fP).
-.br
-Default is 1.
-.var winfmt format
-Choose the default format for the the \fBwindows\fP command.
-.br
-Default is %n%s%t.
-.var winname \fBtitle | \fBname | \fBclass
-Choose what is considered the "name" of the window by ratpoison:
-.ta 7
-\fBtitle\fP The title of the window.
-.br
-\fBname\fP The resource name of the window.
-.br
-\fBclass\fP The resource class i.e. the name of the application.
-.br
-Default is \fBtitle\fP.
-.var fgcolor color
-The foreground color of the windows ratpoison creates.
-.br
-Default is black.
-.var bgcolor color
-The background color of the windows ratpoison creates.
-.br
-Default is white.
-.var fwcolor color
-The border color of the focused window.
-.br
-Default is black.
-.var bwcolor color
-The border color of unfocused windows.
-.br
-Default is black.
-.var barpadding x y
-Set horizontal padding of ratpoison windows to \fIx\fP and vertical
-padding to \fIy\fP.
-.br
-Default is 4 0
-.var winliststyle \fBrow | \fBcolumn
-Determines whether windows are shown in \fBrow\fPs or in \fBcolumn\fPs.
-.br
-Default is column.
-.var framesels selectors
-Override the frame selectors \fBfselect\fP uses.
-The first character is the selector for the first frame,
-the second character is the selector for the second frame and so on.
-
-Using this variable, one can directly access more than 10 frames.
-
-Default is an empty string, which is equivalent to "0123456789".
-.var historysize number
-Specify maximum number of values kept in input history.
-
-Default is 20.
-.var historycompaction \fB0 | \fB1
-Decide if new input lines added to history delete
-older equal lines from history.
-
-Default is 1 (on).
-.var historyexpansion \fB0 | \fB1
-Decide if history expansion using ! is available.
-(Can only be activated when compiled with readline's libhistory.)
-
-Default is 0 (off).
-.SH AUTHOR
-Upstream Author is Shawn Betts <sabetts@gmail.com>.
-.br
-See /usr/share/doc/ratpoison/AUTHORS for other contributors.
-.P
-This manual page was written by Bernhard R. Link <brlink@debian.org>.
diff --git a/doc/ratpoison.mdoc.1 b/doc/ratpoison.mdoc.1
new file mode 100644
index 0000000..a192e6f
--- /dev/null
+++ b/doc/ratpoison.mdoc.1
@@ -0,0 +1,1175 @@
+.\" This man page is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This man page is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this software; see the file COPYING. If not, write to
+.\" the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+.\" Boston, MA 02111-1307 USA
+.\"
+.\"
+.\" This manpage is written using the mdoc macro language.
+.\" Examples of formatters which support mdoc are groff[1] and mandoc[2].
+.\" An mdoc language reference is available[3].
+.\"
+.\" [1] https://gnu.org/software/groff/
+.\" [2] http://mdocml.bsd.lv/
+.\" [3] http://mdocml.bsd.lv/mdoc.7.html
+.\"
+.Dd 2014-02-12
+.Dt RATPOISON 1
+.Os
+.Sh NAME
+.Nm ratpoison
+.Nd window manager without mouse dependency
+.Sh SYNOPSIS
+.Nm
+.Op Fl hv
+.Nm
+.Op Fl d Ar dpy
+.Op Fl s Ar num
+.Op Fl f Ar file
+.Nm
+.Op Fl d Ar dpy
+.Op Fl s Ar num
+.Op Fl i
+.Fl c Ar command Op Fl c Ar command ...
+.Sh DESCRIPTION
+.Nm
+is a Window Manager without fat library dependencies, fancy graphics or
+rat dependence.
+.Pp
+The screen can be split into non-overlapping frames.
+All windows are kept maximized inside their frames.
+.Pp
+All interaction with the window manager is done through
+keystrokes.
+.Nm
+has a prefix map to minimize key clobbering.
+.Pp
+The options are as follows:
+.Bl -tag -width Bs
+.It Fl c , Fl \-command
+Send ratpoison a command.
+There must be a ratpoison instance running as window manager for the
+given display/screen for this to work.
+Do not forget to quote the command if it contains spaces.
+For example:
+.Dl Nm Fl c Qq Ar "echo hello world"
+.It Fl d , Fl \-display Ar display
+Set the X display to use or send commands to.
+.It Fl f , Fl \-file Ar filename
+Specify an alternate configuration file.
+If this is not given,
+.Nm
+will try
+.Pa $HOME/.ratpoisonrc
+and if that does not exist
+.Pa /etc/ratpoisonrc
+and execute each command when starting up.
+.It Fl h , Fl \-help
+Show summary of options.
+.It Fl i , Fl \-interactive
+Execute commands given with
+.Fl c
+or
+.Fl -command
+in interactive mode.
+That means it will behave exactly as if called with
+.Ic C\-t \&:
+like prompting for missing arguments and things like that.
+.It Fl s , Fl \-screen Ar number
+Only use the specified screen.
+.It Fl v , Fl \-version
+Show version of program.
+.El
+.Sh KEY BINDINGS
+To avoid conflicts with other programs, all default ratpoison key
+bindings start with an escape key, per default
+.Ic C\-t
+(read Control\-t).
+Some important default key bindings:
+.Bl -tag -width Ds
+.It Ic C\-t \&?
+Show key bindings
+.It Ic C\-t c
+Start an X terminal
+.It Ic C\-t n
+Switch to next window
+.It Ic C\-t p
+Switch to previous window
+.It Ic C\-t 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
+Switch to window number 1 | 2 | ...
+.It Ic C\-t k
+Close the current window
+.It Ic C\-t K
+XKill the current application
+.It Ic C\-t s | S
+Split the current frame into two vertical | horizontal ones
+.It Ic C\-t Tab | Left | Up | Right | Down
+Switch to the next | left | top | right | bottom frame.
+.It Ic C\-t Q
+Make the current frame the only one
+.It Ic C\-t \&:
+Execute a ratpoison command
+.El
+.Pp
+Further default key bindings can be found in parentheses after the
+commands in the next section.
+.Sh COMMANDS AND DEFAULT ALIASES
+.Bl -tag -width Ds
+.It Ic abort
+.Pq Ic C\-t C\-g
+Do nothing and that successfully.
+.Po
+Useful if you pressed
+.Ic C\-t
+in error
+.Pc .
+.It Ic addhook Ar event command
+Add a hook: run
+.Ar command
+whenever
+.Ar event
+is called.
+Possible events are:
+.Bl -tag -width Ds
+.It Ar deletewindow
+Run after a window is withdrawn.
+.It Ar newwindow
+Run after a new window is mapped.
+.It Ar key
+Run whenever a top level key is pressed (by default
+.Ic C\-t ) .
+.It Ar quit
+Run before exiting
+.Nm .
+.It Ar restart
+Run before restarting
+.Nm .
+.It Ar switchframe
+Run after a frame actually switched, but before the window in it is
+focused.
+.It Ar switchgroup
+Run after selecting a new group.
+.It Ar switchwin
+Run after a new window is selected.
+(With dedication, it may already be inactive again, if it was put into
+another frame)
+.El
+.It Ic alias Ar alias command
+Add
+.Ar alias
+as new way to call
+.Ar command .
+.It Ic bind Ar key command
+alias for
+.Qq Ic definekey Li root Ar key command
+.It Ic banish
+.Pq Ic C\-t b
+Banish the rat cursor to the lower right corner of the screen.
+.It Ic banishrel
+Banish the rat cursor to the lower right corner of the current window.
+If there isn't a window in the current frame, it banishes the rat cursor
+to the lower right corner of the frame.
+.It Ic chdir Op Ar directory
+If the optional argument is given, change the current directory
+of
+.Nm
+to
+.Ar directory .
+If nothing is given, change it to the value of the environment variable
+.Qq Ev HOME .
+.It Ic clrunmanaged
+Clears the unmanaged window list.
+.It Ic cnext
+Like
+.Ic next
+but switch to the next window with another resource class than the
+current one.
+(That means the next window belonging to another type of application
+than the current one.)
+.It Ic cprev
+Like
+.Ic prev
+but switch to the previous window with another resource class than the
+current one.
+(That means the previous window belonging to another type of application
+than the current one.)
+.It Ic colon Ar ratpoison\-command Pq Ic C\-t \&:
+Execute
+.Ar ratpoison\-command
+interactively.
+(i.e. ask for possible missing arguments.)
+.It Ic compat
+Add aliases for the new
+.Ic set
+commands starting with "def" to support older scripts.
+.It Ic cother
+Like
+.Ic other
+but switch to the window of the current group that was last accessed and
+has another resource class but is not currently visible.
+.It Ic curframe Pq Ic C\-t F
+Show a bar marking the current frame.
+.It Ic definekey Ar keymap key command
+Add a new key binding in
+.Ar keymap
+for
+.Ar key
+to execute
+.Ar command .
+Default keymaps are
+.Li top
+normally only containing
+.Ic C\-t ,
+which reads a key from
+.Li root ,
+containing all the normal commands.
+.Pp
+Note that you have to describe ":" by "colon", "!" by "exclam" and so on.
+If you cannot guess a name of a key, try either
+.Ic C\-t Ar key
+and look at the error message, or try
+.Ic :describekey Li root
+and pressing the key.
+.It Ic def...
+When
+.Ic compat
+was called there are some aliases starting with "def", which alias the
+new form with
+.Ic set .
+I.e. instead of
+.Ic defresizeunit
+better use the new
+.Ic set Cm resizeunit
+and so on...
+.It Ic dedicate Op Li 0 | 1
+Consider the current frame dedicated/chaste
+.Pq Ql 1
+or promiscuous
+.Pq Ql 0 .
+.Pp
+A dedicated frame will not accept new windows.
+When new windows are to be focused, they will be opened in a non-dedicated
+frame instead.
+.Pp
+If no argument is given, toggle the current dedicateness. By default no
+windows are dedicated.
+.It Ic delete Pq Ic C\-t k
+Close the current window.
+.It Ic delkmap Ar keymap
+Deletes the keymap named
+.Ar keymap ,
+that was generated with
+.Ic newkmap .
+The keymaps
+.Li top
+(or whatever was specified by
+.Ic set Ar topkmap )
+and
+.Li root
+cannot be deleted.
+.It Ic describekey Ar keymap
+Grab the next key. Similar to
+.Ic readkey ,
+.Ic describekey
+shows only the command in
+.Ar keymap ,
+that would be executed by
+.Ic readkey .
+.It Ic echo Ar text
+Show
+.Ar text
+as
+.Nm
+message.
+.It Ic escape Ar key
+Update the default escape key to
+.Ar key .
+.Pp
+Strictly speaking it updates the
+.Ic readkey Li root
+command in the keymap
+.Li top
+to
+.Ar key ,
+the
+.Ic other
+binding
+in
+.Li root
+to
+.Ar key ,
+and
+.Ic meta
+binding in
+.Li root
+to
+.Ar key
+without modifiers or
+.Ic "C\-" Ns Ar key
+if
+.Ar key
+has no modifiers.
+(If
+.Ic set Ar topkmap
+was called with an argument other than
+.Ar top
+that will be used instead of
+.Ar top . )
+.It Ic exchangedown Pq Ic C\-t C\-Down
+Exchange the window in the current frame with the window in the frame
+below the current frame.
+.It Ic exchangeleft Pq Ic C\-t C\-Left
+Exchange the window in the current frame with the window in the frame
+left of the current frame.
+.It Ic exchangeright Pq Ic C\-t C\-Right
+Exchange the window in the current frame with the window in the frame
+right of the current frame.
+.It Ic exchangeup Pq Ic C\-t C\-Up
+Exchange the window in the current frame with the window in the frame
+above the current frame.
+.It Ic exec Ar shell\-command Pq Ic C\-t \&!
+Spawn a shell executing
+.Ar shell\-command .
+.It Ic execa Ar shell\-command
+Spawn a shell executing
+.Ar shell\-command ,
+without remembering the current frame, so that _NET_WM_PID declaring
+programs will be placed into the frame active when they open a window
+instead of the frame active when
+.Nm
+gets this command.
+.It Ic execf Ar frame shell\-command
+Spawn a shell executing
+.Ar shell\-command ,
+showing _NET_WM_PID supporting programs in the given frame instead of
+the frame selected when this program is run.
+.It Ic fdump Op Ar screenno
+Output the defining data for all frames of the current screen, or
+for screen number
+.Ar screenno
+if this is specified.
+.It Ic focus Pq Ic C\-t Tab
+Focus the next frame.
+.It Ic focuslast
+Switch to the last selected focus.
+.It Ic focusleft Pq Ic C\-t Left
+Switch to the frame to the left of the current one.
+.It Ic focusdown Pq Ic C\-t Down
+Switch to the frame beneath the current one.
+.It Ic focusright Pq Ic C\-t Right
+Switch to the frame to the right of the current one.
+.It Ic focusprev
+Focus the previous frame.
+.It Ic focusup Pq Ic C\-t Up
+Switch to the frame above the current one.
+.It Ic frestore Ar frames
+Replace the current frames with the ones specified in
+.Ar frames
+in the format as generated by
+.Ic fdump .
+.It Ic fselect Oo Ar frameno Oc Pq Ic C\-t f
+If an argument is supplied, switch to a frame given by number
+.Ar frameno .
+.Pp
+If no argument is given, show a frame selector in each frame and wait for
+a key to be pressed.
+If the key matches an existing frame selector, this frame gets focused.
+.Pp
+Frame selectors are by default the numbers starting with zero, but they
+can be changed by
+.Ic set Ns
+ting
+.Ar framesels .
+.It Ic gdelete Op Ar group
+If the optional argument
+.Ar group
+is supplied, delete
+.Ar group .
+Otherwise delete the current group. If the last group is deleted, a new
+group with name
+.Li default
+is created.
+The group has to be empty, otherwise it cannot be deleted.
+.It Ic getenv Ar variable
+Output the value of the environment variable
+.Ar variable .
+.It Ic getsel
+Paste the current X Selection into the current window.
+.It Ic gmerge Ar group
+Move all windows from group
+.Ar group
+into the current group.
+.It Ic gmove Ar group
+Move the current window into group
+.Ar group .
+.It Ic gnew Ar group
+Create a new group with name
+.Ar group
+and select it.
+Most window commands only see (and thus select, consider next,
+previous or last) windows within the group active when they are
+issued.
+.It Ic gnewbg Ar group
+Create a new group named
+.Ar group ,
+but do not select it.
+.It Ic gnext
+Select the next group.
+Most window commands only see windows in the effective group.
+.It Ic gnumber Op Ar old new
+Give the number
+.Ar new
+to the group with the number
+.Ar old
+or the current group.
+.It Ic gother
+Select the last accessed group.
+Most window commands only see windows in the effective group.
+.It Ic gprev
+Select the prior group.
+Most window commands only see windows in the effective group.
+.It Ic gravity Op Li nw | w | sw | n | c | s | ne | e | se
+Change how in its frame the current window is aligned.
+.It Ic grename
+Rename current group.
+.It Ic groups
+Output a list of all groups with their number.
+.It Ic gselect Ar group
+Select the group named
+.Ar group .
+.It Ic help Op Ar keymap
+If the optional parameter
+.Ar keymap
+is given, list all keybindings in this keymap, otherwise list all key
+bindings in keymap
+.Li root .
+.It Ic hsplit Oo Ar l Ns Li / Ns Ar p | Oo Li \- Oc Ns Ar pixels Oc Pq Ic C\-t S
+Split the current frame into left frame and a right frame.
+If no parameter is given, split in halves.
+If two numbers separated by a slash
+.Pq Ql "/"
+are given, the left one is
+.Ar l
+times the
+.Ar p Ns
+th
+part and the right one
+.Pq Ar p Li \- Ar l
+times the
+.Ar p Ns
+th
+part of the prior width.
+Otherwise the right half is
+.Ar pixels
+wide or the left one is
+.Ar pixels
+wide, depending whether there is
+.Ql \-
+in front of the number or not.
+.It Ic inext
+Like
+.Ic next
+but switch to the next window with the same resource class as the
+current one.
+(That means the next window belonging to the same application
+as the current one.)
+.It Ic info Pq Ic C\-t i
+Output the current the width, height, window number and window name of
+the current window.
+.Po
+What name means is chosen by
+.Dq Ic set Ar winname .
+.Pc
+.It Ic iprev
+Like
+.Ic prev
+but switch to the previous window with the same resource class as the
+current one.
+(That means the previous window belonging to the same application as the
+current one.)
+.It Ic iother
+Like
+.Ic other
+but switch to the window of the current group that was last accessed and
+has the same resource class but is not currently visible.
+.It Ic kill Pq Ic C\-t K
+Close the X-connection of the X-client responsible for the current window.
+.It Ic lastmsg Pq Ic C\-t m
+Reshow the last message.
+.It Ic license Pq Ic C\-t V
+Show
+.Nm Ap
+s license.
+.It Ic link Ar key Op Ar keymap
+Do what
+.Ar key
+is bound to in the keymap
+.Ar keymap
+if supplied.
+Otherwise what
+.Ar key
+is bound to in keymap
+.Li root .
+.It Ic listhook Ar event
+List all commands specified with
+.Ic addhook
+to be executed when even
+.Ar event
+occurs.
+.It Ic meta Oo Ar key Oc Pq Ic C\-t t
+Send the escape key (that which normally is
+.Ic C\-t )
+to the current window.
+If a
+.Ar key
+is specified, this is sent instead.
+Note that some applications by default ignore the synthetic key that is
+sent using this command as it is considered a security hole.
+xterm is one such application.
+.It Ic msgwait Op Ar seconds
+Set the duration the message window is shown.
+If
+.Ar seconds
+is zero, wait infinitely.
+.It Ic newkmap Ar keymap
+Generate a new keymap named
+.Ar keymap .
+This keymap can be used to add new key-command mappings to it with
+.Ic definekey
+and can be called with
+.Ic readkey .
+.It Ic newwm Ar new window manager
+Quit
+.Nm
+and execute
+.Ar new window manager
+instead.
+.It Ic next Pq Ic C\-t Return | C\-t n | C\-t space
+Switch to the next window in the current group.
+.It Ic nextscreen Pq Ic C\-t N
+Switch to the next screen. (If you have multiple physical ones.)
+.It Ic number Ar new Op Ar old
+Give the number
+.Ar new
+to the window with the number
+.Ar old
+or the current window.
+.It Ic only Pq Ic C\-t Q
+Remove all frames on the current screen except the current frame and
+maximize this one to the size of the whole screen.
+.It Ic other Pq Ic C\-t C\-t
+Switch to the window of the current group that was last
+accessed but is not currently visible.
+.It Ic prev Pq Ic C\-t p
+Switch to the previous window in the current group.
+.It Ic prevscreen Pq Ic C\-t P
+Switch to the previous screen. (If you have multiple physical ones.)
+.It Ic prompt Op Ar prompt
+.Nm
+will ask the user for input, showing
+.Ar prompt
+(or a single colon, if no argument is given) and output the input the
+user has made.
+Note that this command probably does not make much sense in interactive
+mode.
+.It Ic putsel Ar x\-selection
+Replace the X selection with the text
+.Ar x\-selection .
+It can be inserted into the current window with
+.Ic getsel .
+.It Ic quit
+Quit
+.Nm .
+.It Ic ratinfo
+Display the x y coordinates of the rat cursor relative to the screen.
+.It Ic ratrelinfo
+Display the x y coordinates of the rat cursor relative to the current
+window or current frame if no window is focused
+.It Ic ratwarp Ar x y
+Move the rat cursor to the position
+.Ar ( x , y ) .
+.It Ic ratrelwarp Ar deltax deltay
+Move the rat cursor to
+.Ar ( deltax , deltay ) ,
+relative to the current position.
+.It Ic ratclick Op Ar button
+Simulate a rat click with
+.Ar button
+(button 1=left button if none given).
+.It Ic rathold Li ( up | down ) Op Ar button
+Simulate pressing|releasing rat button
+.Ar button
+(1=left button if none given).
+.It Ic readkey Ar keymap
+Grab the next key pressed, and execute the command associated to this key
+in
+.Ar keymap .
+To show it is waiting for a key,
+.Nm
+will change the rat cursor to a square if
+.Va waitcursor
+is set.
+This command is perhaps best described with its usage in the default
+configuration: by pressing
+.Ic C\-t ,
+which is the only key in the keymap
+top ,
+the command
+.Qq Ic readkey Ar root
+is executed.
+The next key then executes the command in keymap
+.Li root
+belonging to
+this command.
+.It Ic redisplay Pq Ic C\-t l
+Extend the current window to the whole size of its current frame and
+redisplay it.
+(Useful to redisplay normal windows or bring transient windows to the
+full size of the frame as only normal windows are maximized by
+.Nm )
+.It Ic redo Pq Ic C\-t U
+Revert the last
+.Ic undo
+of frame changes.
+.It Ic remhook Ar event command
+Remove command
+.Ar command
+from the list of commands to be called when event
+.Ar event
+is hit.
+(The command has to specified, as an event can have multiple commands
+attached to it.)
+Use
+.Qq Ic listhook Ar hook
+to get a list of all attached commands.
+.It Ic remove Pq Ic C\-t R
+Remove the current frame and extend some frames around to fill the
+remaining gap.
+.It Ic resize Oo Ar deltax deltay Oc Pq Ic C\-t r
+If
+.Ar deltax
+and
+.Ar deltay
+are supplied, resize the current frame by that (i.e. move the bottom
+right corner by the given offsets and then move this frame and resize
+adjacent frames to make the frames fill the whole screen again.)
+.Pp
+If in interactive mode no arguments are supplied, resize the current
+frame interactively:
+.Pp
+.Bl -tag -offset 2n -width "C-f, Right, l" -compact
+.It Ic Return
+finish resizing
+.It Ic C\-g , Escape
+abort resizing
+.It Ic C\-n , Down , j
+grow vertically
+.It Ic C\-p , Up , k
+shrink vertically
+.It Ic C\-f , Right , l
+grow horizontally
+.It Ic C\-b , Up , h
+shrink horizontally
+.It Ic s
+shrink to size of current window
+.El
+.Pp
+While resizing interactively, changes are in multiples of the amount
+of pixels given by
+.Ic set Cm resizeunit
+(by default 10).
+.It Ic restart
+Restart
+.Nm .
+.It Ic rudeness Op Ar rudeness
+Show or set what kind of windows are allowed to jostle into the foreground.
+.Ar rudeness
+is a bitwise OR of the following values:
+.Pp
+.Bl -tag -offset 2n -width 2n -compact
+.It 1
+Transient windows may raise.
+.It 2
+Normal windows may raise.
+.It 4
+New transient windows end up in the foreground.
+.It 8
+New normal windows end up in the foreground.
+.El
+.Pp
+Default is all allowed i.e.\& 15.
+.It Ic sdump
+Output the list of all screens.
+The screens are separated by commas. Each screen is shown as 6 values:
+its number, its x-coordinate, its y-coordinate, its width, its height
+and if it is currently selected (1=true, 0=false).
+.It Ic select Li \- | Ar name | number Pq Ic C-t \&'
+If a number is given, switch to the window with number
+.Ar number .
+If a name is given, switch to the window in the current group with
+name
+.Ar name .
+Blank the current frame, if
+.Li \-
+is given.
+.It Ic set Op Ar variable Op Ar value
+If no argument is given, output all
+.Nm
+variables and their values.
+.Pp
+If one argument is given, output the value of
+.Nm
+variable
+.Ar variable .
+Otherwise set
+.Ar variable
+to
+.Ar value .
+What values are valid depends on the variable.
+See the section
+.Sx VARIABLES
+later in this document for details.
+.It Ic setenv Ar variable value
+Set the environment variable
+.Ar variable
+to
+.Ar value .
+.Po
+Environment variables will be passed to all programs started from
+.Nm .
+.Pc
+.It Ic sfdump
+Output all frames similar to
+.Ic fdump ,
+but not limited to one screen, but all screens at once and with the
+screen number after each frame.
+.It Ic sfrestore Ar frames
+Replace the current frames with the ones specified in
+.Ar frames
+in the format as generated by
+.Ic sfdump .
+.It Ic shrink
+Shrink the current frame to the size of the current window with in.
+.It Ic split Oo Ar split Oc Pq Ic C\-t s
+alias for
+.Ic vsplit
+.It Ic source Ar file
+Read
+.Ar file
+and execute each line as
+.Nm
+command.
+.It Ic sselect Ar screennumber
+Switch to the screen
+.Ar screennumber .
+(If you have multiple physical ones.)
+.It Ic startup_message Li on | off
+Select whether
+.Nm
+will show a startup message or not.
+.It Ic swap Oo Ar dest-frame Oo Ar src-frame Oc Oc Pq Ic C\-t x
+Exchange the window in
+.Ar src\-frame
+(or the current frame if there is no second argument) with the window
+.Ar dest\-frame
+(or ask interactively which frame to swap with if there is no argument).
+.It Ic time Pq Ic C\-t a
+Output current data and time.
+.It Ic title Ar newname Pq Ic C\-t A
+Overwrite the title of the current window with
+.Ar newname .
+All following
+.Nm
+commands will only know the window under the new name.
+.It Ic tmpwm Ar tmpwm
+Temporarily give control over to the other window manager
+.Ar tmpwm ,
+reclaiming control when that WM terminates.
+.It Ic unalias Ar alias
+Remove the alias
+.Ar alias .
+.It Ic unbind Ar key
+alias for
+.Dl Ic undefinekey Ar root key
+.It Ic undefinekey Ar keymap key
+Remove the binding for
+.Ar key
+from
+.Ar keymap .
+.It Ic undo Pq Ic C\-t _ , C\-t u
+Un\-do the last change to the frameset.
+(Like splitting, resizing, deleting, ...)
+.Pp
+The amount of steps that can be undone is specified by the variable
+.Va maxundos .
+.It Ic unmanage Op Ar name
+Add
+.Ar name
+to the list of unmanaged windows.
+Thus, windows of this name will not be managed but allowed to choose
+their position themselves.
+.Pp
+In non\-interactive mode calling it without arguments will print the list.
+.Pp
+The list can be cleared again by calling
+.Ic clrunmanaged .
+.It Ic unsetenv Ar variable
+Remove variable
+.Ar variable
+from the list of environment variables.
+.It Ic verbexec Ar cmdline
+Spawn a shell executing
+.Ar cmdline
+after showing a message with the command.
+.It Ic version Pq Ic C\-t v
+Output version and compile time information.
+.It Ic vsplit Oo Ar l Ns Li / Ns Ar p | "pixels from top" | "-pixels from bottom" Oc Pq Ic C\-t s
+Split the current frame into upper frame and a lower frame.
+If no parameter is given, split in halves.
+If two numbers separated by a slash
+.Pq Dq Li /
+are given, the upper one is
+.Ar l
+times the
+.Ar p Ns
+th part and the lower one
+.Pq Ar p Li \- Ar l
+times the
+.Ar p Ns
+th
+part of the prior height.
+Otherwise the lower one is
+.Ar "pixels from bottom"
+wide or the upper one
+.Ar "pixels from top"
+high, depending whether there is a
+.Dq Li \-
+in front of the number or not.
+.It Ic warp Op Li on | off
+Select if focusing a window moves the rat cursor to the place it had been last
+time this window was focused, or not.
+.It Ic windows Oo Ar format Oc Pq Ic C\-t w
+In interactive mode,
+show the list of all windows in the current group for the duration
+specified by
+.Ic msgwait .
+If the
+.Ic msgwait
+argument was zero, toggle between indefinitely showing and not showing.
+.Pp
+The messages are shown in columns or rows depending on the value of
+.Va winliststyle
+in the format set by
+.Ic set Ar winfmt .
+The following substitutions happen in format:
+.Pp
+.Bl -tag -offset 2n -width 2n -compact
+.It Li %a
+application name (resource name)
+.It Li %c
+resource class
+.It Li %f
+frame number
+.It Li %g
+gravity of the window
+.It Li %h
+height of the window
+.It Li %H
+unit to resize the window vertically (height_inc)
+.It Li %i
+X Window ID
+.It Li %p
+process ID
+.It Li %l
+last access number
+.It Li %M
+string
+.Li Maxsize ,
+if it specifies a maximum size
+.It Li %n
+window number
+.It Li %s
+window status
+.Po
+.Ql *
+is active window,
+.Ql +
+would be chosen by
+.Ic other ,
+.Ql \-
+otherwise
+.Pc
+.It Li %S
+screen number
+.It Li %t
+window name
+.Po see
+.Ic set Ar winname
+.Pc ,
+.It Li "%T"
+the string
+.Dq Li Transient ,
+if it is a transient window
+.It Li %w
+width of the window
+.It Li %W
+unit to resize the window horizontally (width_inc)
+.It Li %x
+xine screen number
+.It Li %%
+litteral
+.Ql %
+.El
+.Pp
+Additionally there can be a positive decimal integer number between the
+percent sign and the format string to specify the length this value
+should be truncated to if longer.
+.Po
+For example:
+.Li %20t
+.Pc
+.Pp
+In non\-interactive mode, output the list of windows in the current group
+line by line. The format string can be overwritten by the optional parameter
+.Ar format .
+.El
+.Sh VARIABLES
+.Nm
+variables can be shown and set with
+.Ic set .
+There are:
+.Bl -tag -width Ds
+.It Cm resizeunit Ar pixels
+Set the amount of pixels interactive
+.Ic resize
+will add/subtract in each step.
+.Pp
+Default is 5.
+.It Cm maxundos Ar number
+The maximal amount of step
+.Nm
+can undo with the
+.Ic undo
+command.
+.Pp
+Default is 20.
+.It Cm wingravity Li nw | w | sw | n | c | s | ne | e | se
+Set the default gravity new normal windows will get.
+Possible values are the same as in the
+.Ic gravity
+command, which changes the gravity of an existing window: cardinal
+points or numbers 1 to 9.
+.Pp
+Default is
+.Li nw .
+.It Cm maxsizegravity Li nw | w | sw | n | c | s | ne | e | se
+Set the default gravity new self-maximized windows will get.
+Possible values are the same as in the
+.Ic gravity
+command, which changes the gravity of an existing window: cardinal
+points or numbers 1 to 9.
+.Pp
+Default is
+.Li c .
+.It Cm transgravity Li nw | w | sw | n | c | s | ne | e | se
+Set the default gravity new transient windows will get.
+Possible values are the same as in the
+.Ic gravity
+command, which changes the gravity of an existing window: cardinal
+points or numbers 1 to 9.
+.Pp
+Default is
+.Li c .
+.It Cm bargravity Li nw | w | sw | n | c | s | ne | e | se
+Select the location where message and prompt bars appear.
+.Pp
+Default is
+.Li ne .
+.It Cm font Ar font
+Make
+.Nm
+use font
+.Ar font .
+.It Cm padding Ar left top right bottom
+Set how much space at the borders of the screen will not be used.
+.Pp
+Default is
+.Li 0 0 0 0 .
+.It Cm border Ar pixels
+Selects how thick the frame around windows is.
+.Pp
+Default is
+.Li 1 .
+.It Cm barborder Ar pixels
+Selects how thick the frame around
+.Nm Ap
+s
+prompt or message windows is.
+.Pp
+Default is
+.Li 1 .
+.It Cm inputwidth Ar pixels
+Determine the width of the input window.
+.Pp
+Default is
+.Li 200 .
+.It Cm barinpadding Li 0 | 1
+If there is padding, determines whether the bar appears at the edge of
+the screen
+.Pq Li 1
+or at the edge of the window area
+.Pq Li 0 .
+.Pp
+Default is
+.Li 0 .
+.It Cm topkmap Ar kmap
+Make
+.Ar kmap
+the top keymap
+.Nm
+grabs directly.
+.Pp
+The default value is
+.Li top .
+.It Cm waitcursor Li 0 | 1
+Determine whether to change the rat cursor when waiting for a key
+.Pq Li 1
+or not
+.Pq Li 0
+See
+.Ic readkey
+and
+.Ic describekey .
+.Pp
+Default is
+.Li 1 .
+.It Cm winfmt Ar format
+Choose the default format for the the
+.Ic windows
+command.
+.Pp
+Default is
+.Li %n%s%t .
+.It Cm winname Li title | name | class
+Choose what is considered the "name" of the window by
+.Nm :
+.Pp
+.Bl -tag -width Ds -compact
+.It title
+The title of the window.
+.It name
+The resource name of the window.
+.It class
+The resource class i.e. the name of the application.
+.El
+.Pp
+Default is
+.Li title .
+.It Cm fgcolor Ar color
+The foreground color of the windows
+.Nm
+creates.
+.Pp
+Default is
+.Li black .
+.It Cm bgcolor Ar color
+The background color of the windows
+.Nm
+creates.
+.Pp
+Default is
+.Li white .
+.It Cm fwcolor Ar color
+The border color of the focused window.
+.Pp
+Default is
+.Li black .
+.It Cm bwcolor Ar color
+The border color of unfocused windows.
+.Pp
+Default is
+.Li black .
+.It Cm barpadding Ar x y
+Set horizontal padding of
+.Nm
+windows to
+.Ar x
+and vertical padding to
+.Ar y .
+.Pp
+Default is
+.Li 4 0 .
+.It Cm winliststyle Li row | column
+Determines whether windows are shown in rows or in columns.
+.Pp
+Default is column.
+.It Cm framesels Ar selectors
+Override the frame selectors
+.Ic fselect
+uses.
+The first character is the selector for the first frame,
+the second character is the selector for the second frame and so on.
+.Pp
+Using this variable, one can directly access more than 10 frames.
+.Pp
+Default is an empty string, which is equivalent to "0123456789".
+.It Cm historysize Ar number
+Specify maximum number of values kept in input history.
+.Pp
+Default is
+.Li 20 .
+.It Cm historycompaction Li 0 | 1
+Decide if new input lines added to history delete
+older equal lines from history.
+.Pp
+Default is
+.Li 1
+(on).
+.It Cm historyexpansion Li 0 | 1
+Decide if history expansion using ! is available.
+(Can only be activated when compiled with readline's libhistory.)
+.Pp
+Default is
+.Li 0
+(off).
+.El
+.Sh FILES
+.Bl -tag -width "%%sysconfdir%%/ratpoisonrc" -compact
+.It Pa ~/.ratpoisonrc
+Configuration file read at startup time, if present.
+.It Pa %%sysconfdir%%/ratpoisonrc
+Fallback configuration file, if
+.Pa ~/.ratpoisonrc
+is not found.
+.El
+.Sh EXIT STATUS
+.Ex -std
+.Sh AUTHORS
+.An -nosplit
+Upstream author is
+.An Shawn Betts Aq Mt sabetts@gmail.com .
+.Pp
+See the
+.Pa %%docdir%%/AUTHORS
+file for other contributors.
+.Pp
+This manual page was written by
+.An Bernhard R. Link Aq Mt brlink@debian.org .
+The conversion to the
+.Xr mdoc 7
+language
+.Pq Lk http://mdocml.bsd.lv
+was done by
+.An Jeremie Courreges-Anglas Aq Mt jca@wxcvbn.org .
+.Sh BUGS
+Please report any bug you find to the ratpoison mailing-list,
+.Aq Mt ratpoison-devel@nongnu.org .